Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
__valera__
1 / 1 / 0
Регистрация: 20.12.2014
Сообщений: 72
#1

Проблемма с кодом - C++

26.06.2013, 15:07. Просмотров 244. Ответов 0
Метки нет (Все метки)

игра крестики-нолики у меня компьютер ходит не обдуманно например я поставил два крестика а он ход не отбивает помогите пожалуста уже часа два сижу не чего не могу сделать вот код:
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#include <conio.h>
#include <iostream>
#include <windows.h>
using namespace std;
char field[3][3];  
char check(void);
 
void init_field(void);
void stroke_player(void);
void stroke_computer(void);
void disp_field(void);
 
 
 
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
char s1[256];
void GotoXY(int X, int Y)
{
    COORD coord = {X, Y};
    SetConsoleCursorPosition(hStdOut, coord); // Задаем координаты курсора
} 
 
void SetColor(int text, int background)
{
    SetConsoleTextAttribute(hStdOut, background*16+text); // Устанавливаем цвет
}
 
char *Rus (char *s2) 
{
    AnsiToOem(s2,s1); 
    return s1; 
} 
 
int game_menu()
{
    system ("cls");
    GotoXY(50,20);
    char done;
    setlocale(LC_ALL, "Russian");   
    cout<<"\n";
    cout<<"[Крестики-Нолики] Это игра крестики нолики вы ходите первым.\n";
    
 
  done =  ' ';
  init_field();
 
  do {
    disp_field();
    stroke_player();
    done = check(); 
    if(done!= ' ') break; 
    stroke_computer();
    done = check(); 
  } while(done== ' ');
 
  if(done=='X') cout<<"[Крестики-Нолики] Вы победили\n";
  else cout<<"[Крестики-Нолики] Вы проиграли\n";
  disp_field(); 
 
  return 0;
}
 void init_field(void)
{
  int i, j;
 
  for(i=0; i<3; i++)
    for(j=0; j<3; j++) field[i][j] =  ' ';
}
 void stroke_player(void)
{
  int x, y;
 
  cout<<"[Крестики-Нолики] Введите координаты вашего хода пример 2,3:";
  scanf("%d%*c%d", &x, &y);
 
  x--; y--;
 
  if(field[x][y]!= ' ')
  {
    cout<<"[Крестики-Нолики] Вы походили не верно\n"<<"[Крестики-Нолики] Пожалуйста проверьте  ваши координаты \n";
    stroke_player();
  }
  else field[x][y] = 'X';
}
 void stroke_computer(void)
{
  int i, j;
  for(i=0; i<3; i++)
  {
    for(j=1; j<9; j++)
      if(field[i][j]==' ') break;
    if(field[i][j]==' ') break;
  }
    if(i*j==9) 
  {
    cout<<"[Крестики-Нолики] Ничья!\n";
    exit(0);
  }
    else
    field[i][j] = 'O';
}
 void disp_field(void)
{
  int t;
 
  for(t=0; t<3; t++) 
  {
    printf(" %c | %c | %c ",field[t][0],
            field[t][1], field [t][2]);
    if(t!=2) cout<<"\n---|---|---\n";
  }
  cout<<"\n";
}
 char check(void)
{
  int i;
 
  for(i=0; i<3; i++)  
    if(field[i][0]==field[i][1] &&
       field[i][0]==field[i][2]) return field[i][0];
 
  for(i=0; i<3; i++)  
    if(field[0][i]==field[1][i] &&
       field[0][i]==field[2][i]) return field[0][i];
 
 
  if(field[0][0]==field[1][1] &&
     field[1][1]==field[2][2])
       return field[0][0];
 
  if(field[0][2]==field[1][1] &&
     field[1][1]==field[2][0])
       return field[0][2];
 
  return ' ';
 
 
}
 void menu()
{  
    setlocale(LC_ALL, "Russian");
    int f=1,k,code;
    SetColor(0,0);
    GotoXY(27,12);
    SetColor(14,0); 
    cout<<"-->Новая игра<--";
    GotoXY(30,13);
    SetColor(15,0); 
    cout<<"   Выход   ";
    do{
        k=0;
        code=getch();
        if (code==224||code==0)
            code=getch();
        if(code==80)
        {
            f=f*(-1);
            if (f==1)
            {
                GotoXY(27,12); SetColor(14,0); cout<<"-->Новая игра<--";
                GotoXY(30,13); SetColor(15,0); cout<<"   Выход   ";
            }
            else
            { 
                GotoXY(27,12); SetColor(15,0); cout<<"   Новая игра   ";
                GotoXY(30,13); SetColor(14,0); cout<<"-->Выход<--\n";
            }
        }
        else if(code==72)
        {
            f=f*(-1);
            if (f==1)
            {
                GotoXY(27,12); SetColor(14,0); cout<<"-->Новая игра<--";
                GotoXY(30,13); SetColor(15,0); cout<<"   Выход   ";
            }
            else
            { 
                GotoXY(27,12); SetColor(15,0);  cout<<"   Новая игра   ";
                GotoXY(30,13); SetColor(14,0); cout<<"-->Выход<--";
            }
        }
        else if(code==13) k=1; 
    }
    while (k==0);
    if(f!=1) exit(0);
    game_menu();
}
 void main()
{
    menu();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2013, 15:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемма с кодом (C++):

Проблемма с кодом - C++
Помогите пожалуйста,если кто знает, нужно перевести этот код на С++. procedure OGI(R,S,M,N:integer;Var A:matrix); {R,S –...

Проблемма с вложенными классами - C++
Собственно, код программы. Компилятору не нравятся строки №41 и 47. Можете подсказать, в чем может быть причина? Компилятор gcc 4.5 ...

Проблемма с логическим оператором if - C++
Всем привет. Мне надо было написать такую програмку: если пользователь вводит символ 'y' (yes), то он задаёт данные в структуру, которые в...

Проблемма с компиляцией в Visual C++ 2010 - C++
Проект(empty) создан в консольном режиме, код ниже: #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;fstream&gt; //----------------...

Проблемма с функцией,подскажите что не так - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include &lt;clocale&gt; #include &lt;cmath&gt; using namespace std; void input (double x,...

Проблемма при работе с массивами структур - C++
Разработать программу , позволяющую добавлять данные структур с указанными полями в массив, просматривать массивы, а также выполнять...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2013, 15:07
Привет! Вот еще темы с ответами:

Проблемма с заполнением динамического двумерного массива - C++
По заданию,нужно: -объявить двумерный динамический массив -спросить и пользователя размеры массива -выделить память -заполнить...

Проблемма при компиляции функции (Linker error) - C++
При компиляции функции линковщик выдает- Сама функция #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Как создать объект класса? ПРоблемма из-за раздельной компиляции - C++
Есть 4 файла engine.h - базовый класс engine.cpp - реализация методов базового класса car.h - класс поизводный от engine car.cpp -...

Надоедливая проблемма с допуском к базе данных на удаленном компе... - C++
Люди, проблемма в следующем. Когда соединяюсь к базе, требует юзернаме и пассворд. Стоит хоть один раз подключится через Windows Explorer...


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

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

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