forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Пошаговая стратегия (http://forum.boolean.name/showthread.php?t=8323)

demon112 20.05.2009 10:39

Пошаговая стратегия
 
При разработке простой пошаговой стратегии возникла проблема перемещения войск на определённую скорость. Значит - написал так:
if Abs(Xкоорд-Увойна)+Abs(Укоорд-Увойна)<=скоростиВойна тогда туда можно идти... Но такой синтаксис не катит если на карте есть преграды.... Кто может натолкнуть на мысль как это осуществить??

SBJoker 20.05.2009 11:02

Ответ: Пошаговая стратегия
 
Поиск пути?

demon112 20.05.2009 11:03

Ответ: Пошаговая стратегия
 
всмысле?

Sleepybear 20.05.2009 11:08

Ответ: Пошаговая стратегия
 
Сначало проверяй, можно туда идти?
если нельзя, искать другие варианты, если можно то, передвигаемся

demon112 20.05.2009 11:12

Ответ: Пошаговая стратегия
 
А если туда идти можно, но на пути препятствие, благодоря кторому не доходит туда чел, то как считать то?

Sleepybear 20.05.2009 11:17

Ответ: Пошаговая стратегия
 
то искать обход :) почитай тут

demon112 20.05.2009 11:29

Ответ: Пошаговая стратегия
 
пасиб, прочитал - ничё не понял)) щас поем, помыслю и почитаю ещё пару десятк раз - мож пойму))

demon112 20.05.2009 11:52

Ответ: Пошаговая стратегия
 
как реализовать - точно не понял...

Sleepybear 20.05.2009 11:58

Ответ: Пошаговая стратегия
 
Ты спросил алгоритм решения, он простой.

Пока цель не достигнута
Выбрать направление для движения к цели

Если
это направление свободно для движения Двигаться туда
Иначе
Выбрать другое направление

demon112 20.05.2009 12:12

Ответ: Пошаговая стратегия
 
дык а если туда вообще невозможно пройти?

Sleepybear 20.05.2009 13:16

Ответ: Пошаговая стратегия
 
Я наверное не совсем тебя понял.
у тебя там бот или твои войска?

demon112 20.05.2009 14:45

Ответ: Пошаговая стратегия
 
дык а какая разница? ну мне надо вот с этим поиском пути разобраться...

Sleepybear 20.05.2009 15:41

Ответ: Пошаговая стратегия
 
Код:

если туда дорога есть
    то войска исчут короткий путь и идут туда
    Пока цель не достигнута
        Выбрать направление для движения к цели
    Если
        это направление свободно для движения Двигаться туда
    Иначе
        Выбрать другое направление
если дороги нету
    то выводит сообщение, что туда не попасть.


demon112 20.05.2009 15:44

Ответ: Пошаговая стратегия
 
а как узнать есть ли туда дорога?)

Sleepybear 20.05.2009 15:50

Ответ: Пошаговая стратегия
 
ну я бы карту разбил на клетки двух типов, по одним мона ездить по другим низя. Аналогия "крестики нолики"

demon112 20.05.2009 15:53

Ответ: Пошаговая стратегия
 
я так и сделал, а дальше что?

Sleepybear 20.05.2009 15:58

Ответ: Пошаговая стратегия
 
Перечитай ветку форума с самого начала со всеми ссылками.

найдеш ответ на твой вопрос.

demon112 20.05.2009 16:04

Ответ: Пошаговая стратегия
 
http://blitzetc.blitzmax.ru/index.ph...*_для_новичков - если ты про ето, то я там непонял как это реалезовать....

Sleepybear 20.05.2009 16:14

Ответ: Пошаговая стратегия
 
Ну ветка про алгоритмику поэтому алгоритм решения тебе нашли, а как реализовать в коде, тут уже сам. Все зависит от того начем ты пишеш. В Гугле поищи примеры релизации, скорее всего ктото уже писал подобное.

demon112 20.05.2009 16:24

Ответ: Пошаговая стратегия
 
Я пишу на Мидлет паскаль, а гуглем пользоваться не умею)

Sleepybear 20.05.2009 16:31

Ответ: Пошаговая стратегия
 
Тогда загляни сюда

demon112 20.05.2009 16:41

Ответ: Пошаговая стратегия
 
Жжёшь)) ну а понт? дальше там ничё не найду)

demon112 14.06.2009 14:48

Ответ: Пошаговая стратегия
 
Проблема такая: кто когда буит ходить. Тоесть, как в героях 5 к примеру, у кого больше инициатива, тот первый ходит и чаще. Так вот, как это вычесляется? P.s. Если просто кто первый, это то легко, но мешает что это и на чаще влияет...

demon112 14.06.2009 14:52

Ответ: Пошаговая стратегия
 
Ещё: формула для расчёта повреждений. Даны атака и защита. Найти урон. Просто если по формуле: "АТАКА-ЗАЩИТА=УРОН", мне как то кажется примитивно. К примеру если защита больше, то по 0 отнимать ваще никак......

demon112 14.06.2009 14:55

Ответ: Пошаговая стратегия
 
Или все пользуются этим примитивом?

Knightmare 14.06.2009 15:04

Ответ: Пошаговая стратегия
 
Первое - банальная сортировка списка по параметру.
Второе - формула это твое личное дело и элемент баланса. Можно брать защиту как процент поглощения урона (100 защиты - абсолютная защита, не пробивается ничем, 0 - нету вообще, ну и между ними процентаж считаешь от урона). Пределом 100 брать не обязательно, опять же все зависит от баланса. К тому же в героях была 3 параметра. Урон, атака и защита. Атака усиливала урон, а защита его снижала. Урон рассчитывался как рандом(кол-во юнитов * мин урон, кол-во юнитов * макс урон) или как-то так примерно.

demon112 14.06.2009 15:35

Ответ: Пошаговая стратегия
 
Второе про процентовку неплохо придумано, но вот на счёт первого можно подробнее?

Knightmare 14.06.2009 16:06

Ответ: Пошаговая стратегия
 
Начало раунда. Формируешь список всех юнитов. Сортируешь по инициативе (по уму сортировка идет при добавлении в список). И юниты по очереди ходят. Когда юнит делает ход - он выкидывается из списка. Когда список кончится - закончился раунд, начинается новый.

demon112 14.06.2009 18:45

Ответ: Пошаговая стратегия
 
Но тогда все войны будут ходить одинаковое количество раз за бой, а мне надо чтоб к примеру если инициатива в 2 раза больше, значит воин в 2 раза чаще ходит, если на треть больше, значит каждые 3 раунда ходит дважды и т.д. Вобщем как в герои 5...

Knightmare 14.06.2009 19:01

Ответ: Пошаговая стратегия
 
И? Неужели так трудно переделать? Список будет бесконечным. При ходе юнита он удаляется из списка. И вставляется по новой. Причем сортировать уже не по инициативе, а по номеру хода на котором опять выпадет очередь юнита (а вот его считать уже по инициативе). В данном случае вставлять лучше с конца, так меньше итераций на определение новой позиции уйдет.

ABTOMAT 14.06.2009 20:39

Ответ: Пошаговая стратегия
 
demon112, сначала подумай, потом спрашивай. Твои вопросы не имеют однозначного решения, которое ты так жаждешь увидеть. Программист должен сам придумать путь решения проблемы или взять уже изученный (например, поиск пути), а не ждать чего-то однозначного.
А насчёт формулы для расчёта повреждений - это настолько разнообразная тема, что ей в крупных игродельческих конторах даже занимаются отдельные люди - геймдизайнеры.

demon112 15.06.2009 03:05

Ответ: Пошаговая стратегия
 
Естественно я для начала подумал, но не найдя путь решения заглянул сюда...

demon112 15.06.2009 03:12

Ответ: Пошаговая стратегия
 
Knigthmare, Непонял нифига...((

Knightmare 15.06.2009 13:23

Ответ: Пошаговая стратегия
 
Цитата:

Естественно я для начала подумал, но не найдя путь решения заглянул сюда...
Сперва надо очень хорошо подумать. Прям писец как хорошо. Потом очень хорошо погуглить. Прям хорошо-хорошо. 99% случаев - проблема решается.
Цитата:

Сообщение от demon112 (Сообщение 107596)
Knigthmare, Непонял нифига...((

Твои проблемы. Выкладывать код не стану ибо нефиг. Это простые алгоритмы (в общем случае), более чем уверен что в сети есть реализации.

demon112 15.06.2009 13:50

Ответ: Пошаговая стратегия
 
На том на чём я пишу врядли есть, да и не знаю я что искать...(

NitE 15.06.2009 13:58

Ответ: Пошаговая стратегия
 
математика от языка не зависит

demon112 15.06.2009 15:30

Ответ: Пошаговая стратегия
 
Цитата:

Сообщение от NitE (Сообщение 107619)
математика от языка не зависит

всё равно не знаю что искать(

jimon 15.06.2009 16:34

Ответ: Пошаговая стратегия
 
demon112
ну значит тебе рано таким заниматся просто

Sleepybear 16.06.2009 00:09

Ответ: Пошаговая стратегия
 
Цитата:

Сообщение от demon112 (Сообщение 107629)
всё равно не знаю что искать(

Мож я чето пропустил, Но как ты вопрос задал если незнаеш что ищеш?:mad:

demon112 16.06.2009 04:22

Ответ: Пошаговая стратегия
 
В поисковике не знаю что искать... Возможно и рано, но всему можно научится) (практически...)

NitE 16.06.2009 05:42

Ответ: Пошаговая стратегия
 
И суслики тебе не помогут :crazy:

Sleepybear 16.06.2009 10:36

Ответ: Пошаговая стратегия
 
Научится можно всему, все зависит от тебя.
Я предпологаю что рановато ты замахнулся на стратегию, по этому столько вопросов.

demon112 16.06.2009 12:20

Ответ: Пошаговая стратегия
 
Цитата:

Сообщение от Sleepybear (Сообщение 107711)
Научится можно всему, все зависит от тебя.
Я предпологаю что рановато ты замахнулся на стратегию, по этому столько вопросов.

сколько вопросов? Вопрос один... про инициативу... ну и про защиту (ну это так, двухсекундный ответ), собственно это я бы и сам мог замутить.. P.S. это я уже не стратегию пишу...

demon112 16.06.2009 12:27

Ответ: Пошаговая стратегия
 
Я тут подумал сделать так: допустим ход один стоит n очков инициативы, сортируем список по инициативе, после хода у чибиса отнимается n скорости, и снова переформируется список... если скорость всех становится меньше n, тогда всем прибавляется начальная скорость и снофа формируется список... и т.д. так ведь нормально? а сколько примерно следует взять n?


Часовой пояс GMT +4, время: 11:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot