![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.07.2012
Сообщений: 357
|
![]()
День добрый.
Может кто ни будь может помочь(не написать код), просто подкинуть мысль по нижеизложенному поводу. Думаю 1,5 дня, но мыслей нет никаких. Собсно ломаю голову над эмулятором боя одной старой игры. В нашем случае число пакетов равно 4. У первого игрока число юнитов в пакете 2, у второго 1. Случайным образом выбираем порядок в котором будут стрелять игроки (в нашем случае таких возможностей всего 2: сначала первый потом второй, и наоборот. В случае 3 игроков возможно 6 вариантов: 1-2-3, 1-3-2, 2-1-3, 2-3-1, 3-1-2, 3-2-1, и т.п.). Итак, у нас получилось 4 пакета, причем у первого в пакете 2 юнита, а у второго - 1. Расписывая эту последовательность, получаем [A2 B1][A2 B1][A2 B1][A1 B1]. Последний пакет оказался неполным ( Xчисло, означает, что стреляет число юнитов стороны X). Т.к. у нас порядок следования игроков в каждом пакете случаен, то возможны следующие варианты: (A2 B1)(A2 B1)(A2 B1)(A1 B1) (A2 B1)(A2 B1)(A2 B1)(B1 A1) (A2 B1)(A2 B1)(B1 A2)(A1 B1) (A2 B1)(A2 B1)(B1 A2)(B1 A1) (A2 B1)(B1 A2)(A2 B1)(A1 B1) (A2 B1)(B1 A2)(A2 B1)(B1 A1) (A2 B1)(B1 A2)(B1 A2)(A1 B1) (A2 B1)(B1 A2)(B1 A2)(B1 A1) (B1 A2)(A2 B1)(A2 B1)(A1 B1) (B1 A2)(A2 B1)(A2 B1)(B1 A1) (B1 A2)(A2 B1)(B1 A2)(A1 B1) (B1 A2)(A2 B1)(B1 A2)(B1 A1) (B1 A2)(B1 A2)(A2 B1)(A1 B1) (B1 A2)(B1 A2)(A2 B1)(B1 A1) (B1 A2)(B1 A2)(B1 A2)(A1 B1) (B1 A2)(B1 A2)(B1 A2)(B1 A1) Не знаю как реализовать в массивах разбивку юнитов на 16 линий пакетов. Готов принять любую помощь. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
Что-то не могу понять, что у вас понимается под пакетом?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.07.2012
Сообщений: 357
|
![]()
Грубо: пакет это, например А2(два юнита стороны А) стреляет в В1(один юнит с другой стороны). Может я чего логическое пропустил... полная версия на http://dc.cdelta.org/dc:articles:battle_manual в пункте пакетирование.
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
Хорошо.
Сегодня я уже если честно не в состоянии соображать логически. Завтра с утра обзятельно загляну в тему, если никто не поможет, постараюсь подкинуть идею ![]() |
![]() |
![]() |
![]() |
#5 | |||
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
Прочитал про пакетирование, вроде как более - менее все проясняется.
Правильно ли я понимаю что в этой таблице: Цитата:
Т.е. например, берем первую строку: Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 13.07.2012
Сообщений: 357
|
![]() Цитата:
16 линий это 16 вариантов(извиняюсь, ошибся со словом) порядка стрельбы(т.е. кто в кого). И дальше там перечислены все 16 вариантов. Проблема в том как составить эти варианты. Последний раз редактировалось Artsiom; 06.08.2012 в 16:52. Причина: поправил |
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
Artsiom
Получается 4 игрока уже участвовать в игре будут? |
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
(A2 B1) A2 -- 2 юнита A стреляют по противнику затем B1 -- 1 юнит B стреляет по противнику. () затем идет следующий блок. и так до исчерпания варианта (до исчерпания юнитов у А и B). A и B кто начинает первым, кто вторым. цифры сколько юнитов будет задействовано. пакет означает что не все юниты одной стороны сразу вступают в бой. а противник тупо ждет окончания огня, и только потом отвечает. А огонь ведется порциями (пакетами) и при этом со случайным выбором очередности огня. (A..B..) (A..B..) (A..B..) ... это один вариант развития событий(очередности огня) (A..B..) (B..A..) ..... а это другой. Цифры особой роли не играют (они постоянны, за исключением последнего (неполного) блока в каждой строке.). А их сумма есть общее число юнитов у какой-либо стороны. число порций (скобок) в пакете (строке) не постоянно и равно числу юнитов у противника с наименьшим числом юнитов. каждая порция есть либо Ax By либо By Ax примерная гененрация ОДНОГО случайного пакета. Код:
программа — запись алгоритма на языке понятном транслятору
|
||
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 13.07.2012
Сообщений: 357
|
![]()
Да, сам не разобравшись полез что то делать.
Не обратил внимание на фразу "Выбранные юниты стреляют, учитывая приоритеты и т.п. и т.д." Возможно что тут не верно. Ведь с начала составляются(а не генерируются случайно пакеты) все возможные варианты (А2 В1) и далее. и так пока не кончатся юниты у двух сторон, а потом из них выбирается рандомно один вариант по которому они и стреляют. |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
случайно выбрать ОДИН из полного списка. или случайным образом составить ОДИН. При условии что вероятности выпадения(выбора/генерации), будут одинаковы. Можно вообще отказаться от пакетов. 1. Все юниты (всех противников) имеющие право действия выстраиваются в очередь 2. затем данная очередь перемешивается случайным образом 3. и действия юнитов выполняются в порядке случайной очереди.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 06.08.2012 в 19:53. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SQL Delphi алгоритмом | RikkiTan | Помощь студентам | 0 | 14.04.2012 15:11 |
Проблема с алгоритмом | VKorablev | Общие вопросы C/C++ | 4 | 22.12.2011 20:20 |
Проблема с алгоритмом... | Petrum | Общие вопросы C/C++ | 4 | 23.11.2011 22:14 |
Помогите с алгоритмом | Xelpher | Помощь студентам | 7 | 02.11.2009 19:03 |
Помогите с алгоритмом | xxxNeXxxx | Помощь студентам | 3 | 18.10.2009 19:58 |