Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ИИ для крестиков нолоков (https://javascript.ru/forum/misc/24956-ii-dlya-krestikov-nolokov.html)

Даша Соколова 20.01.2012 05:18

ИИ для крестиков нолоков
 
Я искала в поиске и нашла пару статей. но там ни чего не понятно. Кто нибудь уже писал это на javascript?

Tim 20.01.2012 06:49

Было дело. Исходники не сохранились, года 4 уже прошло. Там комбинаций то не оч много. Самая интересная это:

- - - | - - - | x - - | x - - | x - x
- x - | o x - | o x - | o x - | o x -
- - - | - - - | - - - | - - o | - - o

Мой алгоритм следил за ситуацией и если возможно пытался сделать такую вилку. Ес-но не допускал ставить себя в подобные ситуации. Выиграть у него было не возможно, и он мне быстро наскучил. В крестиках-ноликах вообще тока 2 способа выиграть. 1: вилка, 2: противник откровенно тупанул (впрочем вилка это тоже этот-же способ).

Я имею ввиду классический вариант с полем 3х3. С большим полем я думаю опять всё сведётся с нескольким способам ставить вилку и всё.

with-love-from-siberia 20.01.2012 15:38

ИИ - искусственный интеллект? Для крестиков-ноликов? Для этой игры достаточно знать выигрышную стратегии. В данном случае выигрышная стратегия первого игрока - занять центр. Задача второго игрока - занять углы.

alexan0308 22.01.2012 13:16

Цитата:

Сообщение от Tim (Сообщение 151592)
Мой алгоритм следил за ситуацией и пытался сделать такую вилку. Выиграть у него было не возможно.

Попроще алгоритм для ИИ можно сделать наверно так:
1. Перед каждым ходом ИИ проверяет, нет ли угрозы (два идущие подряд крестика противника).
2. Если угроза есть, закрывает. Если угрозы нет, рандом на свободное место.

Тогда комп можно выиграть, и комп не выглядит совсем уж тупым... И реализовать легко....

melky 22.01.2012 13:54

Цитата:

Сообщение от alexan0308 (Сообщение 152088)
Попроще алгоритм для ИИ можно сделать наверно так:
1. Перед каждым ходом ИИ проверяет, нет ли угрозы (два идущие подряд крестика противника).
2. Если угроза есть, закрывает. Если угрозы нет, рандом на свободное место.

Тогда комп можно выиграть, и комп не выглядит совсем уж тупым... И реализовать легко....

рандом на свободное место :/

вообще, алгоритм есть на википедии. вам осталось только это описать в коде.

alexan0308 24.01.2012 12:09

Действительно, "Лучшее" - враг "хорошего". Я просто предложил легко реализуемый алгоритм.

trikadin 24.01.2012 14:42

И почему с этой бедной игрой у людей всегда такие сложности?

melky 24.01.2012 16:27

Цитата:

Сообщение от alexan0308 (Сообщение 152448)
Действительно, "Лучшее" - враг "хорошего". Я просто предложил легко реализуемый алгоритм.

действительно :) другой вариант фразы - Perfection kills.

Даша Соколова 24.01.2012 21:49

Цитата:

Сообщение от trikadin (Сообщение 152491)
И почему с этой бедной игрой у людей всегда такие сложности?

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

trikadin 24.01.2012 21:54

Цитата:

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

Это как? Если комп слабый - алгоритм расстраивается и проигрывает?


Часовой пояс GMT +3, время: 16:48.