Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 16:22   #21
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ну как раз ИИ в шахматах - это последнее, что надо делать. Сначала достаточно реализовать игру Player vs Player, а потом можно без проблем снаружи накрутить ИИ, предоставив ему такой же интерфейс, что и игроку. Логика его будет самой нетривиальной частью всех шахмат, а вот взаимодействие этой логики с прочим кодом - довольно простой. Так что не стоит за это прежде времени убиваться.
Кстати, лично я бы начал с отрисовки поля и фигур - всегда приятно, когда как можно раньше удается посмотреть и потрогать игру, а потом уже можно и логику понемногу реализовывать.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 09.11.2012, 19:22   #22
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Это точно.
Я так думаю для начала надо не только гуи не рассматривать, но и любой язык программирования.
По какому алгоритму должен действовать противник-компьютер? Вы сами когда играете в шахматы какому алгоритму следуете? Лично мне на этот вопрос сложно ответить?
Можно конечно использовать много известных комбинаций, взять из турниров гросмейстеров например и сохранить как-то в файл. Но думаю на это у вас уйдет много, много................. времени и вы забьете на это.

А вот второй вариант в начале комп действует очень простому алгоритму, например сохранить фигуры, и само собой проигрывает. Но все пройгрышные комбинации сохраняет в файл и в последующих играх их не использует. Получается как-бы самообучение, конечно примитивное, но все-же.
Я как-то обдумывал такой вариант, но все архи-сложно получается
SAMOUCHKA вне форума Ответить с цитированием
Старый 09.11.2012, 20:17   #23
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Никогда и не пытался шахматы делать, но представляю себе, что ИИ и есть основа и изюминка любой шахматной проги. Отображение, перемещение фигур и т.п. сложно, но решаемо, если не сразу, то со временем, набив руку, а вот ИИ и есть базис и надстройка, ради чего и стоит заниматься подобными задачами. Не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.11.2012, 21:30   #24
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Axrik Посмотреть сообщение
Я бы начал с написания ИИ, ибо если это дело завалить, то не стоит продолжать весь проект в целом
И как же это будет происходить без реализации всего игрового процесса? Можно это сделать без GUI, но вот без кодирования правил игры мне это смутно представляется.
Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
Я так думаю для начала надо не только гуи не рассматривать, но и любой язык программирования.
Ага. И любую парадигму и любые шахматные правила в любой вселенной.
Излишнее абстрагирование ни к чему хорошему не приводит.
Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
По какому алгоритму должен действовать противник-компьютер? Вы сами когда играете в шахматы какому алгоритму следуете? Лично мне на этот вопрос сложно ответить?
Это уже ИИ и логичнее его делать в самом конце, т.к. самая трудозатратная часть. В настоящий момент алгоритмизации в таких играх нет. Проблема в подборе оценочных функций.
Поясняю: для совершения хода, проверяются все возможные ходы себя и противника на n ходов вперёд. Выбирается тот ход, который приводит к лучшему положению, согласно оценочной функции. Конец партий уже кодируют более жестко используя "заготовки" эндшпилей.
Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
Можно конечно использовать много известных комбинаций, взять из турниров гросмейстеров например и сохранить как-то в файл. Но думаю на это у вас уйдет много, много................. времени и вы забьете на это.
Это используется в эндшпилях. Хотя для современных компьютерных мощностей шахматы уже не интересны, ибо всё вполне себе просчитывается быстрее и лучше человека.
Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
А вот второй вариант в начале комп действует очень простому алгоритму, например сохранить фигуры, и само собой проигрывает. Но все пройгрышные комбинации сохраняет в файл и в последующих играх их не использует. Получается как-бы самообучение, конечно примитивное, но все-же.
Шахматы не программируют подобно человеческому размышлению. Нет там стремления сохранить фигуру или пожертвовать ею. Просто выбирается ход, который через n ходов приведёт к лучшей ситуации на поле. Сложность ИИ меняется посредством изменения этого самого n.
Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
Я как-то обдумывал такой вариант, но все архи-сложно получается
поэтому так обычно не делают
Цитата:
Сообщение от Аватар Посмотреть сообщение
Никогда и не пытался шахматы делать, но представляю себе, что ИИ и есть основа и изюминка любой шахматной проги. Отображение, перемещение фигур и т.п. сложно, но решаемо, если не сразу, то со временем, набив руку, а вот ИИ и есть базис и надстройка, ради чего и стоит заниматься подобными задачами. Не?
Шахматы в целом сейчас не очень интересны и ИИ для них не представляет былого уважения, как во времена соревнования Человек vs компьютер, когда шумели на весь мир. Целесообразность решения этой задачи зависит от целей. Если человек просто хочет изучить программирование, то очень хорошая задача даже без ИИ. Заработать на шахматах сейчас сложно, т.к. их уже куча бесплатных, да и люди больше увлекаются всякими Angry Birds, а не мозги напрягают всей этой тягомотиной
pu4koff вне форума Ответить с цитированием
Старый 10.11.2012, 20:39   #25
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Что ж, у каждого свой подход, я высказал свой.
В крайности бы я не кидался как вы, цитируя всё и вся
Ведь никто не знает идеальный подход, с чего и как начинать. Это ж программирование
Axrik вне форума Ответить с цитированием
Старый 11.11.2012, 13:37   #26
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Axrik Посмотреть сообщение
Что ж, у каждого свой подход, я высказал свой.
Он был заведомо неправильный, т.к. нельзя начать с середины.
Цитата:
Сообщение от Axrik Посмотреть сообщение
В крайности бы я не кидался как вы, цитируя всё и вся
Мне скучно и одиноко.
Цитата:
Сообщение от Axrik Посмотреть сообщение
Ведь никто не знает идеальный подход, с чего и как начинать. Это ж программирование
Я знаю идеальный подход и всё здесь предложенное совсем не идеально.
pu4koff вне форума Ответить с цитированием
Старый 26.11.2012, 10:17   #27
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию

pu4koff, жжете! :D

Цитата:
Я бы начал с написания ИИ, ибо если это дело завалить, то не стоит продолжать весь проект в целом
Axrik, весь прикол в том, что мне не нужен ИИ. На первом этапе. Моя цель\задача\план сделать программу, которая сможет мне просто отвечать. Не важно как, хоть рандомно. Я просто хочу попробовать другой вариант игры, который чем-то похож на "дерево", но без просчёта ходов на n уровней вниз\вверх.

Поэтому, я соглашусь с Громом, что пощупать программу хочется в первую очередь


Цитата:
Это точно.
Я так думаю для начала надо не только гуи не рассматривать, но и любой язык программирования.
По какому алгоритму должен действовать противник-компьютер? Вы сами когда играете в шахматы какому алгоритму следуете? Лично мне на этот вопрос сложно ответить?
Можно конечно использовать много известных комбинаций, взять из турниров гросмейстеров например и сохранить как-то в файл. Но думаю на это у вас уйдет много, много................. времени и вы забьете на это.

А вот второй вариант в начале комп действует очень простому алгоритму, например сохранить фигуры, и само собой проигрывает. Но все пройгрышные комбинации сохраняет в файл и в последующих играх их не использует. Получается как-бы самообучение, конечно примитивное, но все-же.
Я как-то обдумывал такой вариант, но все архи-сложно получается
SAMOUCHKA, мой алгоритм - срубить, сохранить, победить))
я не профессиональный игрок в шахматы, но играю на уровне среднее между "новичок-любитель". У меня есть знакомые\друзья, кто занимается этим не 1 десяток лет и если у меня будут возникать какие-то вопросы по поводу игры, именно тактик и как разыграть - я могу в любое время спросить у них. То есть, "как играть" не думаю, что это самый страшный и главный вопрос))
мне бы хоть сделать программу, которая всё двигала, знала куда можно двигать, и что конь буквой "Г"))

Компьютер-противник будет просто ходить. Пока что это будет "безмозглая программа". Вы меня простите, но я не на столько крутой программист, который может с ходу с лёту написать ИИ. Я даже понятия до сих пор не имею про классы, а вы мне "как будет играть?" - да будет, будет он как-нибудь играть))

И да - откуда такая уверенность. что забью? Исключений не бывает?))
Я пишу эту программу для того, чтобы получить какой-то опыт и знания - более резкий, более сложный; постоянно улучшать и улучшать код. И вопрос про ИИ мне тоже интересен))

Аватар, ИИ - да. это ж мозг в любом деле.
Давайте буду объяснять на примерах биологии: сначала был бульон. Ну так вот, в этом бульоне появились бактерии. Потом микроорганизмы.
Микроорганизмы = функции имеют, мозгов нет. Они реагируют на свет\температуру\хим.состав, имеют агрессивность даже (то есть, нападение на кого-либо). Мозгов нет. Потом там были организмы покрупнее, потом трилобиты, потом рыбки ещё всякие, а, после трилобитов пошли пресмыкающиеся, а ещё динозавры и прочие животные. Где-то там появился и человек.

Если так философски посмотреть, то все делают примерно где-то с "динозавры\животные" и выше.
Мне такого не надо. Мне надо начать с "мирового бульона"))) А в ходе эволюции, он сам себе мозг сделает. Я вам тут такие фантастические идеи рассказываю, а ж самой не верится)))



pu4koff, чтобы понять как всё работает (массивы, проверка, переходы по массиву и так далее), я решила взять игру чуть-чуть попроще - игрок против игрока, 1 компьютер, "Морской бой"))
правда, у меня не получается один момент. Именно тот, когда идёт расстановка корабликов он совсем что-то не то выдаёт. Причина может быть либо в глобальных переменных, либо это магия, над которой я думаю неделю! :D
Может, мне ещё сделать тему? - именно про морской бой, примитивный морской бой, который я сама сделаю))
Fanyuus вне форума Ответить с цитированием
Старый 26.11.2012, 11:44   #28
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Fanyuus Посмотреть сообщение
pu4koff, чтобы понять как всё работает (массивы, проверка, переходы по массиву и так далее), я решила взять игру чуть-чуть попроще - игрок против игрока, 1 компьютер, "Морской бой"))
Можно хоть крестики-нолики взять или сокобан какой. Тут вопрос личных предпочтений. Лишь бы интересно было, а то дело не пойдёт
Цитата:
Сообщение от Fanyuus Посмотреть сообщение
правда, у меня не получается один момент. Именно тот, когда идёт расстановка корабликов он совсем что-то не то выдаёт. Причина может быть либо в глобальных переменных, либо это магия, над которой я думаю неделю! :D
Чтобы не было магии, глобальные переменные и не используют. Если кода не сильно много и он не совсем ужасен, то можно и на форум запулить, может кто на досуге свежим взглядом посмотрит и найдёт проблему.
Цитата:
Сообщение от Fanyuus Посмотреть сообщение
Может, мне ещё сделать тему? - именно про морской бой, примитивный морской бой, который я сама сделаю))
По правилам форума морской бой заслуживает отдельной темы. Хотя, с большой долей вероятности, тут уже что-то было про эту игру и можно там посмотреть что к чему (может там все возникшие вопросы были кем-то решены).
ИИ - это точно отдельная тема и строится там всё не как у людей. Часто бывает, что больше разработчики заморачиваются на тему подобия ИИ мышлению человека. Сами алгоритмы поиска решения строятся на основе какой-либо математической модели, а потом корректируются с целью "очеловечивания". Например, поиск кратчайшего пути в играх может искать не совсем кратчайший, а тот, по которому пошел бы человек.
pu4koff вне форума Ответить с цитированием
Старый 26.11.2012, 14:33   #29
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Для написания ИИ порекомендую литературу:
http://www.ozon.ru/context/detail/id/7107485/ (советую взять за основу)
http://www.ozon.ru/context/detail/id/5040102/ (много интересных решений и подходов)
http://www.ozon.ru/context/detail/id/2476937/ (тут достаточно только первых четырех глав, для усвоения многослойных НС)

Цитата:
Можно хоть крестики-нолики взять или сокобан какой. Тут вопрос личных предпочтений. Лишь бы интересно было, а то дело не пойдёт
Цитата:
pu4koff, чтобы понять как всё работает (массивы, проверка, переходы по массиву и так далее), я решила взять игру чуть-чуть попроще - игрок против игрока, 1 компьютер, "Морской бой"))
Тут проще if if if if if if ... и можно не париться :D

И еще вот, весьма достойная статья.
Очень близкие темы это "Исследование операций" и "Методы оптимизации".

Последний раз редактировалось Kostia; 26.11.2012 в 15:40.
Kostia вне форума Ответить с цитированием
Старый 26.11.2012, 17:25   #30
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию

Kostia! Большое вам спасибо!
Когда я всё-таки доберусь до ИИ, обязательно перечитаю эти книги\ресурсы!)))

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

Думаю, там всё-таки была проблема в функциях и переменных. проще было бы всё сделать в одном месте, а так хотелось выпендриться и сделать: если ты ходишь, то тебе в эту функцию, если то, то в эту функцию :D
Fanyuus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игры "Крестики нолики" на php Loki1993 PHP 4 20.09.2012 20:33
Создание игры "Змейка" asmars C++ Builder 6 23.10.2011 15:20
PHP как язык для обучения программированию "с нуля"? DooM1k Свободное общение 10 31.03.2008 17:58
Создание игры "Крестики-нолики" Cubar Помощь студентам 9 22.01.2008 23:07