Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/140: Рейтинг темы: голосов - 140, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 7

Сеть, игра "Крестики-нолики"

11.04.2009, 10:57. Показов 30356. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По заданию нужно: Написать игру крестики-нолики (шашки) с использованием С# ,С++, но мой выбор, нужно 2 программы клиент - сервер. Пока нет совершенно ничего, но при появление буду выкладывать сюда. Графическая часть не нужна, вернее по желанию.
Вопрос: Посоветуйте литературу, именно под эту задачу.
П.С. Небольшой опыт программирования есть.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2009, 10:57
Ответы с готовыми решениями:

Игра крестики-нолики
как сделать так чтобы после окнчания игры в отдельном окне выводилось сообщение кто победил или ничья..

Игра Крестики-нолики
Всем привет. Сделал игру Крестики-нолики на консоли, хотел бы узнать можно ее как-нибудь улучшить, упростить код(если возможно). Сама...

Игра судоку (крестики-нолики)
Люди подскажите пожалуйста. Препод дал задание написать игру судоку ну типа крестики нолики. Поле 9 на 9 . Выигрывает в том случае если 5...

57
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.02.2010, 22:06
Студворк — интернет-сервис помощи студентам
А ты вставил вызов функции HodComputera() в свою FormMouseDown?
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
28.02.2010, 22:08
Otaka, Нет! Вот код что вишло
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Byte pole[3][3];
String vari[3]={" ","X","O"};
Byte turn=1;
Graphics::TBitmap *bmp1[3];
int intellect;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
bmp1[0]= new Graphics::TBitmap;
bmp1[1]= new Graphics::TBitmap;
bmp1[2]= new Graphics::TBitmap;
bmp1[0]->LoadFromFile("p.bmp");
bmp1[1]->LoadFromFile("k.bmp");
bmp1[2]->LoadFromFile("n.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender){klik(1);}
void __fastcall TForm1::Image2Click(TObject *Sender){klik(2);}
void __fastcall TForm1::Image3Click(TObject *Sender){klik(3);}
void __fastcall TForm1::Image4Click(TObject *Sender){klik(4);}
void __fastcall TForm1::Image5Click(TObject *Sender){klik(5);}
void __fastcall TForm1::Image6Click(TObject *Sender){klik(6);}
void __fastcall TForm1::Image7Click(TObject *Sender){klik(7);}
void __fastcall TForm1::Image8Click(TObject *Sender){klik(8);}
void __fastcall TForm1::Image9Click(TObject *Sender){klik(9);}
//---------------------------------------------------------------------------
void TForm1::vivod()
{
  for (int k=0;k<3;k++) {
  if (pole[0][0]==k) Form1->Canvas->Draw(10,10,bmp1[k]);
  if (pole[0][1]==k) Form1->Canvas->Draw(110,10,bmp1[k]);
  if (pole[0][2]==k) Form1->Canvas->Draw(210,10,bmp1[k]);
  if (pole[1][0]==k) Form1->Canvas->Draw(10,110,bmp1[k]);
  if (pole[1][1]==k) Form1->Canvas->Draw(110,110,bmp1[k]);
  if (pole[1][2]==k) Form1->Canvas->Draw(210,110,bmp1[k]);
  if (pole[2][0]==k) Form1->Canvas->Draw(10,210,bmp1[k]);
  if (pole[2][1]==k) Form1->Canvas->Draw(110,210,bmp1[k]);
  if (pole[2][2]==k) Form1->Canvas->Draw(210,210,bmp1[k]);
  } 
}
//-----------------------------------------------
void TForm1::klik(int n)
{
if (pole[0][n-1]==0) pole[0][n-1]=turn;
if (turn==1) turn=2;
else turn=1;
vivod();
if (prov()==1) return;
}
//----------------------------------------------------
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
Application->Terminate();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
for (int i=0;i<3;i++) {
  for (int j=0;j<3;j++) {
    pole[i][j]=0;
    }
  }
vivod();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
if (X>=10&&X<=100&&Y>=10&&Y<=100)    klik(1);
if (X>=110&&X<=200&&Y>=10&&Y<=100)   klik(2);
if (X>=210&&X<=300&&Y>=10&&Y<=100)   klik(3);
if (X>=10&&X<=100&&Y>=110&&Y<=200)   klik(4);
if (X>=110&&X<=200&&Y>=110&&Y<=200)  klik(5);
if (X>=210&&X<=300&&Y>=110&&Y<=200)  klik(6);
if (X>=10&&X<=100&Y>=210&&Y<=300)    klik(7);
if (X>=110&&X<=200&&Y>=210&&Y<=300)  klik(8);
if (X>=210&&X<=300&&Y>=210&&Y<=300)  klik(9);        
}
//---------------------------------------------------------------------------
int TForm1::prov()
{
for(int i=0;i<3;i++){
  if(pole[i][0]==pole[i][1]&&pole[i][1]==pole[i][2]&&pole[i][2])
  {over(pole[i][2]);return 1;}  //рядок
 }
 for(int i=0;i<3;i++){
  if(pole[0][i]==pole[1][i]&&pole[1][i]==pole[2][i]&&pole[2][i])
  {over(pole[2][i]);return 1;}  //стопчик
 }
 if(pole[0][0]==pole[1][1]&&pole[1][1]==pole[2][2]&&pole[2][2])
   {over(pole[2][2]);return 1;} //діагональ
 if(pole[0][2]==pole[1][1]&&pole[1][1]==pole[2][0]&&pole[2][0])
   {over(pole[2][0]);return 1;}
return 0;
}
//------------------------------------------------------------------------
void TForm1::over(int n)
{
if (n==1) ShowMessage("Победили хрестики!");
if (n==2) ShowMessage("Побелили нолики!");
if (n==3) ShowMessage("Нечья...");
//if (n==1&&n==2&&n==3) turn=0;
}
//---------------------------------------------------------------------------
 
 
TForm1::HodComputera()
{
 for(int i=0;i<3;i++)
 {
 if((pole[0][i]==2)&&(pole[1][i]==2)&&(pole[2][i]==0)){pole[2][i]=2;return 0;} //110
 else
 if((pole[1][i]==2)&&(pole[2][i]==2)&&(pole[0][i]==0)){pole[0][i]=2;return 0;} //011
 else
 if((pole[0][i]==2)&&(pole[2][i]==2)&&(pole[1][i]==0)){pole[1][i]=2;return 0;} //101
 else                                                                    //вертикаль
 if((pole[i][0]==2)&&(pole[i][1]==2)&&(pole[i][2]==0)){pole[i][2]=2;return 0;} //110
 else
 if((pole[i][1]==2)&&(pole[i][2]==2)&&(pole[i][0]==0)){pole[i][0]=2;return 0;} //011
 else
 if((pole[i][0]==2)&&(pole[i][2]==2)&&(pole[i][1]==0)){pole[i][1]=2;return 0;} //101
 }                                                                           //Диагональ слева направо
 if((pole[0][0]==2)&&(pole[1][1]==2)&&(pole[2][2]==0)){pole[2][2]=2;return 0;} //110
 else
 if((pole[1][1]==2)&&(pole[2][2]==2)&&(pole[0][0]==0)){pole[0][0]=2;return 0;} //011
 else
 if((pole[0][0]==2)&&(pole[2][2]==2)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 else                                                                        //Диагональ справа на лево
 if((pole[2][0]==2)&&(pole[1][1]==2)&&(pole[0][2]==0)){pole[0][2]=2;return 0;} //110
 else
 if((pole[1][1]==2)&&(pole[0][2]==2)&&(pole[2][0]==0)){pole[2][0]=2;return 0;} //011
 else
 if((pole[2][0]==2)&&(pole[0][2]==2)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 
 
 
//Поиск опасных ситуаций  типа XX
 for(int i=0;i<3;i++)
 {
 if((pole[0][i]==1)&&(pole[1][i]==1)&&(pole[2][i]==0)){pole[2][i]=2;return 0;} //110
 else
 if((pole[1][i]==1)&&(pole[2][i]==1)&&(pole[0][i]==0)){pole[0][i]=2;return 0;} //011
 else
 if((pole[0][i]==1)&&(pole[2][i]==1)&&(pole[1][i]==0)){pole[1][i]=2;return 0;} //101
 else                                                                    //вертикаль
 if((pole[i][0]==1)&&(pole[i][1]==1)&&(pole[i][2]==0)){pole[i][2]=2;return 0;} //110
 else
 if((pole[i][1]==1)&&(pole[i][2]==1)&&(pole[i][0]==0)){pole[i][0]=2;return 0;} //011
 else
 if((pole[i][0]==1)&&(pole[i][2]==1)&&(pole[i][1]==0)){pole[i][1]=2;return 0;} //101
 }                                                                           //Диагональ слева направо
 if((pole[0][0]==1)&&(pole[1][1]==1)&&(pole[2][2]==0)){pole[2][2]=2;return 0;} //110
 else
 if((pole[1][1]==1)&&(pole[2][2]==1)&&(pole[0][0]==0)){pole[0][0]=2;return 0;} //011
 else
 if((pole[0][0]==1)&&(pole[2][2]==1)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 else                                                                        //Диагональ справа на лево
 if((pole[2][0]==1)&&(pole[1][1]==1)&&(pole[0][2]==0)){pole[0][2]=2;return 0;} //110
 else
 if((pole[1][1]==1)&&(pole[0][2]==1)&&(pole[2][0]==0)){pole[2][0]=2;return 0;} //011
 else
 if((pole[2][0]==1)&&(pole[0][2]==1)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 
 if(pole[1][1]==0){pole[1][1]=2;return 0;}
for(int j=0;j<3;j++)
        for(int i=0;i<3;i++)
                if(pole[i][j]==0){pole[i][j]=2;return 0;}
return 0;
 
}
//------------------------------------------------------------------------
Добавлено через 32 секунды
Otaka, Подскажы как этот вызов запрограмировать!!!
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.02.2010, 22:11
Так поставь функцию в конце:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
if (X>=10&&X<=100&&Y>=10&&Y<=100)    klik(1);
if (X>=110&&X<=200&&Y>=10&&Y<=100)   klik(2);
if (X>=210&&X<=300&&Y>=10&&Y<=100)   klik(3);
if (X>=10&&X<=100&&Y>=110&&Y<=200)   klik(4);
if (X>=110&&X<=200&&Y>=110&&Y<=200)  klik(5);
if (X>=210&&X<=300&&Y>=110&&Y<=200)  klik(6);
if (X>=10&&X<=100&Y>=210&&Y<=300)    klik(7);
if (X>=110&&X<=200&&Y>=210&&Y<=300)  klik(8);
if (X>=210&&X<=300&&Y>=210&&Y<=300)  klik(9);        
HodComputera();
}
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
28.02.2010, 22:15
Otaka, Чете всеровно комп не ходит!!!

Добавлено через 1 минуту
Otaka, Я вставил вот сюда что работает но не так как нужно
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Image1Click(TObject *Sender){klik(1);HodComputera();}
void __fastcall TForm1::Image2Click(TObject *Sender){klik(2);HodComputera();}
void __fastcall TForm1::Image3Click(TObject *Sender){klik(3);HodComputera();}
void __fastcall TForm1::Image4Click(TObject *Sender){klik(4);HodComputera();}
void __fastcall TForm1::Image5Click(TObject *Sender){klik(5);HodComputera();}
void __fastcall TForm1::Image6Click(TObject *Sender){klik(6);HodComputera();}
void __fastcall TForm1::Image7Click(TObject *Sender){klik(7);HodComputera();}
void __fastcall TForm1::Image8Click(TObject *Sender){klik(8);HodComputera();}
void __fastcall TForm1::Image9Click(TObject *Sender){klik(9);HodComputera();}
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.02.2010, 22:16
Так ведь нужно еще после HodComputera() вызвать твою функцию vivod(). иначе ты просто не видишь, что оно там походило.
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
28.02.2010, 22:32
Otaka, Спасибо большо, работает!!!!! Ну бот ваще мудеркинд!!!!

Добавлено через 12 минут
Otaka, Слишеш у меня както бот не так как нужно играет, нужно чтоби компбтер был нолик а пользователь хрестик
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.02.2010, 22:54
Просто сделай так вот:
C++
1
2
3
bmp1[0]->LoadFromFile("p.bmp");
bmp1[1]->LoadFromFile("n.bmp");
bmp1[2]->LoadFromFile("k.bmp");
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
28.02.2010, 23:12
Otaka, Давай я тобе кину ты посотриш, у меня чтото тепер много хрестиков ресут

Добавлено через 2 минуты
http://p23a.at.ua/ZTK_P33-A/krestiki.rar

Добавлено через 6 минут
Otaka, Посмотриш?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.02.2010, 23:15
Завтра и посмотрю. Сегодня мне уже некогда.
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
28.02.2010, 23:16
Otaka, ок
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.03.2010, 00:24
Я по ссылкам не ходил, может этот вопрос обсуждался уже.
Алгоритм выигрыша есть, он КРАЙНЕ несложен, МАртин Гарднер "Математические головоломки и развлечения". В сети ищется легко.
Если надо могу рассказать.
Программно реализуется на ять (не считая графики). При желани можно подсобить.

...Автор. а ты про сервер упомянул. А ты... умеешь?
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
01.03.2010, 19:05
kravam, Привет что вы имели введу?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.03.2010, 21:33
НУ я имел ввиду, что существует алгоритм, придерживаясь которого, НИКОГДА не проиграешь. И пиша такую программу, его надо реализовать. И он описывается в этой книге.
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
01.03.2010, 21:34
kravam, А ты хорошо шариш по Builder-у 6?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.03.2010, 21:36
НЕт, я шарю в С и DEV C++, а в чём я абсолютно не шарю, так это в серверах, потому и спросил.
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
01.03.2010, 21:37
Если я еще не поздно:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Byte pole[3][3];
String vari[3]={" ","X","O"};
Byte turn=1;
Graphics::TBitmap *bmp1[3];
int intellect;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
bmp1[0]= new Graphics::TBitmap;
bmp1[1]= new Graphics::TBitmap;
bmp1[2]= new Graphics::TBitmap;
bmp1[0]->LoadFromFile("p.bmp");
bmp1[1]->LoadFromFile("n.bmp");
bmp1[2]->LoadFromFile("k.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender){klik(1);}
void __fastcall TForm1::Image2Click(TObject *Sender){klik(2);}
void __fastcall TForm1::Image3Click(TObject *Sender){klik(3);}
void __fastcall TForm1::Image4Click(TObject *Sender){klik(4);}
void __fastcall TForm1::Image5Click(TObject *Sender){klik(5);}
void __fastcall TForm1::Image6Click(TObject *Sender){klik(6);}
void __fastcall TForm1::Image7Click(TObject *Sender){klik(7);}
void __fastcall TForm1::Image8Click(TObject *Sender){klik(8);}
void __fastcall TForm1::Image9Click(TObject *Sender){klik(9);}
//---------------------------------------------------------------------------
void TForm1::vivod()
{
  for (int k=0;k<3;k++) {
  if (pole[0][0]==k) Form1->Canvas->Draw(10,10,bmp1[k]);
  if (pole[0][1]==k) Form1->Canvas->Draw(110,10,bmp1[k]);
  if (pole[0][2]==k) Form1->Canvas->Draw(210,10,bmp1[k]);
  if (pole[1][0]==k) Form1->Canvas->Draw(10,110,bmp1[k]);
  if (pole[1][1]==k) Form1->Canvas->Draw(110,110,bmp1[k]);
  if (pole[1][2]==k) Form1->Canvas->Draw(210,110,bmp1[k]);
  if (pole[2][0]==k) Form1->Canvas->Draw(10,210,bmp1[k]);
  if (pole[2][1]==k) Form1->Canvas->Draw(110,210,bmp1[k]);
  if (pole[2][2]==k) Form1->Canvas->Draw(210,210,bmp1[k]);
  } 
}
//-----------------------------------------------
void TForm1::klik(int n)
{
turn=1;
if (pole[0][n-1]==0) pole[0][n-1]=turn;
HodComputera();
vivod();
if (prov()==1) return;
}
//----------------------------------------------------
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
Application->Terminate();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
for (int i=0;i<3;i++) {
  for (int j=0;j<3;j++) {
    pole[i][j]=0;
    }
  }
vivod();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
/*if (X>=10&&X<=100&&Y>=10&&Y<=100)    klik(1);
if (X>=110&&X<=200&&Y>=10&&Y<=100)   klik(2);
if (X>=210&&X<=300&&Y>=10&&Y<=100)   klik(3);
if (X>=10&&X<=100&&Y>=110&&Y<=200)   klik(4);
if (X>=110&&X<=200&&Y>=110&&Y<=200)  klik(5);
if (X>=210&&X<=300&&Y>=110&&Y<=200)  klik(6);
if (X>=10&&X<=100&Y>=210&&Y<=300)    klik(7);
if (X>=110&&X<=200&&Y>=210&&Y<=300)  klik(8);
if (X>=210&&X<=300&&Y>=210&&Y<=300)  klik(9); */
}
//---------------------------------------------------------------------------
int TForm1::prov()
{
for(int i=0;i<3;i++){
  if(pole[i][0]==pole[i][1]&&pole[i][1]==pole[i][2]&&pole[i][2])
  {over(pole[i][2]);return 1;}  //рядок
 }
 for(int i=0;i<3;i++){
  if(pole[0][i]==pole[1][i]&&pole[1][i]==pole[2][i]&&pole[2][i])
  {over(pole[2][i]);return 1;}  //стопчик
 }
 if(pole[0][0]==pole[1][1]&&pole[1][1]==pole[2][2]&&pole[2][2])
   {over(pole[2][2]);return 1;} //діагональ
 if(pole[0][2]==pole[1][1]&&pole[1][1]==pole[2][0]&&pole[2][0])
   {over(pole[2][0]);return 1;}
return 0;
}
//------------------------------------------------------------------------
void TForm1::over(int n)
{
if (n==2) ShowMessage("Победили крестики!");
if (n==1) ShowMessage("Побелили нолики!");
if (n==3) ShowMessage("Ничья...");
//if (n==1||n==2||n==3) turn=0;
}
//---------------------------------------------------------------------------
 
 
TForm1::HodComputera()
{
 for(int i=0;i<3;i++)
 {
 if((pole[0][i]==2)&&(pole[1][i]==2)&&(pole[2][i]==0)){pole[2][i]=2;return 0;} //110
 else
 if((pole[1][i]==2)&&(pole[2][i]==2)&&(pole[0][i]==0)){pole[0][i]=2;return 0;} //011
 else
 if((pole[0][i]==2)&&(pole[2][i]==2)&&(pole[1][i]==0)){pole[1][i]=2;return 0;} //101
 else                                                                    //вертикаль
 if((pole[i][0]==2)&&(pole[i][1]==2)&&(pole[i][2]==0)){pole[i][2]=2;return 0;} //110
 else
 if((pole[i][1]==2)&&(pole[i][2]==2)&&(pole[i][0]==0)){pole[i][0]=2;return 0;} //011
 else
 if((pole[i][0]==2)&&(pole[i][2]==2)&&(pole[i][1]==0)){pole[i][1]=2;return 0;} //101
 }                                                                           //Диагональ слева направо
 if((pole[0][0]==2)&&(pole[1][1]==2)&&(pole[2][2]==0)){pole[2][2]=2;return 0;} //110
 else
 if((pole[1][1]==2)&&(pole[2][2]==2)&&(pole[0][0]==0)){pole[0][0]=2;return 0;} //011
 else
 if((pole[0][0]==2)&&(pole[2][2]==2)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 else                                                                        //Диагональ справа на лево
 if((pole[2][0]==2)&&(pole[1][1]==2)&&(pole[0][2]==0)){pole[0][2]=2;return 0;} //110
 else
 if((pole[1][1]==2)&&(pole[0][2]==2)&&(pole[2][0]==0)){pole[2][0]=2;return 0;} //011
 else
 if((pole[2][0]==2)&&(pole[0][2]==2)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 
 
 
//Поиск опасных ситуаций  типа XX
 for(int i=0;i<3;i++)
 {
 if((pole[0][i]==1)&&(pole[1][i]==1)&&(pole[2][i]==0)){pole[2][i]=2;return 0;} //110
 else
 if((pole[1][i]==1)&&(pole[2][i]==1)&&(pole[0][i]==0)){pole[0][i]=2;return 0;} //011
 else
 if((pole[0][i]==1)&&(pole[2][i]==1)&&(pole[1][i]==0)){pole[1][i]=2;return 0;} //101
 else                                                                    //вертикаль
 if((pole[i][0]==1)&&(pole[i][1]==1)&&(pole[i][2]==0)){pole[i][2]=2;return 0;} //110
 else
 if((pole[i][1]==1)&&(pole[i][2]==1)&&(pole[i][0]==0)){pole[i][0]=2;return 0;} //011
 else
 if((pole[i][0]==1)&&(pole[i][2]==1)&&(pole[i][1]==0)){pole[i][1]=2;return 0;} //101
 }                                                                           //Диагональ слева направо
 if((pole[0][0]==1)&&(pole[1][1]==1)&&(pole[2][2]==0)){pole[2][2]=2;return 0;} //110
 else
 if((pole[1][1]==1)&&(pole[2][2]==1)&&(pole[0][0]==0)){pole[0][0]=2;return 0;} //011
 else
 if((pole[0][0]==1)&&(pole[2][2]==1)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 else                                                                        //Диагональ справа на лево
 if((pole[2][0]==1)&&(pole[1][1]==1)&&(pole[0][2]==0)){pole[0][2]=2;return 0;} //110
 else
 if((pole[1][1]==1)&&(pole[0][2]==1)&&(pole[2][0]==0)){pole[2][0]=2;return 0;} //011
 else
 if((pole[2][0]==1)&&(pole[0][2]==1)&&(pole[1][1]==0)){pole[1][1]=2;return 0;} //101
 
 if(pole[1][1]==0){pole[1][1]=2;return 0;}
for(int j=0;j<3;j++)
        for(int i=0;i<3;i++)
                if(pole[i][j]==0){pole[i][j]=2;return 0;}
return 0;
}
//------------------------------------------------------------------------
1
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
01.03.2010, 21:44
kravam, Я просто очень хочу научитса и розобратса писать игры!!!!!! Очень интересно чтото создать!!!!!

Добавлено через 1 минуту
Otaka, Привет не поздно!!!

Добавлено через 4 минуты
Otaka, Спасибо большое работает
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.03.2010, 21:44
Да чёрт его знает, игры это графика. наверное. а DEV C++ её не поддерживает. Ну, учись, чо тебе могу сказать... Вот ознакамливайся, материала много в этой теме, реализуй алгоритм. Я бы интереса ради написал консольное маленькое приложеньице, где всё поле выводилось бы в виде матрицы 3X3 с использованием очистки экрана после каждого хода...
0
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
01.03.2010, 21:46
Otaka, У меня один вопрос, а это твои работы выложени по теме какойто, в ней несколько игр?

Добавлено через 1 минуту
Otaka, Ты мне можеш какуето литературу посоветовать, о создании игр в Builder-е 6
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
01.03.2010, 21:56
Если ты про эту тему: https://www.cyberforum.ru/grap... 93716.html, то мои. Литературы не знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2010, 21:56

Не могу продумать цикл. Игра крестики нолики.
Здраствуйте. Игра крестики нолики поле 9 на 9 победа возникает если 5 крестиков идут подряд не могу описать цикл который проходит по...

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

Крестики Нолики
Здравствуйте есть одна проблема нашел на этом форуме исходники к игре крестики нолики однако не получается адекватно настроить начисление...

Крестики-нолики-ошибки
Добрый день. Я вот хотел посмотреть работу игры крестики-нолики (судя по всему, речь идет о этой теме...

Код игры Крестики Нолики
Нужно пояснение каждой строчки кода которая относится к самой игре. Хочу понять на чём построена игра. С++ начал изучать недавно. ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru