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

Крестики-нолики (3х3) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести матрицу по спирали http://www.cyberforum.ru/cpp-beginners/thread377794.html
#include <iostream> #include <math.h> #include <conio.h> #define n 5 #define m 5 using namespace std; void main() { int a;
C++ ПОМОГИТЕ РЕШИТЬ В builder for dos Написать программу,которая считывает текст с клавиатуры и выводит его на экран, меняя местами каждые два соседних слова. http://www.cyberforum.ru/cpp-beginners/thread377788.html
Проблема с Классами C++
// VectorClass.cpp : main project file. #include "stdafx.h" #include <iostream> using namespace System; using std::cin;
Соединить строки C++
Имеется три строки String^ str1; String^ str2; String^ str3; в каждую строку что то записано, например в первую строку записано: 123, во вторую 456, в третью ABC требуется создать String^ str в которой будут по очереди хранится данные из первых трек строк. Тоесть String^ str = "123456ABC"
C++ Как исправить ошибки? http://www.cyberforum.ru/cpp-beginners/thread377769.html
Задание было :Доделать код,что бы был конструктор с параметром учитель и со своими set- get- функциями...Может опять где чего намудрил из-за того,что привык к паскалю и Делфи...Пока пытаюсь сейчас сам пофиксить ошибки,но пока без результатно... #include <iostream> using std::cout; using std::endl; #include <string> // program uses C++ standard string class using std::string; //...
C++ Простой вопрос Ребят вопросик не сложный. К примеру, у меня есть два числа (int a=32, b=45) Как сделать чтобы в переменную z записалось 3245. Тоесть требуется как бы соединить. Не обязательно integer мне подойдет и тип String (потом через atoi можно обратно вернуть). Спасибо. подробнее

Показать сообщение отдельно
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
07.11.2011, 23:39  [ТС]     Крестики-нолики (3х3)
Короче сделал все по "деревянному"
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
class Screen{
 
    string massiv[9];
    int i;
 
public:
 
    Screen(){
        for(i = 0; i < 9; i++)
            massiv[i] = " ";
    }
 
    void table(void)
    {
 
        cout << "    |   |    " << endl;
        cout << " " << massiv[0] << "  | " << massiv[1] << " |  " << massiv[2] << " " << endl;
        cout << "____|___|____" << endl;
        cout << "    |   |    " << endl;
        cout << " " << massiv[3] << "  | " << massiv[4] << " |  " << massiv[5] << " " << endl;
        cout << "____|___|____" << endl;
        cout << "    |   |    " << endl;
        cout << " " << massiv[6] << "  | " << massiv[7] << " |  " << massiv[8] << " " << endl;
        cout << "    |   |    " << endl;
    }
 
    void krest(void)
    {
        cout << "poziciia" << endl;
        vvod: cin >> i;
        int cifr_klav[9] = {7, 8, 9, 4, 5, 6, 1, 2, 3};
        for(int j = 0; j < 9; j++){
            if(i == cifr_klav[j]){
                if(massiv[j] == " ")
                    massiv[j] = "X";
                else{
                    cout << endl << "Oshibka! Poprobyte eshe!" << endl;
                    goto vvod;
                }
            }
        }
    }
 
    void nol(void)
    {
        srand(time(NULL));
        label: i = 0 + rand() % 9;
 
        if(massiv[i] == "X" || massiv[i] == "0")
            goto label;
        else
            massiv[i] = "0";
    }
 
    int proverka(void)
    {
         for(int i = 0; i < 9; i++){
            int counter = 0;
            if(massiv[i] != " ")
                counter++;
            if(counter == 9)
                return 0;
            }
 
          if((massiv[0] == massiv[1] && massiv[1] == massiv[2]) && massiv[0] != " ")
            return 0;
        else if((massiv[3] == massiv[4] && massiv[4] == massiv[5]) && massiv[3] != " ")
            return 0;
        else if((massiv[6] == massiv[7] && massiv[7] == massiv[8]) && massiv[6] != " ")
            return 0;
        else if((massiv[0] == massiv[4] && massiv[4] == massiv[8]) && massiv[0] != " ")
            return 0;
        else if((massiv[2] == massiv[4] && massiv[4] == massiv[6]) && massiv[2] != " ")
            return 0;
        else if((massiv[0] == massiv[3] && massiv[3] == massiv[6]) && massiv[0] != " ")
            return 0;
        else if((massiv[1] == massiv[4] && massiv[4] == massiv[7]) && massiv[1] != " ")
            return 0;
        else if((massiv[2] == massiv[5] && massiv[5] == massiv[8]) && massiv[2] != " ")
            return 0;
        else
            return 1;
 
        
 
    }
 
    void pervii_nol(void){
        if(massiv[4] == " ")
            massiv[4] = "0";
        else{
            massiv[0] = "0";
        }
    }
 
    void zakrit(void)
    {
        if(((massiv[1] == massiv[2] && massiv[1] != " ") || (massiv[4] == massiv[8] && massiv[4] != " ") || (massiv[3] == massiv[6] && massiv[3] != " ")) && massiv[0] != "0" && massiv[0] != "X"){
            massiv[0] = "0";
 
        }
        else if(((massiv[0] == massiv[2] && massiv[0] != " ") || (massiv[4] == massiv[7]) && massiv[4] != " ") && massiv[1] != "0" && massiv[1] != "X"){
            massiv[1] = "0";
 
        }
        else if(((massiv[0] == massiv[1] && massiv[1] != " ") || (massiv[5] == massiv[8] && massiv[5] != " ") || (massiv[4] == massiv[6] && massiv[4] != " ")) && massiv[2] != "0" && massiv[2] != "X"){
            massiv[2] = "0";
 
        }
        else if(((massiv[4] == massiv[5] && massiv[4] != " ") || (massiv[0] == massiv[6] && massiv[0] != " ")) && massiv[3] != "0" && massiv[3] != "X"){
            massiv[3] = "0";
 
        }
        else if(((massiv[3] == massiv[5] && massiv[3] != " ") || (massiv[1] == massiv[7] && massiv[1] != " ") || (massiv[0] == massiv[8] && massiv[0] != " ")|| (massiv[2] == massiv[6] && massiv[2] != " ")) && massiv[4] != "0" && massiv[4] != "X"){
            massiv[4] = "0";
 
        }
        else if(((massiv[3] == massiv[4] && massiv[3] != " ") || (massiv[2] == massiv[8] && massiv[2] != " ")) && massiv[5] != "0" && massiv[5] != "X"){
            massiv[5] = "0";
 
        }
        else if(((massiv[0] == massiv[3] && massiv[0] != " ") || (massiv[7] == massiv[8] && massiv[7] != " ") || (massiv[2] == massiv[4] && massiv[2] != " ")) && massiv[6] != "0" && massiv[6] != "X"){
            massiv[6] = "0";
 
        }
        else if(((massiv[1] == massiv[4] && massiv[1] != " ") || (massiv[6] == massiv[8] && massiv[6] != " ")) && massiv[7] != "0" && massiv[7] != "X"){
            massiv[7] = "0";
 
        }
        else if(((massiv[6] == massiv[7] && massiv[6] != " ") || (massiv[2] == massiv[5] && massiv[2] != " ") || (massiv[0] == massiv[4]) && massiv[0] != " ") && massiv[8] != "0" && massiv[8] != "X"){
            massiv[8] = "0";
        }
         else
            nol();
    }
 
};
 
 
int main()
{
    Screen a;
    a.table();
    a.krest();
    system("cls");
 
    a.table();
    a.pervii_nol();
    system("cls");
    a.table();
 
    while(a.proverka()){
 
        a.krest();
        system("cls");
        a.table();
        if(a.proverka() == 0)
            break;
        a.zakrit();
        system("cls");
        a.table();
    }
 
    return 0;
}
Почему если ничья то начинается бесконечный цикл
Здесь проверяю не заполнен ли полностью массив
C++
1
2
3
4
5
6
7
 for(int i = 0; i < 9; i++){
            int counter = 0;
            if(massiv[i] != " ")
                counter++;
            if(counter == 9)
                return 0;
            }
Добавлено через 1 минуту
вводить данные надо на цифровой клавиатуре - размещение клавиш соответствует ячейкам
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru