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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неверный результат при преобразования типов данных static_cast<int>(double) http://www.cyberforum.ru/cpp-beginners/thread1234970.html
Доброго времени суток, уважаемые программисты! Перейду сразу к сути проблемы: При данном значении вещественной переменной n (n=0.13) в переменной целого типа m результат не 13, а 12. В чём проблема? double n=0.13; int m = static_cast<int>(0.13*100); А при n=0.133333 в переменной сохраняется 13... Вот код самой программы:
C++ Какая разница между разными объявлениями объектов? чет 4 месяца не писал на С++ а писал на сшарпе немного. Но вот вернувшись к С++ чет вылетело с головы. Какая разница между обвявлением обьекта. Map map; и Map *asd; asd = new Map; Ясно понятно, что указателю выделяю память и тдп. Но какая разница в использовании так и так. А еще какая разница между указателем и ссылкой в передаче методу. void change(int &i) http://www.cyberforum.ru/cpp-beginners/thread1234960.html
Задача по теме Двумерные массивы C++
Помогите выбрать правильный вариант в этой задаче. Заранее спасибо. 1. Задачи необходимо переписывать в текст сообщения. 2. Язык форума русский
C++ Создание "особенного" дочернего окна
Здравствуйте, товарищи. Пару дней назад экспериментировал я с созданием дочерних окон главного окна и получил один интересный формат дочернего окна. Окно вело себя как отдельное, самостоятельное (перемещалось по всему экрану, а не только по рабочей области главного окна). При этом, оно создавалось с флагом WS_CHILD и указателем на главное окно, как родительское (понятное дело, так как это...
C++ Не компилируется код http://www.cyberforum.ru/cpp-beginners/thread1234875.html
я написал код проверял не компелирует почему-то пользуюсь dev c++ пишет проект или исходный файл не скомпелирован вот код #include <iostream.h> #include <stdio.h> using namespace std; int hacerAlert { string answer cout << "вы хакер? (y или n)\n"; if (answer == "y") {
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;
}
 
Текущее время: 15:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru