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

Игра "Крестики нолики", почему не работает проверка окончания? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неверный результат при преобразования типов данных static_cast<int>(double) http://www.cyberforum.ru/cpp-beginners/thread1234970.html
Доброго времени суток, уважаемые программисты! Перейду сразу к сути проблемы: При данном значении вещественной переменной n (n=0.13) в переменной целого типа m результат не 13, а 12. В чём...
C++ Какая разница между разными объявлениями объектов? чет 4 месяца не писал на С++ а писал на сшарпе немного. Но вот вернувшись к С++ чет вылетело с головы. Какая разница между обвявлением обьекта. Map map; и Map *asd; asd = new Map; Ясно... http://www.cyberforum.ru/cpp-beginners/thread1234960.html
Задача по теме Двумерные массивы C++
Помогите выбрать правильный вариант в этой задаче. Заранее спасибо. 1. Задачи необходимо переписывать в текст сообщения. 2. Язык форума русский
C++ Создание "особенного" дочернего окна
Здравствуйте, товарищи. Пару дней назад экспериментировал я с созданием дочерних окон главного окна и получил один интересный формат дочернего окна. Окно вело себя как отдельное, самостоятельное...
C++ Не компилируется код http://www.cyberforum.ru/cpp-beginners/thread1234875.html
я написал код проверял не компелирует почему-то пользуюсь dev c++ пишет проект или исходный файл не скомпелирован вот код #include <iostream.h> #include <stdio.h> using namespace std; int...
C++ Получить список процессов Как в c++ получить список процессов? подробнее

Показать сообщение отдельно
Ярослав Никитин
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 70
28.07.2014, 09:28
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
#include <iostream>
#include <conio.h>
#include <random>
#include <time.h>
 
using namespace std;
 
char name1[30];
char name2[30];
char table[3][3];
 
bool step;
 
void instruction()
{
    int l = 0;
 
    for(int i(0); i < 3; i++)
    {
        for(int j(0); j < 3; j++)
        {
            cout << "| " << l+1 << ' ';
            table[i][j] = char(49+l);
            l++;
        }
        cout << '|';
        cout << endl;
    }
 
    cout << "\nДля хода нажмите цифру ячейки поля\n";
    cout << "Для начала игры нажмите клавишу:";
    _getch();
}
bool input()
{
    for(int i(0); i < 3; i++)
    {
        for(int j(0); j < 3; j++)
        {
            cout << "| " << table[i][j] << ' ';
        }
        cout << '|';
        cout << endl;
    }
 
    cout << endl;
    if(step)
        cout << "Ходит " << name1  << " : ";
    else cout << "Ходит " << name2 << " : ";
 
    int n;
    cin >> n;
    if(n < 1 || n > 9)
        return false;
    int i,j;
 
    if(n%3 == 0)
    {
        i = n/3-1;
        j = 2;
    }
    else
    {
        j = n%3-1;
        i = n/3;
    }
    
    if(table[i][j] == 'O' || table[i][j] == 'X')
        return false;
        
    if(step)
    {
        table[i][j] = 'X';
        step = false;
    }
    else {table[i][j] = 'O'; step =true;}
    return true;
}
bool win()
{
    for(int i(0); i < 3; i++)
        if((table[i][0] == table[i][1]) && (table[i][0] == table[i][2]))
            return true;
    
        else    
            if((table[0][i] == table[1][i]) && (table[0][i] == table[2][i]))
                return true;
        
            else if((table[0][0] == table[1][1] && table[0][0] == table[2][2]) || (table[0][2] == table[1][1] && table[0][2] == table[2][0]))
                return true;
    
        
    return false;
}
 
int main()
{
    setlocale(LC_ALL , "Russian");
 
 
    instruction();
    system("cls");
    int i = 0;
 
    cout << "Введите имя 1 игрока: ";
    cin.getline(name1,30);
    cout << "Введите имя 2 игрока: ";
    cin.getline(name2,30);
    
    srand(time(NULL));
    if(rand() & 1)//
        step = true;
    else step = false;
 
    while(!win())
    {
        if(i == 9)
        {
            cout << "Ничья!!";
            _getch();
            return -1;
        }
        system("cls");
        if( !input() )
        {
            cout << "Вы ввели неверные данные повторите!";
            _getch();
        }
        i++;
    }
 
    system("cls");
    if(step)
        cout << "Победил " << name2 << endl;
    else cout << "Победил " << name1 << endl;
 
 
    _getch();
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru