Войти
ПрограммированиеФорумИгровая логика и ИИ

Открытый проект "Крестики нолики"

Страницы: 1 2 37 8 Следующая »
#0
(Правка: 1:01) 0:58, 21 мая 2019

Меня тут спровоцировали комментарием о ИИ шахмат и т.д. С другой стороны, в целях познакомится и что-то сделать вместе, я периодически, не теряю надежду найти новых людей и что-то сделать вместе.

Вот такая идея:
1. Делаем реализацию "крестиков-ноликов" на Unity
2. Показываем реализацию минимакса - ИИ для крестиков/ноликов (если кто не в курсе, он же лежит в основе шахмат)
3. Есть куда стремится - "3D крестики нолики" с произвольной длиной поля ... другие игры, вплоть до шахмат ... (шахматы я сам наверно не потяну, но если были бы напарники - то скорее да, давно хотел ... )


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

С теме же кто выживет после "осеней сессии крестиков-ноликов", я бы пошел в сторону искусственных нейронных сетей ...

#1
10:02, 21 мая 2019

Выигрышная тактика для крестиков-ноликов пишется в несколько строчек, никакой ИИ тут не нужен.

#2
10:25, 21 мая 2019

На бесконечном поле уже веселее. Единственный минус что опенсорсных решений и так полно. Можно "уголки" - вроде не такая уж распостраненная игра чтоб много готовых ботов было.

#3
(Правка: 16:14) 11:00, 21 мая 2019

Ну, на самом деле, я тут один метод прорабатываю ... не так все просто как кажется - минимакс должен проверить порядка 2 млн. позиций ... задача уменьшить ... но это пол задачи ...

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

Вот вам пример:

хо-
---
---

ход крестиков, кто выиграет? Минимакс, кстати не дает точного ответа ... что относится к его минусам, вот что он дает

*      | *      | 244
960  | 1476 | 316
1200 | 540  | 1048

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

Крестики показательны тем, что очень хорошо можно показать суть методов, в отличии от к примеру DeepBlue - полная не впечатляющая фигня ... элегантность алгоритма совершенно не показана, да и сам алгоритм сомнителен ..

#4
0:56, 22 мая 2019

А давайте, просто упростим ) Ни крестик, ни нолик в свой первых ход не может делать ход в центр - как теперь вы напишите логику, не считая по минимаксу? сдается мне она не будет столь просто и элегантной, как кажется ... попробуйте ..

#5
10:44, 22 мая 2019

tac
> как теперь вы напишите логику, не считая по минимаксу?
Что там писать то? Количество возможных развитий игровой ситуации не больше 9! = 362880. Можно тупо запускать bfs и считать количество побед и поражений. Выбирать тот путь, где побед больше и поражений меньше.

#6
(Правка: 12:38) 12:31, 22 мая 2019

MrShoor
> и считать количество побед и поражений. Выбирать тот путь, где побед больше и
> поражений меньше.
совсем не читаем, что я пишу? это и есть минимакс .. а без него? какой подход вы используете без полного перебора на всю глубину?

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

или ситуация #2 выше, ограничение, первый ход не ставить в центр

#7
(Правка: 12:57) 12:32, 22 мая 2019

MrShoor
> не больше 9! = 362880
о ё, как мало, а логически там не больше десятка ситуаций, опишите их? и не считайте все ..

в этом и не понимание подавляющей массы иследователей, они стремятся решать задачи с большим перебором, в то время как решать надо вырожденные задачи. на них получаются интересные алгоритмы, а не тупой перебор. а дальше сделайте крестики в 3d и покажите преимущество ..

а говоря что, а чего тут делать минимаксом решайте ) это же смешно и не научно

p.s. ситуаций больше 2106288, но спорить лень .. раньше подсчитывал .. вы посчитали похоже только на последнем шаге ... а сложить забыли ..

#8
12:47, 22 мая 2019

tac
> а дальше сделайте крестики в 3d и покажите преимущество ..
Если поле 3×3, то и для 3d проще взять тот же bfs. Глубины в ходов 5 хватит с головой. Т.е. обходим в ширину до тех пор, пока враг не победит, либо пока не прошло 5 ходов. Из всех результатов выбираем тот, в котором больше побед и меньше поражений.

#9
(Правка: 12:52) 12:52, 22 мая 2019

tac
> p.s. ситуаций больше 2106288, но спорить лень .. раньше подсчитывал
Я не знаю что ты там и где подсчитывал, но на первом ходу есть 9 вариантов, на втором 8, на третьем 7, на четвертом 6 и так далее. Поэтому возможных вариантов всего: 9*8*7*6*5*4*3*2*1 что равно 9! и что равно 362880
И это еще без учета, что многие комбинации закончатся намного раньше победой одной из сторон. Т.е. 362880 - это просто количество способов расставить крестики нолики в поле 3×3

#10
(Правка: 13:03) 12:58, 22 мая 2019

9+9*8+72*7... сам же пишешь дерево строишь, ну так посчитай узлы )

#11
13:00, 22 мая 2019

MrShoor
> Глубины в ходов 5 хватит с головой.
не, не читаешь ) с глубиной только на 1?

#12
(Правка: 13:05) 13:04, 22 мая 2019

tac
> 9+9*8+72*7...
Что за чушь? Откуда плюс?
На, читай вот:
https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D1%8… 2%D0%BA%D0%B0

Число всех перестановок из n элементов равно числу размещений из n по n, то есть факториалу
#13
13:12, 22 мая 2019

tac
> сам же пишешь дерево строишь, ну так посчитай узлы )
Давай поступим так. Ты возьмеш листочек, нарисуешь поле 2×2, и начнешь вписывать в ячейки поля последовательно цифры: 1 2 3 4. Я вот говорю, что у тебя не получится больше 4! = 24 комбинаций. Как только ты получишь хотя бы 25 разных комбинаций - смело выкладывай сюда. Будем всем форумом гнать меня ссаными тряпками. Если нет - то будем гнать тебя. Идет?

#14
(Правка: 13:12) 13:12, 22 мая 2019

MrShoor
оттуда, что это дерево, а не его листья

Страницы: 1 2 37 8 Следующая »
ПрограммированиеФорумИгровая логика и ИИ