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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 16:42     ИИ для крестиков ноликов на С++ #1
вот написал крестики нолики 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++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 16:53     ИИ для крестиков ноликов на С++ #2
Есть два подхода к созданию ИИ:
Нисходящий - в вашем случае это воссоздать все возможные комбинации игры и пути решения
Восходящий - тут гораздо сложнее. Смотри Искусственная нейронная сеть
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:00  [ТС]     ИИ для крестиков ноликов на С++ #3
нуу мне тогда остается всё перебирать.....
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:05     ИИ для крестиков ноликов на С++ #4
Цитата Сообщение от Taras_Z Посмотреть сообщение
нуу мне тогда остается всё перебирать.....
Можно ещё анализировать комбинации, хотя это тоже в каком то смысле "перебор"
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:06  [ТС]     ИИ для крестиков ноликов на С++ #5
а примера у вам нету случайно?
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.02.2012, 17:14     ИИ для крестиков ноликов на С++ #6
Тут, наверное, эвристикой нужно делать.
Если строить дерево игры, то выиграть будет слишком сложно, и играть будет неинтересно.
А если рандомно делать ходы - слишком легко, что, опять же, неинтересно.
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:20  [ТС]     ИИ для крестиков ноликов на С++ #7
а у вас есть пример крестиков ноликов???
а то я на двоих сделал а с компом не получается=)
R136a1
 Аватар для 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
Ушёл с форума.
 Аватар для 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
 Аватар для 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
 Аватар для 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
 Аватар для 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
там, кстати, ИИ в одном случае неправильно ходит. Найдешь в каком?
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:52  [ТС]     ИИ для крестиков ноликов на С++ #15
хорошо но потом=) щас дела...
ilnuribat
Сообщений: n/a
11.06.2012, 23:50     ИИ для крестиков ноликов на С++ #16
Цитата Сообщение от Taras_Z Посмотреть сообщение
а у вас есть пример крестиков ноликов???
Я взял в качестве курсовой работы игру крестики-нолики, реализовав там нейронную сеть.
exe файл тут : http://********/d/yMW4V5EG1BKJD
Yandex
Объявления
11.06.2012, 23:50     ИИ для крестиков ноликов на С++
Ответ Создать тему

Метки
крестики нолики
Опции темы

Текущее время: 09:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru