Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

25.02.2012, 16:42. Просмотров 3390. Ответов 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;}
не интересно
как можно написать ИИ?
 Комментарий модератора 
На форуме есть теги для выделения кода!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 16:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ИИ для крестиков ноликов на С++ (C++):

Бот для крестиков-ноликов - C++
Хочу написать бота для крестиков-ноликов и вот тут незадача, или нужно перечислять все комбинации что являеться не сильно приятным, :wall: ...

Найти вероятность выпадения крестиков, ноликов и пустой клетки - C++
Проблема в следующем мой преподаватель скинул мне готовую программу для вычисления вероятности выпадения крестиков , ноликов и пустой...

Функция для крестиков-ноликов - Erlang
Здравствуйте, я пишу свою первую программу на функциональном языке программирования, поэтому возникают большие сложности. Можете...

PyQt5 Сделать графический интерфейс для крестиков-ноликов - Python
Здравствуйте. Есть код для крестиков-ноликов, все более-менее работает. Хочу сделать GUI с помощью PyQT, пока сложно все это доходит до...

Искусственный интеллект для больших крестиков-ноликов - C#
Пишу игрушку - клеточное поле 19*19, крестики и нолики, надо составить 5 в ряд. Написал, все, кроме искусственного интеллекта. Не могу даже...

Поиск выигрышных ситуаций для крестиков-ноликов на неограниченном поле - Java SE
Каким способом можно наиболее эффективно найти на игровом поле координаты всех ячеек, заполнение которых приведёт к выигрышу? ...

15
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 16:53 #2
Есть два подхода к созданию ИИ:
Нисходящий - в вашем случае это воссоздать все возможные комбинации игры и пути решения
Восходящий - тут гораздо сложнее. Смотри Искусственная нейронная сеть
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:00  [ТС] #3
нуу мне тогда остается всё перебирать.....
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
25.02.2012, 17:05 #4
Цитата Сообщение от Taras_Z Посмотреть сообщение
нуу мне тогда остается всё перебирать.....
Можно ещё анализировать комбинации, хотя это тоже в каком то смысле "перебор"
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:06  [ТС] #5
а примера у вам нету случайно?
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.02.2012, 17:14 #6
Тут, наверное, эвристикой нужно делать.
Если строить дерево игры, то выиграть будет слишком сложно, и играть будет неинтересно.
А если рандомно делать ходы - слишком легко, что, опять же, неинтересно.
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:20  [ТС] #7
а у вас есть пример крестиков ноликов???
а то я на двоих сделал а с компом не получается=)
0
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] и тд.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.02.2012, 17:38 #9
http://www.cyberforum.ru/cgi-bin/latex.cgi?3^{(3*3)}=19683. Это не такое уж большое количество вариантов текущего состояния, для всех можно заранее выбрать и записать правильный следующий ход.
0
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. Это не такое уж большое количество вариантов текущего состояния, для всех можно заранее выбрать и записать правильный следующий ход.
Я не это имел в виду. Я имел в виду что можно отталкиваться от того как пошел игрок и уже потом строить планы относительно хода компьютера
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 17:56  [ТС] #11
я пока сделал проверку еслть ли подряд два крестика итого 22 варианта....
0
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 18:06 #12
Все перебирать нет никакой необходимости. Нужно расставлять весовые коэффициенты для ячеек в зависимости от перспектив образования ряда при ходе в соответствующую ячейку.
Крестики-нолики 3x3 я писал на c#. Сам так называемый "ИИ" там относительно небольшой, поэтому разберешься.
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:30  [ТС] #13
спасибо очень!
0
Питекантроп
246 / 140 / 6
Регистрация: 14.06.2010
Сообщений: 340
25.02.2012, 18:45 #14
там, кстати, ИИ в одном случае неправильно ходит. Найдешь в каком?
0
Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
25.02.2012, 18:52  [ТС] #15
хорошо но потом=) щас дела...
0
25.02.2012, 18:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2012, 18:52
Привет! Вот еще темы с ответами:

Добавить счетчик побед крестиков и ноликов, изображение на интерфейсе используя Label - C#
namespace WindowsFormsApplication1 { public partial class fMain : Form { public fMain() { ...

Нужен исходник "крестиков-ноликов" с рандомным ходом - C#
есть у кого исходник крестиков ноликов с рандомным ходом в windows forms? а то в голову кроме этого, не чего не приходит namespace...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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