Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TamaGOch
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 152
#1

Прошу совета в привидении игры к логике - C++

14.06.2013, 19:23. Просмотров 189. Ответов 0
Метки нет (Все метки)

Представьте себе такую игру: несколько, для краткости, так сказать, юнитов. Есть игровое поле. Каждый юнит управляется отдельной программой, написанной игроком. Есть 9 вариантов поведения юнита: 4 направления движения, 4 направления "выпускания" атакующего снаряда, и вариант стояния на месте. Есть следующие фазы игры: шаг юнита, проверка всех действующих снарядов на попадание в юнитов, шаг снарядов (т.е. перемещение на следующую клетку, в соответствии с направлением движения снаряда). Я никак не могу решить, какой из "тактов" игрового процесса выбрать в качестве оптимального:
1) предположим в игре два юнита, алгоритм такой:
о- юниту доставляется информация о положении дел на поле,, ну понятно в общем
о- юнит делает ход (одно из 9-ти вариантов выше, в случае решения об атаке, снаряд появляется в клетке,
смежной с юнитом, в соответствии с направлением, это ясно)
о- проверка попадания снарядов (на случай, если юнит наступил на клетку со снарядом)
о- движение снарядов в их следующие клетки
о- снова проверка снарядов, на случай попадания их в игроков

плюсы данного алгоритма:
+ игрок не может наступить в клетку, в которую пустил снаряд в предыдущем ходу, да и вообще не может
попасть на свои снаряды
минусы:
- со стороны программы юнита приходится в качестве клеток, нежелательных к ходу принимать не только клетку
с действующим снарядом, но и учитывать, что после него будет n-1 движений снаряда, после хода
остальных игроков, т.е. усложнение алгоритмов поведения юнитов, дополнительная головная боль для игрока, да
и к тому же, с какой-то стороны, нелогичность в плане разницы между количеством ходов отдельного юнита
и снарядов на поле, ну вы поняли

2) вторая версия:
о- всем игрокам доставляется одинаковая информация о положении дел на поле, каждый принимает решение,
которые мы записываем в массив
о- осуществляем ход каждого юнита
о- проверяем попадание снарядов в юнитов
о- делаем ход всех снарядов
о- снова проверяем снаряды на попадание

плюсы:
+ работа игрока над алгоритмом юнита становится не столько нудной, сколько чуть более интересной, т.к. тут
все игроки ходят одновременно и кто его знает, что будет потом,
+ игроку не надо просчитывать, что будет с его юнитом спустя все ходы соперников и где будут находится
летящие в разные стороны снаряды
+ присутствует хоть что-то похожее на риал-тайм
минусов побольше чем в первом:
- игрок может наступить на пущенный им в прошлом ходу снаряд (хотя и можно кинуть эту проблему на плечи
игроку, мол, не стоит наступать туда, куда стреляешь)
- мне кажется, что наблюдателю будет сложно усмотреть за всеми юнитами сразу, поправьте, если не прав
- а этот минус скорее не минус, а временный вопрос о том, что необходимо будет ввести в игру понятие
перезарядки, т.е. количество ходов, через которое можно совершить следующий выстрел, думаю это оправдано

в общем я всеми руками за второй метод, однако не могу придумать решения проблемы наступания на собственные же снаряды, поэтому решил обратиться за помощью, ну или просто послушать здравые мысли, заранее благодарю.

странно, что где-то не туда нажал на тач паде и откуда-то вылетел этот текст "в момент следующего хода представляет интерес", с первого взгляда не нашёл того места, быть может исправлю))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прошу совета в привидении игры к логике (C++):

Профилирование, C++ и вставки ASM, прошу совета - C++
есть собственно программа, вот часть кода где я и колдую int radix=10; int n = 1; double X=0.0, summ=0.0, a,b,c,d,e; #define...

Прошу совета по выбору API для изучения - C++
Здравствуйте, я хочу начать изучение какого-нибудь API на C++ для создания приложений (преимущественно на Windows). Мне в школе задали...

Прошу объяснить о ссылках,указателях,стрелке -> и двоеточиях :: очень прошу я не понял синтаксис - C++
Здравствуйте! Есть конкретно 4 типа: 1)стрелка (->) 2)указатели (*) 3)ссылки (&) 4)2е двоеточий (::) а вопрос:что они собой...

Я не прошу писать мне код, я прошу подсказать мне, что за структура требуется в задании - C++
Написать программу для работы по запросам оператора с приоритетной очередью запросов. Куча отображается в память двоичным деревом. ...

Программирование игры, первые шаги, прошу совета - C# WPF
Вообщем решил попробовать себя в создании игры, так как мой профильный язык C# решил выбрать его, работаю с Microsoft Visual Studio 2010,...

Прошу совета - Процессоры
Приветствую обитателей этого форума. Привели меня сюда размышления о совместимости имеющихся у меня частей компьютера с планируемыми. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 19:23
Привет! Вот еще темы с ответами:

Прошу совета! - Графика и игры
Подскажите пожалуйста уважаемые программисты с чего лучше начать в этом области для новичка,я не училась но много смотрела материала и...

Прошу совета! - Хостинг
Приветствую всех форумчан! Прошу не судить строго за мой абсурдный вопрос (я даже не уверен, что спрашиваю в соответствующем разделе), но...

Прошу совета - Клавиатуры
Кто-нибудь юзал эту клаву ? Как она вообще, стоит ли брать?

Прошу совета! - Графика и игры
Доброго времени суток! Вообщем сразу к сути дела: Есть установщик игры в формате .exe + 2 .bin файла игры (в которых как я понимаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru