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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2013, 23:42   #1
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию алгоритм для крестиков-ноликов

надумал писать крестики нолики (5 в ряд)
и задался вопросом о том как будет соображать компьютер:
пока из мыслей приоритетность клеток + (отдельно) поиск троек - четверок, поставленных в ряд.
собственно интересует мнение форумчан, не надо тыкать в гугл.
denrubun вне форума Ответить с цитированием
Старый 07.01.2013, 15:40   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Правильно думаете - поиск троек и чётвёрок в ряд + вилок. Если честно то достаточно просто для такой игры сделать матрицу ходов.
Виталий Желтяков вне форума Ответить с цитированием
Старый 07.01.2013, 15:47   #3
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

Цитата:
матрицу ходов
можно капельку разъяснений?

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

Последний раз редактировалось denrubun; 07.01.2013 в 15:51.
denrubun вне форума Ответить с цитированием
Старый 07.01.2013, 15:50   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Начните с хотсит-игры, реализуйте всю логику - расстановки, очерёдности ходов, выигрыш-проигрыш. Сделайте графическое оформление простейшее.
А там видно будет - если грамотно сделаете, то подключить вместо одного хотсит-игрока модуль для оценки ходов - будет просто, сперва можно написать заглушку, которая принимает поле и ходит в рандомную клетку. Потом уже будем обсуждать предметно. В общем виде можно просто перебором с оценочной функцией сделать. Ссылки на подобные обсуждения с реализацией на оценочных функциях:
http://programmersforum.ru/showthread.php?t=33566
а также откройте поиск для себя - много тем на форуме, искать по ключевым словам "крестики нолики".
phomm вне форума Ответить с цитированием
Старый 07.01.2013, 16:00   #5
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

ставка поочередно, проверка координат, переключение хода, отлов выигрыша - все это сделано уже за графику я не брался еще никогда и старательно оттягиваю этот момент.
п.с. рандом-заглушка тоже есть, даже было проведено соревнование ее с текущей версией аи, успешно(в пользу аи конечно)
кстати про поиск я чтото забыл, спасибо)
denrubun вне форума Ответить с цитированием
Старый 08.01.2013, 01:01   #6
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

прочитал про минимакс, про отсечения, вроде понял, но выглядит это все довольно обобщенно. А у меня такая болезнь я хочу чтоб алгоритм был ну оптимальней некуда, за каждую проверку дерусь. Отсюда возникает вопрос: много ли, по вашему мнению, я смогу добиться уйдя от минимакса и построения деревьев в изобретение алгоритма исключительно для данной задачи? Или я покружусь и пойму что лучше не может быть, и тогда лучше не выпендриваться и просто реализовывать минимакс?
denrubun вне форума Ответить с цитированием
Старый 08.01.2013, 07:50   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Правильно думаете - поиск троек и чётвёрок в ряд + вилок. Если честно то достаточно просто для такой игры сделать матрицу ходов.
Виталий, а Вы садист. Матрица игры, в комбинаторике, вычисляется как факториал. Например для матрицы 3Х3 число комбинаций буде (3 * 3)! = 362880. Для матрицы 5Х5=25! Мне даже представить страшно какая будет матрица.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 08.01.2013 в 07:56.
Smitt&Wesson вне форума Ответить с цитированием
Старый 08.01.2013, 12:04   #8
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
можно капельку разъяснений?
Цитата:
Виталий, а Вы садист. Матрица игры, в комбинаторике, вычисляется как факториал. Например для матрицы 3Х3 число комбинаций буде (3 * 3)! = 362880. Для матрицы 5Х5=25! Мне даже представить страшно какая будет матрица.
Я неправильно выразился. Я имел в виду матрицу выйгрышных комбинаций, а не полную матрицу ходов.
Достаточно просто проверять противника на эти комбинации и всё.
Виталий Желтяков вне форума Ответить с цитированием
Старый 08.01.2013, 16:15   #9
denrubun
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 82
По умолчанию

Цитата:
Я имел в виду матрицу выйгрышных комбинаций, а не полную матрицу ходов.
Достаточно просто проверять противника на эти комбинации и всё.
т.е. после хода противника мы проверяем не собрал ли он такую комбинацию и, если собрал, обламываем его, правильно понял? ну и сами тоже пытаемся такие создать.
denrubun вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм для Шашек isus Помощь студентам 16 10.10.2012 09:46
Алгоритм для программы Kostik777 Помощь студентам 2 15.01.2010 12:09
алгоритм для бенчмарка CraZZy RabbIt Общие вопросы Delphi 9 02.03.2009 22:01
Алгоритм для Pascal Trojan-PSW.Win32 Помощь студентам 6 29.01.2008 10:17