Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.01.2018
Сообщений: 1
1

C++ Крестики нолики

16.01.2018, 18:33. Просмотров 1032. Ответов 1

Докончите программу, Реализуйте проверку на победу одного из игроков, минимум две комбинации для одного и для другого.
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
#include "stdafx.h"
#include 
 
using namespace std;
 
char field[3][3] = { {'-', '-', '-'},{ '-', '-', '-' },{ '-', '-', '-' } };
int a, b;
bool CP = true;
int isEnd = 0;
 
int main()
{
 
do
{
 
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << field[i][j] << " ";
}
 
cout << endl;
}
 
cin >> a >> b;
 
if (CP == true)
{
field[a][b] = 'X';
}
 
if (CP == false)
{
field[a][b] = 'O';
}
 
CP = !CP;
 
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (field[i][j] == '-')
{
isEnd++;
}
}
}
 
if (isEnd == 0)
{
break;
}
else
{
isEnd = 0;
}
 
}
 
while (true);
 
system("Pause");
return 0;
}

спасите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2018, 18:33
Ответы с готовыми решениями:

Крестики-нолики
Всем привет и заранее спасибо, кто откликнется. Проблема следующая: игра работает почти корректно,...

Крестики Нолики
вот задали написать игру , скажите нормально впринципе написал или нет , и один вопрос немогу...

Крестики Нолики
Прошу помочь, я написал игру крестики нолики, но при вводе. Выводится только крестик. ПОмогите. Не...

Крестики-нолики
Ребят! Как сделать проверку на занятость квадратика? #include &lt;iostream&gt; using namespace...

1
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,215
17.01.2018, 23:14 2
Askech, здравствуйте! Я давно делал игру так. Надеюсь, моя программа вам пригодится:

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
#include <iostream>
#include <string>
#include <cmath>
#include <cstdlib>
#include <windows.h> //Шрифт консоли - Lucida Console
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int N = 3;
    int x, y, k, dgt;
    char A[N][N], c, z;
    string s, a, b, name1, name2;
    a = "НОЛИКИ";
    b = "КРЕСТИКИ";
    z = '0';
    c = 'X';
    cout << "Игра крестики-нолики:" << endl;
    cout << "Введите имя первого игрока: ";
    getline(cin, name1);
    cout << "Введите имя второго игрока: ";
    getline(cin, name2);
    cout << "За кого ходит первый игрок?(введите цифру):" << endl;
    cout << "0: 1" << endl;
    cout << "X: 2" << endl;
    cout << "Цифра: ";
    cin >> dgt;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            A[i][j] = '?';
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    for (int i = 0; i < 9; i++)
    {
        if ((!(i % 2)) && (dgt == 1))
            s = a;
        if ((!(i % 2)) && (dgt == 2))
            s = b;
        if ((i % 2) && (dgt == 1))
            s = b;
        if ((i % 2) && (dgt == 2))
            s = a;
    mylabel:
        cout << "Сделайте ваш ход (" << s << ")" << endl;
        cout << "Строка: ";
        cin >> x;
        cout << "Столбец: ";
        cin >> y;
        x--;
        y--;
        if (A[x][y] != '?')
        {
            system("cls");
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    cout << A[i][j] << " ";
                }
                cout << endl;
            }
            cout << "Данная позиция занята!" << endl;
            goto mylabel;
        }
        if ((!(i % 2)) && (dgt == 1))
            A[x][y] = z;
        if ((!(i % 2)) && (dgt == 2))
            A[x][y] = c;
        if ((i % 2) && (dgt == 1))
            A[x][y] = c;
        if ((i % 2) && (dgt == 2))
            A[x][y] = z;
        system("cls");
        k = 0;
        for (int i = 0; i < N; i++)
        {
            for (int j = 0; j < N; j++)
            {
                cout << A[i][j] << " ";
            }
            cout << endl;
        }
        if (((A[0][0] == '0') && (A[0][1] == '0') && (A[0][2] == '0'))
            || ((A[1][0] == '0') && (A[1][1] == '0') && (A[1][2] == '0'))
            || ((A[2][0] == '0') && (A[2][1] == '0') && (A[2][2] == '0'))
            || ((A[0][0] == '0') && (A[1][0] == '0') && (A[2][0] == '0'))
            || ((A[0][1] == '0') && (A[1][1] == '0') && (A[2][1] == '0'))
            || ((A[0][2] == '0') && (A[1][2] == '0') && (A[2][2] == '0'))
            || ((A[0][0] == '0') && (A[1][1] == '0') && (A[2][2] == '0'))
            || ((A[2][0] == '0') && (A[1][1] == '0') && (A[0][2] == '0'))
            || ((A[0][0] == 'X') && (A[0][1] == 'X') && (A[0][2] == 'X'))
            || ((A[1][0] == 'X') && (A[1][1] == 'X') && (A[1][2] == 'X'))
            || ((A[2][0] == 'X') && (A[2][1] == 'X') && (A[2][2] == 'X'))
            || ((A[0][0] == 'X') && (A[1][0] == 'X') && (A[2][0] == 'X'))
            || ((A[0][1] == 'X') && (A[1][1] == 'X') && (A[2][1] == 'X'))
            || ((A[0][2] == 'X') && (A[1][2] == 'X') && (A[2][2] == 'X'))
            || ((A[0][0] == 'X') && (A[1][1] == 'X') && (A[2][2] == 'X'))
            || ((A[2][0] == 'X') && (A[1][1] == 'X') && (A[0][2] == 'X')))
        {
            k++;
            cout << "Игра закончена! ";
            if ((A[x][y] == z) && (dgt == 1))
                cout << name1 << " победил(a)!" << endl;
            if ((A[x][y] == c) && (dgt == 2))
                cout << name1 << " победил(а)!" << endl;
            if ((A[x][y] == c) && (dgt == 1))
                cout << name2 << " победил(а)!" << endl;
            if ((A[x][y] == z) && (dgt == 2))
                cout << name2 << " победил(а)!" << endl;
            break;
        }
    }
    if (!(k))
        cout << "Игра закончилась вничью!" << endl;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2018, 23:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

крестики-нолики
Может у кого-то есть шаблон,чтобы расчертить поле в клетку,например 3x3. Покажите пожалуйста))

Крестики нолики 10 на 10
Нашел код крестики нолики 4 на 4 но не компилируется, там ошибки почему то в &lt;&lt; хочу сделать из...

Крестики-нолики
main.cpp #include &quot;KR.h&quot; using namespace std; int main() { RandomPlayer *r = new...

Крестики-нолики 10 на 10
Нужно написать игру крестики-нолики. Застрял на алгоритме проверки победителя, точнее я написал,...

Крестики/нолики
Я не понимаю почему не работает, и в этом моя проблема. Буду благодарен любой помощи, а так же...

Крестики нолики
Недавно начал изучать C++. Фактически это первый язык программирования который я осваиваю. Решил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.