LINUX.ORG.RU
ФорумTalks

Как писать AI

 


0

1

Пишу бота для дли «игры»*. Кода много и часть кода дублируется.

Мне интересно где можно прочесть как все это дело структурировать.

*Коротко и для Ъ. Есть лабиринт по нему бегают команды состоящие из пакман и N призраков. Призраки могут есть пакманов, пакманы могут есть призраков если перед этим проглотят колеса. И тд и тп.

Мне интересно где можно прочесть как все это дело структурировать.

«Точно так-же, как и любую другую программу» - КО

часть кода дублируется

Перепиши в ООП-стиле.

Dragon59 ★★
()
Ответ на: комментарий от Bad_ptr

Поиск пути тут обычный BFS, который я уже сделал. Меня больше интересует политика выбора цели.

Например сейчас мои призраки убегают от супер пакманов если те съели пилюлю. Но Я отдаю себя отчет что дебажить скоро будет сложно...

Trieforce
() автор топика
Ответ на: комментарий от deterok

Вообще я не уверен, что в компилируемых языках такое возможно.

deterok ★★★★★
()
Ответ на: комментарий от Trieforce

Ну, на счет C++, ничего посоветовать не могу, я его пользовал в стиле «C»(без классов)

deterok ★★★★★
()
Ответ на: комментарий от Trieforce

Делать классы внутри класса кошерно?

можно. Можно в одном файле просто несколько классов, можно их в неймспэйс засунуть, если чего.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Trieforce

Например сейчас мои призраки убегают от супер пакманов если те съели пилюлю. Но Я отдаю себя отчет что дебажить скоро будет сложно

AI пишется для призраков ? при малейшем проблеске интеллекта у призраков пакману п@#@ц. и дебажить будет точно нечего :)

а вообще стратегии выносится во внешний модуль который реализуется на чём-то более подходящем чем C++. Да хоть на любимом lor`ом лиспе.

MKuznetsov ★★★★★
()

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

n_play
()
Ответ на: комментарий от Bad_ptr

Путь для ботов обычно задается метками прямо на карте

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от MKuznetsov

при малейшем проблеске интеллекта у призраков пакману п@#@ц.

+1

Алгоритм у призраков простой как репка - бегаем от стенки к стенки с некоторой вероятностью поворачивая на поворотах. При наличии пакмана на линии бежать за ним, если супер-пакман то убегать. Если пакман скрылся из виду то продолжить бегать от стенки к стенке.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от MKuznetsov

Там несколько команд и разные карты. АИ пишется для своих призраков и пакмана.

Trieforce
() автор топика
Ответ на: комментарий от MKuznetsov

К несчастью нужно писать в контексте одного структа(в нем можно делать что угодно) и одного файла.

Trieforce
() автор топика
Ответ на: комментарий от Bad_ptr

ну как как. В этом случае, имхо, основное — это алгоритм поиска пути.

в случае пакмана этот алгоритм поиска пути сводится к рандомному выбору «повернуть на право» или «повернуть налево» или «прямо»

Siado ★★★★★
()

это куда это нужно одним файлом отправлять? Конкурс какой-то, типа Google AI challenge?

Harald ★★★★★
()
Ответ на: комментарий от buddhist

A* не нужен поскольку есть множество целей чье положение «не известно» и порталы.

Trieforce
() автор топика
Ответ на: комментарий от Trieforce

К несчастью нужно писать в контексте одного структа(в нем можно делать что угодно) и одного файла.

За твоим процессом написания кода наблюдают что-ли (через git или ещё как)? Я бы писал так как мне нравится, все внешние файлы подключая через include. Ну, а в момент сдачи проекта, просто склеивал бы все их в один большой megafile.c

justAmoment ★★★★★
()
Ответ на: комментарий от DNA_Seq

при малейшем проблеске интеллекта у призраков пакману п@#@ц.

+1

Алгоритм у призраков простой как репка - бегаем от стенки к стенки с некоторой вероятностью поворачивая на поворотах. При наличии пакмана на линии бежать за ним, если супер-пакман то убегать. Если пакман скрылся из виду то продолжить бегать от

стенки к стенке.

Не вполне корректно, кстати. В оригинальном пакмане у каждого призрака была своя модель поведения. google://Pac-Man#Сюжет

upcFrost ★★★★★
()

Если призраков больше, чем колёс, я бы поставил всех призраков сторожить колёса

GblGbl ★★★★★
()
Ответ на: комментарий от GblGbl

Даже если бы это было возможно надо учесть что почти всегда пакманы к колесам ближе. Пока мои призраки кемперят в дверях

Trieforce
() автор топика

Про robocode слышал? Там люди своими ботами делятся, можно подсмотреть.

SOmni ★★
()
Ответ на: комментарий от ratvier

Нет мой в нутре университетский. И как я уже писал там команды пакман с призраками против пакманов с призраками.

Trieforce
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.