ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Космический патруль. | страница 1 |
 |
Страница 1 из 1 |
|
|
|
Канал Игры Мечты: «Космический патруль.» |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Вот по совету более опытных товарищей сообразил маленькую игру на двоих, чтоб потренироваться в программировании. Думаю попробовать для начала сделать текстовый вариант на Питоне (как вариант web интерфейс), а потом прилепить к нему графику средствами PyQt.
Космический патруль.
Идея игры является развитием, классического морского боя, перенесённого в трёхмерное пространство и с более сложными правилами.
В начале игры запрашивается размер игрового поля и количество кораблей из трёх вариантов минимум 512 ячеек и 14 кораблей (2*8, 4*4, 8*2), средне 4096 ячеек и 31 (1*16, 2*8, 4*4, 8*2, 16*1) кораблей, огромное 32768 ячеек и 63 кораблей (1*32, 2*16, 4*8, 8*4, 16*2, 32*1) и случайное либо выборочное расположение своих кораблей. (В настольном варианте просто записываются в журнал координаты и их изменения, а также все свои ходы и выстрелы противника.) Координаты кораблей записываются группами чисел, определяющими их координаты и ориентацию в пространстве. Для корабля в 2 ячейки 3 варианта, для 4 - 3 и для 8 - 1 (1 - 1, 16 - 3). Игроки ходят строго по очереди, по два хода каждый, ход имеет три варианта:
1. Выстрел – выбирается атакующий корабль, трёхмерные координаты в кубе противника и мощность выстрела из максимально возможных исходя из имеющихся у корабля целых ячеек. Поражающий фактор считается как ячейка координаты выстрела и, если мощность больше единицы, прилегающие к ней выбранные случайным образом ячейки (в варианте настольной игры можно выбрать вручную конфигурацию области поражения, в каждом отдельно взятом случае).
2. Манёвр – выбранный корабль сдвигается на одну ячейку в любую из шести сторон.
3. Ремонт, если корабль повреждён, можно отремонтировать одну ячейку.
Особенность игры: после выстрела корабль засвечивается кубом обратным по размеру мощности выстрела сторона куба от 8 до 1 соответственно. Координаты задаются по противоположным вершинам куба по случайному закону, так чтоб хотя бы одна ячейка реальных координат, атакующего корабля попала в этот куб (в варианте настольной игры, координаты куба засветки задаёт атакующий игрок, учитывая вышеизложенное правило).
Наличие пунктов 2 и 3 можно сделать опционально -- короткий вариант боя и длинный.
Последний раз редактировалось: Zachesa (01:05 06-07-2008), всего редактировалось 8 раз(а) |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Несколько замечаний:
Zachesa : |
48 кораблей 2*8, 4*4, 8*2 число кораблей/ячеек.
|
Форма кораблей классичекая линейная (одномерная), или более сложная (вплоть до 3-х-мерной, из 8-кубового корабля можно куб Боргов собрать )?
Zachesa : |
после выстрела корабль засвечивается кубом обратным по размеру мощности выстрела сторона куба от 8 до 1 соответственно.
|
Выстрел мощностью 8 способен произвести корабль размером 8. Как его засвечивать кубом со стороной 1 ячейка? Случайно выбранный один из 8 кубов корабля? 100% обнаружение. Если используется правило М.Б. - "повтор хода после попадания" - таким выстрелом пользоваться не будут, кроме эндшпиля (3 хода позволяют вычислить положение 1-мерного корабля в 3-мерном пр-ве с высокой вероятностью).
Zachesa : |
если мощность больше единицы, прилегающие к ней выбранные случайным образом ячейки
|
Случайно выбираемые ячейки (количеством, очевидно, равным мощности выстрела), прилегающие к точке попадания, или друг к другу(формирование "хвостов")?
Zachesa : |
2. Манёвр – выбранный корабль сдвигается на одну ячейку в любую из шести сторон.
|
В настольном варианте малоосуществимо Это куча учёркнутых координат.
Кстати, указание координат корабля для настольного/текстового варианта - каким образом? У чётных кораблей нет центральной точки
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
трёхмерная самый большой куб со стороной 2, следующий делим предыдущий на две части и далее.
Guest : |
Случайно выбранный один из 8 кубов корабля?
|
да.
Guest : |
Если используется правило М.Б. - "повтор хода после попадания" - таким выстрелом пользоваться не будут
|
ходить строго по очереди.
Guest : |
Случайно выбираемые ячейки (количеством, очевидно, равным мощности выстрела), прилегающие
|
к друг другу. Как бы если стрелять не одним стволом, а несколькими.
Guest : |
В настольном варианте малоосуществимо Улыбка Это куча учёркнутых координат.
|
Можно заготовить кругляши с цифрами от одного до шестнадцати, (как вариант) много не понадобится, так как корабли не могут занимать одну и туже ячейку. Хотя возможно для настольного варианта прийдётся уменьшить количество кораблей и размер области игры.
Guest : |
указание координат корабля для настольного/текстового варианта - каким образом
|
Zachesa : |
Координаты кораблей записываются двумя группами чисел
|
этого достаточно чтоб определить местоположение и ориентацию применяемых форм кораблей.
|
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Самый простой (компьютерный) вариант делать игру где противник компьютерный.
Используем Питоновский словарь где ключи -- названия кораблей (ship_a_n a -- это размер, n -- соответственно порядковый номер) с вложенными списками значений [x,y,z,l] где x,y,z координаты а l жизнь в виде числа от 0 до 255, 0 -- нет повреждений, другие числа побитовое представление карты повреждений, для корабля в четыре ячейки, к примеру, число 15 обозначает гибель. В начале игры запрашивается размер игрового поля и количество кораблей из трёх вариантов минимум 512 ячеек и 7 кораблей, средне 4096 ячеек и 48 кораблей, огромное 32768 ячеек и 55 кораблей (1*16, 2*8, 4*4, 8*2, 16*1) и случайное либо выборочное расположение своих кораблей, в последнем случае вручную вводятся координаты одной точки для однопалубных кораблей либо двух точек для всех остальных. Соответственно подсказывается как правильно вводить координаты и проверяются введённые цифры с автоподстановкой приемлемых значений. Далее бросается жребий и победивший начинает игру. На экран выводится содержимое словаря, где повреждения кораблей отображаются в процентах. Отдельными строчками произведённые пустые и выстрелы в цель.
Компьютерный оппонент будет рэндомом выбирать вариант хода, в случае попадания в его корабли стрелять, ремонтироваться, или маневрировать. Также по случайному закону выбираем координаты следующего выстрела, атакующий корабль и мощность выстрела. Во время хода игроку также будет предложен вариант выбора действия, кроме первого хода игры, когда начинающий обязан стрелять. Координаты точки обстрела задаются цифрами, область поражения и область засветки расчитываются тем же рэндомом (Сколько его в вариантов в Питоне, выбирать запаришься!) в соответствии с вышеизложенными правилами. Корабль повреждённый на 100% ремонтировать уже не льзя, но он не удаляется с поля а ввиде обломков мешает маневрированию.
|
|
|
Kalembas
1335 EGP
     Рейтинг канала: 2(24) Репутация: 263 Сообщения: 18999 Откуда: Санкт-Петербург Зарегистрирован: 21.03.2003
 |
|
Zachesa : |
Самый простой (компьютерный) вариант делать игру где противник компьютерный.
|
Ошибаешься. Написать сколь нибудь работающий ИИ противника в сотню раз сложнее, чем написать интерфейс ввода для игрока. То, что ты хочешь реализовать, собсно, даже ИИ назвать сложно. ИИ на рандоме не реализуют, поскольку в итоге он реагирует неадекватно на происходящее.
добавлено спустя 16 минут:
По большому счету примитивный ИИ - это набор реакций на некий стандартный набор внешних факторов. Чем больше факторов и их комбинаций, тем больше реакций тебе надо внедрить. Например в случае "М.Б.". Для начала ИИ надо дать некий алгоритм обстрела площадки. Затем нужно проверять:
[блок-1]
1. находятся ли координаты в пределах игрового поля
2. стрелял сюда/не стрелял сюда
3. запретная клетка/не запретная клетка (1 клетка вокруг корабля)
4. попал/не попал
Каждая из этих итераций вызывает свой блок дальнейшего поведения.
[блок-2]
1. если стрелял, то согласно алгоритму - выбрать следующую клетку, выполнить проверки пунктов блока-1 и выполнить реализации пунктов блока-2. если не стрелял и клетка соответствует алгоритму - выстрелить.
2. если запретная, выполнить выбор другой клетки согласно алгоритму, сделать проверку пунктов блока-1 и реализацию пунктов блока-2. Если не запретная, то стрелять.
3. если не попал - ждать хода. если попал, то вот тут начинается самый эвристический блок. ИИ надо знать, сколько кораблей и какого типа есть в игре, какие корабли он уже подбил. Затем проверить есть ли в пределах точки попадания уже отстрелянные (промахнувшиеся) клетки. В зависимости от их наличия, положения и расстояния до них спрогнозировать какой это может быть корабль и начать отстрел свободных точек.
И так все время, пока список подбитых кораблей не сравняется со списком кораблей в игре.
И имей в виду, что я сделал всего лишь эскиз ИИ, это даже не алгоритм. Реальная реализация будет посложнее, поскольку для просто ты изложения я упростил многие аспекты, хотя бы алгоритм отстрела клеток. Это вообще отдельная песня. И это я только про 2Д. В твоем случае это усложняется.
Вот тогда это будет чем то похожим на ИИ. А когда у тебя везде используется рандом, ты получишь инвалида.
_________________ Делаешь – не бойся, боишься – не делай, а сделал – не сожалей...
Последний раз редактировалось: Kalembas (14:10 29-06-2008), всего редактировалось 2 раз(а) |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Kalembas : |
ИИ на рандоме не реализуют, поскольку в итоге он реагирует неадекватно на происходящее.
|
Правильно, всё на случайном выборе не запрограммируешь! Но реализовать жёсткий алгоритм на основе имеющихся правил дело техники. На Q - Бейсике потребовалось бы на это строк 150 кода, лет 15 назад баловался чем-то подобным (возможно на С будет тоже около того). Питон вещь более высокого уровня. За недельку две если не буду слишком занят может справлюсь. Просто язык этот и современные методы программирования учу с нуля. А так опытный питонист за день бы наверное такую игру написал.
Но в тоже время не надо списывать со счетов элемент неожиданности, который привносит случайный выбор, в некоторых случаях это может быть эффективнее сложного, но в тоже время жёстко запрограммированного алгоритма. Есть такая штука Forex, сколько умников пытаются создавать системы, для работы в нём, могу уверить эффективность этих систем очень низка.
К тому же похожесть этой игры на МБ только в том, что используется две области, в остальном игра намного сложнее и дело не в третьем измерении.
Последний раз редактировалось: Zachesa (16:33 29-06-2008), всего редактировалось 1 раз |
|
|
Снуч
941 EGP
   Рейтинг канала: 1(9) Репутация: 232 Сообщения: 2696 Откуда: Ракслатенон Зарегистрирован: 09.08.2005
 |
|
мои пять копеек в общее дело:
Zachesa : |
Координаты кораблей записываются двумя группами чисел, определяющими их координаты и ориентацию в пространстве.
|
зачем две группы чисел когда можно прощще? корабли стандартные (как лошадь ), скажем, "Э,К,Л,Д..." - 1й знак, у каждого есть главная клетка (почти как центрмасс), следовательно можно просто записать ее координаты 2м,3м и 4м знаками, ориентацию в пространстве обозначить 5м знаком. Эсминец с центром масс на пересечении линий "E","10","e" с направление в глубину (Forward) = "ЭЕ0eF" - итого 5 символов (10 обозначать как 0) и естессно не более чем 10х10х10
не обязательно к прочтению (кликните здесь для просмотра)
Zachesa : |
Идея игры является развитием, классического морского боя, перенесённого в трёхмерное пространство и с более сложными правилами.
Область игры: два куба со стороной в 16 единиц состоящие соответственно из 4096 ячеек. 48 кораблей: 2*8, 4*4, 8*2 число кораблей/ячеек. В настольном варианте возможно использовать кубы со стороной 8 по 512 ячеек соответственно и 7 кораблей: 2*4, 4*2 и 8*1. Корабли расставляются игроками перед началом сражения. (В настольном варианте просто записываются в журнал координаты и их изменения, а также все свои ходы и выстрелы противника.) Координаты кораблей записываются двумя группами чисел, определяющими их координаты и ориентацию в пространстве. Игроки ходят строго по очереди, по два хода каждый, ход имеет три варианта:
|
задумка хорошая: римейк простецкой игрушки для таймкилинга.
Посчитаем: в морском бое с разклетовкой 10х10 имеем по 100 клеток у двух игроков, то есть не более 100+99=199 ходов, однако, учитывая тот факт, что с гибелью даже "однушки" закрывается целых 9 клеток, то при условии, что на "ход" отводится в среднем не более 20 секунд (чтобы интерес не потерять к игре), получаем таймкилл (199/9)*20сек/60сек~7 минут реального времени.
Теперь посчитаем тоже самое в предлагаемом 3х мерном варианте (16х16): 16х16 - это 4096 клеток-кубиков у обоих игроков, причем каждый ход - две клетки, то есть (4096+4094)/2=4095 реальных хода, снова учитываем тот факт, что "однушка" будет закрывать со своей гибелью куб из 3х3х3=27 кубиков, то в среднем при тех же 20 секундах на "ход", получаем таймкилл на (4095/27)*20сек/60=50.55 минут ~ 1 час - некисло так.
для варианта с 8х8 аналогично получаем таймкилл на (511/27)*20сек/60 ~ 6 минут. для варианта 10х10 таймкилл примерно на 12 минут. и это всё при двух выстрелах на "ход" + время оценочное, в игре время может быть как больше , так и меньше указанного примерно в два раза
Zachesa : |
1. Выстрел – выбирается атакующий корабль, трёхмерные координаты в кубе противника и мощность выстрела из максимально возможных исходя из имеющихся у корабля целых ячеек. Поражающий фактор считается как ячейка координаты выстрела и, если мощность больше единицы, прилегающие к ней выбранные случайным образом ячейки (в варианте настольной игры можно выбрать вручную конфигурацию области поражения, в каждом отдельно взятом случае).
2. Манёвр – выбранный корабль сдвигается на одну ячейку в любую из шести сторон.
3. Ремонт, если корабль повреждён, можно отремонтировать одну ячейку.
|
вот это вот всё, особенно второй пункт (мама миа, при удачно маневрировании можно играть хоть весь день, а может и больше - игроки просто плюнут на это и будут играть в привычный 2х мерный "морской бой") - ненужные усложнения.
п.с. но для тренировки в программировании, конечно, сойдет.
|
Последний раз редактировалось: Снуч (12:06 01-07-2008), всего редактировалось 3 раз(а) |
|
|
Kalembas
1335 EGP
     Рейтинг канала: 2(24) Репутация: 263 Сообщения: 18999 Откуда: Санкт-Петербург Зарегистрирован: 21.03.2003
 |
|
Zachesa : |
Но в тоже время не надо списывать со счетов элемент неожиданности, который привносит случайный выбор, в некоторых случаях это может быть эффективнее сложного, но в тоже время жёстко запрограммированного алгоритма. Есть такая штука Forex, сколько умников пытаются создавать системы, для работы в нём, могу уверить эффективность этих систем очень низка.
|
Ты ведь не складскую программу пишешь, а игру. Ты рассуждаешь, как технарь-программист. Если ты хочешь писать игры, а не отрабатывать Тех. Задания., то тебе нужно пересмотреть свою концепцию отношения к процессу творчества.
Программирование игр - это творческий процесс создания контента интересного более чем одному человеку.
И как человек, непосредственно работающий с АИ, могу тебе сказать, что, с моей точки зрения, технически ты прав, а вот творчески - нет. Ты создаешь машину, которая в принципе будет делать что ты хочешь, но пользователю твоя игра быстро надоест, потому что АИ ведет себя глупо (например попав в корабль, он не добивает его, а шмаляет наугад в чертову даль, а с твоим подходом к рандому в АИ, так и будет).
Поэтому мой тебе совет - перестань думать как технарь, а программируй, как пользователь твоего продукта. Поставь себя на место игрока и определи как бы тебе хотелось чтобы АИ себя вёл, от этого и пляши. Напиши базис, и начинай его апгрейдить, добавляя штрихи к АИ. В итоге должно получиться то, что ты задумал.
_________________ Делаешь – не бойся, боишься – не делай, а сделал – не сожалей...
Последний раз редактировалось: Kalembas (12:32 01-07-2008), всего редактировалось 1 раз |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Kalembas : |
например попав в корабль, он не добивает его, а шмаляет наугад в чертову даль
|
Угу. Надо, чтобы ИИ сразу выносил все твои корабли - он же знает, как ты их поставил
Он не наугад шмаляет, а методично обрабатывает непосредственную близь.
А вот выстрел размером в 8 - вот это да, это картечь
добавлено спустя 48 секунд:
Кстати, неплохо было бы формализовать выбор размеров "шмалялки" в зависимости от ситуации...
добавлено спустя 44 секунды:
Снуч : |
причем каждый ход - две клетки
|
Каждый ход - до 16 клеток
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (16:53 01-07-2008), всего редактировалось 2 раз(а) |
|
|
Kalembas
1335 EGP
     Рейтинг канала: 2(24) Репутация: 263 Сообщения: 18999 Откуда: Санкт-Петербург Зарегистрирован: 21.03.2003
 |
|
Guest : |
Надо, чтобы ИИ сразу выносил все твои корабли - он же знает, как ты их поставил
|
Это как ты напишешь. Ты - хозяин ИИ. Хочешь, чтоб он знал заренее всё твое расположение, а потом "делал вид" что играет, бога ради. Хочешь сделать его вирутальным игроком, значит он будет так же играть как простой игрок. То есть стрелять пока не попадет, а потом так или иначе обрабатывать попадание.
Guest : |
н не наугад шмаляет, а методично обрабатывает непосредственную близь.
|
Именно это я и говорю. В то время как автор желает, чтобы ИИ тупо рандомно стрелял. Результат такого поведения, я и привел в примере.
_________________ Делаешь – не бойся, боишься – не делай, а сделал – не сожалей... |
|
|
SMax
111 EGP
  Репутация: 16 Сообщения: 957 Откуда: ХМАО, Сургут Зарегистрирован: 02.07.2001
 |
|
Guest : |
Угу. Надо, чтобы ИИ сразу выносил все твои корабли - он же знает, как ты их поставил
|
Вот шайтан, ИИ принижать, стыд иметь надо. Этож не ИИ, а непонятно что.
Guest : |
Он не наугад шмаляет, а методично обрабатывает непосредственную близь.
А вот выстрел размером в 8 - вот это да, это картечь
|
Вот это мысль. Чем больше корабль, тем меньше кучности. Вот он и рандом оправдается. То есть чем крупнее шип, тем ниже кучность.
Попрошу учесть мысль, пожалуйста. Но это разработчику конечно.
|
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Снуч : |
зачем две группы чисел когда можно прощще?
|
согласен, две группы цифр вводить запаришься, дополнение очень полезное. Принимаю, спасибо за проявленный интерес.
Для корабля в 2 ячейки 3 варианта, для 4 - 3 и для 8 - 1 (1 - 1, 16 - 3).
Наличие пунктов 2 и 3 можно сделать опционально -- короткий вариант боя и длинный. Тем более, что без них ИИ запрограммировать проще, может его оставить только на случай игры по сети с человеком.
Guest : |
Надо, чтобы ИИ сразу выносил все твои корабли - он же знает, как ты их поставил
|
Ага по принципу -- монстр должен уметь красиво умереть. Проще и в правда чтоб ИИ знал где твои корабли, а не пытался честно их вычислить. Так промазал ради приличия несколько раз, а потом бац попал как бы невзначай. Между прочем довольно таки распространенный ход в программировании игр.
Последний раз редактировалось: Zachesa (14:27 05-07-2008), всего редактировалось 1 раз |
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
То что в этой игре будет как ИИ - это вообще 5 строк кода
Жду реализацию
_________________ MOV topka, C++ |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Процесс пошёл, написал первых 20 строк кода, не считая комментариев. Возможно уложусь в 100 строк.
Компьютерный оппонент будет использовать список зон для обстрела, который соответственно будет расширяться по мере поступления информации: предыдущие попадания и зоны засветки. Из списка будут исключаться ячейки последнего попадания если противник стрелял на предыдущем ходу два раза (имеется ввиду длинная игра), если были пропуски хода, исходя из предположения, что противник мог совершить манёвр или отремонтировать ячейку, эти ячейки удаляются из списка исключений. Также в список исключений будут вноситься подбитые корабли и примыкающие к ним ячейки.
Как оказалось самым сложным стало программирование формирования списка занимаемых и окружающих корабль ячеек . Возможно есть простой алгоритм в соответствующих библиотеках для этого (оперирование с матрицами), надо жевать документацию дальше. Так что попробую сделать честный ИИ без подглядывания на данные противника. Но реализовать распознавание корабля по нескольким попаданиям -- слишком трудная задача, наверное, для простой программы. Проще лупить всеми стволами по площадям, пока не свалил куда-нибудь, но не забывать о возмездии!
Последний раз редактировалось: Zachesa (13:00 06-07-2008), всего редактировалось 1 раз |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Некоторое время было не до игры, вот решил продолжить. Чтоб сформировать список занимаемых ячеек нужно было рисовать развёртку в трёх проекциях по каждому из 14 кораблей. Так я придумал своим детям интересное занятие. Распечатал на листочках выкройки и они склеили из них 32 кубика. Из этих кубиков я в объёме соорудил все возможные варианты кораблей и расписал занимаемые ячейки, а кубики вернул детям играться. Вообщем использовал метод объёмного моделирования в натуре, чтоб ввести данные в программу
|
|
|
Jerry Rezet
581 EGP
  Рейтинг канала: 5(113) Репутация: 86 Сообщения: 3365 Откуда: Санкт-Петербург. Зарегистрирован: 01.04.2005
 |
|
Zachesa : |
Проще лупить всеми стволами по площадям, пока не свалил куда-нибудь, но не забывать о возмездии!
|
Тогда - почему бы не сделать именно как вариант? Типа самого лёгкого уровня сложности? А потом дописать "более другой" алгоритм поведения?
_________________ - Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c] |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Jerry Rezet : |
А потом дописать "более другой" алгоритм поведения?
|
Вообщем и так делаю: как можно проще, а потом, если масть покатит, можно будет дописывать алгоритмы.
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Наращивай функционал по мере разработки. Сразу написать супер сложный АИ не выйдет без опыта
_________________ MOV topka, C++ |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Нашло на меня в GalCiv2 поиграть, всё остальное куда-то отодвинулось
После того как разобрался, как формировать список занимаемых кораблём ячеек возникла дилемма хранить ячейки в виде трёхмерных координат или в виде номера. В первом случае много возни с цифрами: сложение матриц, поиск коллизий вообще сущий ад. Когда ячейка задана номером невозможно корректно маневрировать. Пришёл к выводу хранить в виде номеров всё таки, а когда надо преобразовывать в координаты.
Только что-то код разрастается как на дрожжах
|
|
|
|
|
|
Канал Игры Мечты: «Космический патруль.» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Впервые вижу, чтобы топик с эротическим подтекстом скатился в оффтоп на математику. (заметил Арманкессилон)
|
» Космический патруль. | страница 1 |
|