Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > экспертная система


Автор: romeobugulma 25.10.2007, 14:07
Помогите пожалуйста.
Нужно реализовать игру крестики-нолики.
Имеется некоторая ситуация на доске 3 на 3.
Расположены маркеры свои и чужие(x, 0). Программа анализирует: если есть решение ходит,
если нет - то на угад.

Автор: Maksym 25.10.2007, 14:33
romeobugulma
Что конкретно не получается?

Автор: nornad 25.10.2007, 20:50
Есть такой термин "магический квадрат". Суть его в том, что в квадрате 3х3 записаны цифры от 1 до 9 так, что их сумма по любой вертикали, горизонтали и диагонали (включая и диагонали, учитывающие "шарообразность" квадрата) была одной и той же (если я правильно помню, то это 15). Так вот, магический квадрат используется для игры в крестики-нолики. Смысл в том, что программа должна из имеющихся у неё цифр (те, что она отметила крестиком и те, что пока ещё свободны; если это первый ход в игре - программа занимает центр; если к сумме ведут несколько равноценных путей - выбирает любой).
В принципе, вот и всё решение. Магический квадрат в сети найти труда не составит.

Добавлено через 54 секунды
Кстати, вроде бы с Java 5+ идёт пример как раз крестиков-ноликов. smile

Автор: Zamuta 26.10.2007, 06:03
Для поля 3 на 3 существует только один квадрат

2  9  4
7  5  3
6  1  8

Для поля 4 на 4 более одного, например:

 1    8   15   10
12  13   6     3
14  11   4     5
 7    2    9    16

Автор: _Michael 26.10.2007, 15:56
nornad, а для реверси например? там какой принцып? как программу научить "думать"? smile

Автор: nornad 26.10.2007, 17:14
_Michael, хз, если честно. Не интересовался никогда. Крестики-нолики - классика жанра. Реверси сложнее, но тоже поддаётся математическому описанию, так что нужно "всего лишь" взять и описать. smile
Тут же речь шла об обычных "Tic-Tac-Toe" на поле 3х3. Решение детское. Если слышал, конечно. smile

Автор: romeobugulma 8.11.2007, 14:47
 smile 

Автор: nornad 8.11.2007, 15:59
Ну уж нет. Такой простой код я рисовать не стану. Сдаётся мне, что ты просто не хочешь немножко подумать и взяться за клавиатуру.
Логика "AI" уже расписана. Кроме того, с JDK идёт демо-аплет крестиков-ноликов, про который тебе уже тоже говорили.

Если у тебя нет желания что-либо делать самому, то у меня нет желания помогать. Для начала реши для себя, что тебе это надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)