Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
#1

ИИ для крестиков ноликов на С++ - C++

25.02.2012, 16:42. Просмотров 3159. Ответов 15

вот написал крестики нолики 3х3
но немогу написать ИИ для компа
тупо перебирать все комбинации типа :
C++
1
2
3
if(a[0][0]==a[0][1] && a[0][0]!=' '){ a[0][2]=charr;}
if(a[0][1]==a[0][2] && a[0][1]!=' '){ a[0][0]=charr;}
if (a[0][0]==a[0][2] && a[0][0]!=' '){ a[0][1]=charr;}
не интересно
как можно написать ИИ?
 Комментарий модератора 
На форуме есть теги для выделения кода!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 16:42     ИИ для крестиков ноликов на С++
Посмотрите здесь:
Бот для крестиков-ноликов C++
Найти вероятность выпадения крестиков, ноликов и пустой клетки C++
Erlang Функция для крестиков-ноликов
C# Искусственный интеллект для больших крестиков-ноликов
Сделать графический интерфейс для крестиков-ноликов Python PyQt5
Поиск выигрышных ситуаций для крестиков-ноликов на неограниченном поле Java SE
C# Добавить счетчик побед крестиков и ноликов, изображение на интерфейсе используя Label
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 16:53     ИИ для крестиков ноликов на С++ #2
Есть два подхода к созданию ИИ:
Нисходящий - в вашем случае это воссоздать все возможные комбинации игры и пути решения
Восходящий - тут гораздо сложнее. Смотри Искусственная нейронная сеть
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:00  [ТС]     ИИ для крестиков ноликов на С++ #3
нуу мне тогда остается всё перебирать.....
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:05     ИИ для крестиков ноликов на С++ #4
Цитата Сообщение от Taras_Z Посмотреть сообщение
нуу мне тогда остается всё перебирать.....
Можно ещё анализировать комбинации, хотя это тоже в каком то смысле "перебор"
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:06  [ТС]     ИИ для крестиков ноликов на С++ #5
а примера у вам нету случайно?
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.02.2012, 17:14     ИИ для крестиков ноликов на С++ #6
Тут, наверное, эвристикой нужно делать.
Если строить дерево игры, то выиграть будет слишком сложно, и играть будет неинтересно.
А если рандомно делать ходы - слишком легко, что, опять же, неинтересно.
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:20  [ТС]     ИИ для крестиков ноликов на С++ #7
а у вас есть пример крестиков ноликов???
а то я на двоих сделал а с компом не получается=)
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:22     ИИ для крестиков ноликов на С++ #8
Цитата Сообщение от Taras_Z Посмотреть сообщение
а примера у вам нету случайно?
Ну например игрок ходит первым (нолик) player[1][0], компьютер например может оценить куда игроку выгоднее всего пойти и сравнить со своей текущей позицией и будущем предпочтительным шагом, ну например computer[0][2]. Далее допустим игрок идет так player[0][0], теперь компьютеру выгоднее всего обломать игрока (т.е. компьютер уже знает какую скорее всего комбинацию задумал игрок и ему нужно будет помешать его планам) - computer[2][0] и тд.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.02.2012, 17:38     ИИ для крестиков ноликов на С++ #9
http://www.cyberforum.ru/cgi-bin/latex.cgi?3^{(3*3)}=19683. Это не такое уж большое количество вариантов текущего состояния, для всех можно заранее выбрать и записать правильный следующий ход.
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:46     ИИ для крестиков ноликов на С++ #10
Цитата Сообщение от taras atavin Посмотреть сообщение
http://www.cyberforum.ru/cgi-bin/latex.cgi?3^{(3*3)}=19683. Это не такое уж большое количество вариантов текущего состояния, для всех можно заранее выбрать и записать правильный следующий ход.
Я не это имел в виду. Я имел в виду что можно отталкиваться от того как пошел игрок и уже потом строить планы относительно хода компьютера
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:56  [ТС]     ИИ для крестиков ноликов на С++ #11
я пока сделал проверку еслть ли подряд два крестика итого 22 варианта....
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 18:06     ИИ для крестиков ноликов на С++ #12
Все перебирать нет никакой необходимости. Нужно расставлять весовые коэффициенты для ячеек в зависимости от перспектив образования ряда при ходе в соответствующую ячейку.
Крестики-нолики 3x3 я писал на c#. Сам так называемый "ИИ" там относительно небольшой, поэтому разберешься.
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:30  [ТС]     ИИ для крестиков ноликов на С++ #13
спасибо очень!
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 18:45     ИИ для крестиков ноликов на С++ #14
там, кстати, ИИ в одном случае неправильно ходит. Найдешь в каком?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2012, 18:52     ИИ для крестиков ноликов на С++
Еще ссылки по теме:
Нужен исходник "крестиков-ноликов" с рандомным ходом C#

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:52  [ТС]     ИИ для крестиков ноликов на С++ #15
хорошо но потом=) щас дела...
Yandex
Объявления
25.02.2012, 18:52     ИИ для крестиков ноликов на С++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru