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

Крестики нолики.Искуственный интелект - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Абстрактный базовый класс "звонок" с виртуальной функцией "стоимость" http://www.cyberforum.ru/cpp-beginners/thread588995.html
Помогите пожалуйста очень надо (классы это не мое) полиморфизм Поступающие звонки оператор классифицирует (т.е. в какой город, регион, страну и т.д. поступил звонок), заносит соответствующие данные и добавляет запись к абоненту. Необходимо реализовать унифицированные функции подсчета общего времени и стоимости как для абонента (звонящий) так и для всех абонентов, ...
C++ Предложения С клавиатуры вводится предложение, слова в котором разделены символом подчеркивания «_». Подсчитайте число вхождений в предложение используемых букв, запишите результат в строку (парами: буква - цифра ). http://www.cyberforum.ru/cpp-beginners/thread588991.html
Длина строки в текстовом файле C++
Найти максимальную длину строки в текстовом файле и распечатать все строки файла, имеющие такую длину.
задача на текстовый файл C++
Из тескстового файла выбросить пробельные символы. Новый файл не создавать.
C++ Задача на текстовый файл http://www.cyberforum.ru/cpp-beginners/thread588980.html
Из текстового файла выбросить все гласные. Новый файл не создавать
C++ Задача на целочисленную матрицу Целочисленную матрицу отсортировать следующим образом: элементы с четными значениями должны быть упорядочены внутри строк по убыванию, элементы с нечетными значениями - по возрастанию. Четные и нечетные элементы не должны меняться местами друг с другом. подробнее

Показать сообщение отдельно
НаськаПуська
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 3

Крестики нолики.Искуственный интелект - C++

28.05.2012, 13:05. Просмотров 676. Ответов 2
Метки (Все метки)

Добрый день ! Помогите додумать програму чтобы можно было играть с компьютером.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
include <iostream>
 
char board[9] = {}; 
 
void clearscreen(){
  for(int i = 0; i<40; i++){
    std::cout<<std::endl;
  }
}
 
void clearboard(){
  for(int i = 0; i<9; i++){
    board[i] = '-';
  }
}
 
bool has_wonQ(char player){
  
  int wins[][3] = {{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7},
                    {2,5,8}, {0,4,8}, {2,4,6}};
 
  for(int i = 0; i<8; i++){
    int count = 0;
    for(int j = 0; j<3; j++){
      if(board[wins[i][j]] == player) 
        count++; 
    }
    if(count == 3){
      return true;
    }
  }
  return false;
}
 
void print_board(std::string indent){
    std::cout << std::endl;  
    std::cout<<indent<<"-"<<board[6]<<"-|-"<<board[7]<<"-|-"<<board[8]<<"-\n";
    std::cout<<indent<<"-"<<board[3]<<"-|-"<<board[4]<<"-|-"<<board[5]<<"-\n";
    std::cout<<indent<<"-"<<board[0]<<"-|-"<<board[1]<<"-|-"<<board[2]<<"-\n";
}
 
int get_move(){
    std::cout<<"\nMove options: \n";
    std::cout<<"-7-|-8-|-9-" << std::endl;
    std::cout<<"-4-|-5-|-6-" << std::endl;
    std::cout<<"-1-|-2-|-3-" << std::endl;
    std::cout<<"\n";
 
    print_board("");
    std::cout << "\nYour move: "; 
    
    int move;
    std::cin >> move;
    while(move > 9 || move < 1 || board[move-1] != '-'){
        std::cout<<"Please enter a legal move (1-9): \n";
        std::cin >> move;
    }
    return move;
}
char play_and_get_winner(){
  int turn = 1;
  
  while(!has_wonQ('X') && !has_wonQ('O')){
          clearscreen();          
          int move = get_move();
          clearscreen();
          if(turn%2 == 1){
             board[move-1]='X';
             if(has_wonQ('X')){
                std::cout << "Congratulations player X! You have won!\n";
                return 'X';
             }
          } 
          else{ 
             board[move-1]='O';
             if(has_wonQ('O')){
                std::cout << "Congratulations player O! You have won!\n";
                return 'O';
             }
          }
      turn++;
      if(turn == 10){
        std::cout << "\t It's a draw!\n"; 
        return 'D';
      }
  }
 
}
 
int main(){
        std::cout<<"Welcome to tic-tac-toe!\n\n";
        std::string reply = "y";
        int x_wins=0, o_wins=0, ties=0;
 
        while(reply == "y"){
          clearboard();
          char winner = play_and_get_winner();
          print_board("\t  ");
          
          switch(winner){
            case 'X':
              x_wins++;
              break;
            case 'O':
              o_wins++;
              break;
            case 'D':
              ties++;
              break;
          }
          
          std::cout << "\n\t*Winner Statistics*\nPlayer X: " << x_wins 
                    << ", Player O: "<<o_wins << " and Ties: "<<ties<<"\n\n";
          std::cout << "\nWould you like to play again? (y/n): ";
          std::cin  >> reply; 
          while(reply != "y" && reply != "n"){
            std::cout << "Please enter a valid reply (y/n):";
            std::cin >> reply;
          }      
        } // end of while loop
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru