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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как извлечь квадратный корень числа? http://www.cyberforum.ru/cpp-beginners/thread339890.html
Как в С++ найти корень с чисел 4 , 9 , 16 , 25 и так далее
C++ Данные которые вводятся в табоицу в команднйо строке Ребята как создать такую таблицу скажем с4 колонками ну и соответсвенно ввести и обработать данные ?? http://www.cyberforum.ru/cpp-beginners/thread339877.html
IOStreams, localization C++
Здравствуйте! Подскажите, пожалуйста, как можно реализовать свой фасет для преобразования кодировок? Нужно писать в файл и читать из файла тексты на русском языке, содержащие диакритические символы.
C++ C++ и Многопоточность.
Всем привет. Написал код с использованием Curl для авторизации в вконтакте (могу скинуть код). Аккаунты для авторизации берутся из текстового документа. Программа работает в 1 поток. Помогите её переделать чтоб она работала в N потоков.
C++ Как объявить двумерный динамический массив http://www.cyberforum.ru/cpp-beginners/thread339824.html
int *matrix = new int ; че ругается ? error C2540: non-constant expression as array bound а как сделать если без констант надо ?
C++ Объявление в классе объекта другого класса какая-то фигня получается, допустим есть 2 класса - class1 и class2, в хедерах class1.h подключён class2.h, а в class2.h подключён class1.h. И вот сама фигня, когда я например в class1 создаю объект класса class2, то вылезают такие ошибки error C2146: syntax error : missing ';' before identifier 'test' error C2501: 'CClass1' : missing storage-class or type specifiers error C2501: 'test' :... подробнее

Показать сообщение отдельно
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
08.08.2011, 02:29     Крестики-нолики
Цитата Сообщение от Sahon Посмотреть сообщение
Придумайте лучше Да уж покопался изрядно и ничего ошибочного больше не нашел
ну вот как-то так)
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
#include <iostream>
#include <cstring>
using namespace std;
 
void show_cells();
void make_move(int num);
void result();
char check();
 
char cells[9] = {'-', '-', '-', '-', '-', '-', '-', '-', '-'};
char PlayerName1[80],
    PlayerName2[80];
char win='-';
int main () {
    cout << "Enter the name of the 1st player: ";
    gets(PlayerName1);
    cout << "Enter the name of the 2st player: ";
    gets(PlayerName2);
    cout << "\n";
 
    show_cells();
 
    for (int move = 1; move <= 9; move++) {
        if (move % 2) make_move(1);
        else make_move(2);
        show_cells();
        if (move >= 5) 
        {
            win=check();
            if(win!='-')
                break;
        }
    }
    result();
    system ("pause");
    return 0;
}
 
void show_cells() {
    cout << "------------" << "\n" << endl;
    cout << "Numbers of cells:" << endl;
    cout << "-" << 1 << "-" << '|' << "-" << 2 << "-" << '|' << "-" << 3 << "-" << " |" << endl;
    cout << "-" << 4 << "-" << '|' << "-" << 5 << "-" << '|' << "-" << 6 << "-" << " |" <<  endl;
    cout << "-" << 7 << "-" << '|' << "-" << 8 << "-" << '|' << "-" << 9 << "-" << " |" << "\n" << endl;
 
    cout << "Current situation (--- is empty):" << endl;
    cout << "-" << cells[0] << "-" << '|' << "-" << cells[1] << "-" << '|' << "-" << cells[2] << "-" << " |" <<  endl;
    cout << "-" << cells[3] << "-" << '|' << "-" << cells[4] << "-" << '|' << "-" << cells[5] << "-" << " |" <<  endl;
    cout << "-" << cells[6] << "-" << '|' << "-" << cells[7] << "-" << '|' << "-" << cells[8] << "-" << " |" <<  "\n" << endl;
    cout << "------------\n" << endl;
}
 
void make_move(int num) {
    if (num == 1) cout << PlayerName1;
    else cout << PlayerName2;
    cout << ", enter a cell's number to make move: ";
    int cell;
    cin >> cell;
    cout << "\n";
    while (cell > 9 || cell < 1 || cells[cell-1] == 'O' || cells[cell-1] == 'X') {
        cout << "Enter a CORRECT (1-9) or EMPTY (---) cell's number to make move: ";
        cin >> cell;
        cout << "\n";
    }
 
    if (num == 1)
        cells[cell-1] = 'X';
    else cells[cell-1] = 'O';
}
 
void result() {
    if (win=='X') cout << PlayerName1 << " win! Congratulations! " << PlayerName2 << " is looser! Bugoga..." << endl;
    else if (win=='O') cout << PlayerName2 << " win! Congratulations! " << PlayerName1 << " is looser! Bugoga..." << endl;
    else cout << "Draw!!!" << endl;
}
 
char check()
{
    int i;
    for(i = 0; i < 3; i++)
        if(cells[i*3+0] == cells[i*3+1] && cells[i*3+1] == cells[i*3+2] && cells[i*3+2] != '-')
            return cells[i*3+1];
        else if(cells[i] == cells[3+i] && cells[3+i] == cells[6+i] && cells[6+i] != '-')
            return cells[3+i];
    if((cells[0] == cells[4] && cells[4] == cells[8] ||
        cells[2] == cells[4] && cells[4] == cells[6]) &&
        cells[4] != '-')
        return cells[4];
    return '-';
}
Добавлено через 16 минут
1. избавились от не нужного goto. ибо не нужен он такой легкой программе.
2. избавились от лишней переменной.
 
Текущее время: 19:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru