Форум программистов, компьютерный форум 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' :... подробнее

Показать сообщение отдельно
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
07.08.2011, 23:34  [ТС]     Крестики-нолики
Цитата Сообщение от silentnuke Посмотреть сообщение
и того уже 11 ходов, вас не смущает?
Спасибо, а то забыл убрать проверку (проверял как оно будет ходы считывать)

Цитата Сообщение от silentnuke Посмотреть сообщение
идем дальше
C++
1
2
3
            for (int i = 1; i <= 9; i++)
                for (int j = 1; i <= 9; j++)
                    for (int k = 1; i <= 9; k++) {
а вот и наш вечный цикл.
исправите эти два момента, будет окей.
А вот за это еще раз огромное спасибо

Добавлено через 14 минут
Однако теперь, первый игрок выигрывает после пятого хода при любом раскладе (теперь хоть сообщение о победе выводится):
Код

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 cells[9] = {'-', '-', '-', '-', '-', '-', '-', '-', '-'};
char PlayerName1[80],
     PlayerName2[80];
         
bool PlayerName1Win,
     PlayerName2Win;
 
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) 
                for (int i = 1; i <= 9; i++)
                    for (int j = 1; j <= 9; j++)
                        for (int k = 1; k <= 9; k++) {
                            if ((i != j) && (j != k) && (cells[i-1] = 'X') && (cells[j-1] = 'X') && (cells[k-1] = 'X')) 
                                if (((i * j)/2 == k) || ((i * k)/2 == j) || ((k * j)/2 == i)) {
                                    PlayerName1Win = 1;
                                    goto end;
                                }
                          
                            if ((i != j) && (j != k) && (cells[i-1] = 'O') && (cells[j-1] = 'O') && (cells[k-1] = 'O'))
                                if (((i * j)/2 == k) || ((i * k)/2 == j) || ((k * j)/2 == i)) {
                                    PlayerName2Win = 1;
                                    goto end;
                                }
                            
                        }
        }
    
    end:
    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 (PlayerName1Win) cout << PlayerName1 << " win! Congratulations! " << PlayerName2 << " is looser! Bugoga..." << endl;
    else if (PlayerName2Win) cout << PlayerName2 << " win! Congratulations! " << PlayerName1 << " is looser! Bugoga..." << endl;
    else cout << "Draw!!!" << endl;
}
 
Текущее время: 05:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru