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

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

11.04.2009, 10:57. Показов 29758. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru