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

Интеллект компьютера в игре Крестик-Нолик - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выполнить сортировку по убыванию. Пирамидальная сортировка http://www.cyberforum.ru/cpp-beginners/thread1136392.html
Выполнить сортировку по убыванию. Пирамидальная сортировка и сортировка слияния. Размерность массива меняется от 10 до 100 шагом 10. Массив заполнен случайным образом (неупорядочен). template< class T > void downHeap(T a, long k, long n) { // процедура просеивания следующего элемента // До процедуры: a...a - пирамида // После: a...a - пирамида T new_elem;
C++ Проверить что цифры данного трехзначного числа образуют возрастающую последовательность 1 Проверить истинность высказывания: "Цифры данного трехзначного числа образуют возрастающую последовательность" помогите написать программу :( Добавлено через 29 минут Что не кто не знает? мне надо с операторами if , else http://www.cyberforum.ru/cpp-beginners/thread1136332.html
Определить попадание произвольной точки в заштрихованную область C++
Помогите пожалуйста, не могу сделать эту задачу (С++)
Определить количество элементов файла, величина которых меньше среднего арифметического всех элементов данного файла C++
В файле находятся вещественные числа. Определить количество элементов файла, величина которых меньше среднего арифметического всех элементов данного файла. Мой код, который следует дополнить, пока выглядит вот так: #include <stdio.h> #include <conio.h> int main() { int n,i; float m; char str,str1,ch;
C++ Вычислить значение заданной функции y = f(x) на данном интервале [a,b] с заданным шагом \Delta x http://www.cyberforum.ru/cpp-beginners/thread1136303.html
Вычислить значение заданной функции y = f(x) на данном интервале с заданным шагом \Delta X y=ln\frac{x+1}{x} x\epsilon \Delta x=0.5 Напишите программу пожалуйста =*
C++ Словари и множества. SET MAP Помогите с задачей Пишите задачу в тело сообщения! подробнее

Показать сообщение отдельно
НеСказочник
58 / 46 / 7
Регистрация: 12.11.2012
Сообщений: 339
Записей в блоге: 2
02.04.2014, 11:32     Интеллект компьютера в игре Крестик-Нолик
Если компьютер всегда играет нулями, то всё просто.
Я это как-то так вижу:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <map>
 
using namespace std;
 
struct XOmap //Карта поля, я взял структуру, так как с ней проще, можно методы внутрь запихнуть.
{
 char a[3][3];
 
 bool step(XOstep nstep,char symbol)
 {
  if ((nstep.r < 3) && (nstep.c < 3))
  {
   a[nstep.r][nstep.c] = symbol;
   return true;
  }
  else
   return false; //Возвращает false, если ход вне поля (так просто защита от дурака)
 }
}
 
struct XOstep //структура для хранения одного хода компьютера
{
 unsigned char r,c;  //строка, столбец, где нужно поставить нолик.
}
 
map<XOmap,XOstep> AI_DataBase;
 
XOmap CurrentMap; //карта игрового поля
 
//......   тут остальной ваш код
//...... И после каждого хода игрока компьютер ходит так
XOstep nextStep=AI_DataBase[CurrentMap];   //Выбираем из базы наилучший ход для текущей ситуации
CurrentMap.step(nextStep,2);                 //И ходим
//....... И дальше прочий код.
Добавлено через 4 минуты
Только вот AI_DataBase заполнять будете сами. Туда, собственно, и запихивается стратегия игры.

Добавлено через 2 минуты
Можно попытаться читать из файла, или написать метод, заполняющий map при запуске. Вот справка по map и ещё на русском.

Добавлено через 1 минуту
Только не пытайтесь использовать данный метод для чего-то сложнее, чем крестики нолики. Так обычно не делают, но задача слишком уж простая, что бы настоящий AI подключать.
 
Текущее время: 19:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru