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

Крестики-нолики. Выбор между игрой с компьютером или игрой с Человеком - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Простая сортировка выбором с использованием указателей http://www.cyberforum.ru/cpp-beginners/thread1123919.html
Всем доброго времени суток! Прошу участников форума подсказать как доработать программу, чтобы ее работа была корректной. Нужно произвести сортировку массива по возрастанию (По возрастанию |masi|> x) Программу написал, по возрастанию сортирует, но не могу понять как задать это значение x. Должна получиться сортировка массива меньше заданного х. Если не затруднит, можете подсказать как...
C++ Переставить местами первую и последнюю строку массива Помогите пожалуйста найти ошиибкууу :help: Borland C++. Задание: Задан целочисленный массив А размерности NхM. Переставьте местами первую и последнюю строку данного массива. #include <iostream.h> #include <conio.h> #include <time.h> main() { int N,M,c,i,j,a; randomize(); http://www.cyberforum.ru/cpp-beginners/thread1123913.html
C++ Написать программу, которая берет все названия картинок из данной папки и записывает их в текстовый файл
Дана папка, в которой лежит определенное кол-во картинок. Необходимо написать программку, которая берет все названия картинок из данной папки и записывает их в текстовый файл, разделяя, к примеру, пробелами. Как такое реализовать?
Как с помощью программы на C++ изобразить различные графики и фигуры? C++
Собсно,как с помощью программы на с++ изобразить различные графики и фигуры?
C++ Исключить из строки S все сдвоенные пробелы http://www.cyberforum.ru/cpp-beginners/thread1123861.html
НУЖНО ПОМОЩЬ В НАПИСАНИЕ КОДА.ХОТЯ БЫ ЕЕ ЧАСТЬ.ЗАРАНЕЕ СПАСИБО!! Дана строка S, состоящая из латинских букв, пробелов и знаков препинания, а также буквенные символы C1 и C2. Требуется произвести следующие действия: 1.Исключить из строки S все сдвоенные пробелы; 2.Заменить в строке S все вхождения символа C1 на символ C2; 3.У всех гласных букв изменить регистр (заглавные сделать...
C++ Вывести интересные элементы массива Нужна помощь в написание кода.ЗАРАНЕЕ СПАСИБО!! Дан массив, элементами которого являются целые числа. Интересными называются те элементы массива, которые являются чётными и расположены одновременно после максимального элемента и до минимального элемента. Если массив содержит несколько максимальных элементов, следует рассматривать первый из них. Если массив содержит несколько минимальных... подробнее

Показать сообщение отдельно
Achakoo
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 34
19.03.2014, 15:36     Крестики-нолики. Выбор между игрой с компьютером или игрой с Человеком
Написал небольшой код игры Крестики Нолики 5х5 с возможностью игры PvP (Игрок против Игрока). Ломаю голову как добавить в код возможность игры против Компьютера, а так же чтобы в начале ... при запуске был выбор ... играть против компьютера или против Игрока ... Помогите добавить в этот код необходимое для того, чтобы она запускалась как описано выше. В общем буду очень благодарен откликнувшемуся ..Заранее СПАСИБО !!!
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <locale.h>
char board[25] = {};
using namespace std;
void clearscreen()
{
     for(int i = 0; i<100; i++)
     {
            cout<<endl;
  }
}
 
void clearboard()
{
    for(int i = 0; i<26; i++)
    {
            board[i] = '-';
    }
 
}
 
bool has_wonQ(char player)
{
  int wins[12][5] = {{0,1,2,3,4}, {5,6,7,8,9}, {10,11,12,13,14}, {15,16,17,18,19}, {20,21,22,23,24}, {0,5,10,15,20},
                     {1,6,11,16,21}, {2,7,12,17,22}, {3,8,13,18,23}, {4,9,14,19,24}, {0,6,12,18,24}, {4,8,12,16,20}};
 
       for(int i = 0; i<12; i++)
       {
           int count = 0;
           for(int j = 0; j<5; j++)
           {
               if(board[wins[i][j]] == player)
               count++;
    }
    if(count == 5)
    {
       return true;
    }
  }
  return false;
}
 
void print_board(string indent)
{
  cout << endl;
  cout<<"\n   Таблица ваших ходов\n";
  cout<<"    --------------------- " << endl;  
  cout<<indent<<"    | "<<board[20]<<" | "<<board[21]<<" | "<<board[22]<<" | "<<board[23]<<" | "<<board[24]<<" |\n";
  cout<<"    --------------------- " << endl;
  cout<<indent<<"    | "<<board[15]<<" | "<<board[16]<<" | "<<board[17]<<" | "<<board[18]<<" | "<<board[19]<<" |\n";
  cout<<"    --------------------- " << endl;
  cout<<indent<<"    | "<<board[10]<<" | "<<board[11]<<" | "<<board[12]<<" | "<<board[13]<<" | "<<board[14]<<" |\n";
  cout<<"    --------------------- " << endl;
  cout<<indent<<"    | "<<board[5]<<" | "<<board[6]<<" | "<<board[7]<<" | "<<board[8]<<" | "<<board[9]<<" |\n";
  cout<<"    --------------------- " << endl;
  cout<<indent<<"    | "<<board[0]<<" | "<<board[1]<<" | "<<board[2]<<" | "<<board[3]<<" | "<<board[4]<<" |\n";
  cout<<"    --------------------- " << endl;
}
int get_move()
{
  cout<<"\nТаблица возможных ходов\n";  
  cout<<"      ---------------- " << endl;   
  cout<<"      |21|22|23|24|25| " << endl;
  cout<<"      ---------------- " << endl;   
  cout<<"      |16|17|18|19|20| " << endl;
  cout<<"      ---------------- " << endl; 
  cout<<"      |11|12|13|14|15| " << endl;
  cout<<"      ---------------- " << endl; 
  cout<<"      |6 |7 |8 |9 |10| " << endl;
  cout<<"      ---------------- " << endl; 
  cout<<"      |1 |2 |3 |4 |5 | " << endl;
  cout<<"      ---------------- " << endl; 
  cout<<"\n";
 
print_board("");
cout << "\nВведите цифру ячейки: ";
 
 
  int move;
  cin >> move;
  while (move > 25 || move < 1 || board[move - 1] != '-') 
  {
  cout<<"Введите число от 1 до 25:\n";
  cin >> move;
  }
  return move;
}
 
char play_and_get_winner()
{
    int turn = 1;
 
    while(!has_wonQ('X') && !has_wonQ('0'))
    {
           clearscreen();
           int move = get_move();
           clearscreen();
           if(turn%2 == 1){
              board[move-1]='X';
               if(has_wonQ('X'))
               {
               cout <<"Крестики победили!\n";
               return 'X';
               }
 
      }
       else
       {
              board[move-1]='0';
              if(has_wonQ('0'))
              {
              cout <<"Нолики выйграли!\n";
              return '0';
        }
      }
    turn++;
    if(turn == 26)
    {
    cout << "Нечья\n";
    return 'D';
    }
  }
}
 
int main()
{
    setlocale(LC_ALL,"RUSSIAN");
    string reply = "y";
    int x_wins=0, o_wins=0, ties=0;
 
    while(reply == "y")
    {
    clearboard();
    char winner = play_and_get_winner();
    print_board("");
    cout << "\n Хотите поиграть ещё? Да-(y), Нет-(n): ";
    cin  >> reply;
        while(reply != "y" && reply !="n")
        {
    cout << "!!! Сделайте выбор !!!(y/n):";
    cin  >> reply;
    }
 
   }
 
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru