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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
| #include<iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <conio.h>
using namespace std;
struct coord
{
int x,y;
};
//--------------------------------------------------
class Figura
{
public:
void doska(void);
};
char mas[9][9]={0};
//------------------------------------------------
void Figura::doska(void) //Постороение доски
{ cout <<"\n\n\n";
char a[9]={'A','B','C','D','E','F','G','H',' '};
cout<<"\t\t\t ";
for(int i=0;i<9;i++) cout<<a[i]<<" ";
cout<<endl;
cout<<"\t\t\t ";
for(int i=0;i<8;i++) cout<<" -";
cout<<endl;
for(int i=0;i<8;i++)
{
cout<<"\t\t\t |"<<i+1<<"| ";
for(int j=0;j<8;j++) cout<<mas[i][j]<<" ";
cout<<endl;
}
}
int main()
{ //Объявление переменных, констант и дополнительных функций
setlocale(0, ""); //Подключаем русские библиотеки
Figura doska;
coord b_fig; //переменная для координат фигур
int cvet; //переменная для Цвета
char fig; //Ячейка для ввода Тип Фигуры
char posb; // Ячейка для горизонтальной координаты типа (A,B,C...H)
char posc; // Ячейка для вертикальной координаты типа (1,2,3...8)
int prod;
int menu;
//==================================================================================
bb1: cout<<" ********************************************************************\n"
<<"* Ввести фигуру(1), Загрузить с файла(2), Показать доску(3) *\n"
<<" ********************************************************************\n";
cout<<"===>";
cin>>menu;
if (menu==1) goto b1; else
if (menu==2) {"Идет загрузка с файла";goto bb4;} else
if (menu==3) {doska.doska(); goto bb1; cin.get();}
cin.get();
//--------------------------------------Загрузка с файла----------------------------
bb4: char fig1,posb1,posc1;
for (int i=0; i< 8;i++) {
FILE* fp=fopen("123.txt","r");
fscanf(fp,"%s%s%s\n",fig1,posb1,posc1);
b_fig.y=(posb1-65);
b_fig.x=(posc1-48);
mas[b_fig.x-1][b_fig.y]=fig1;
fclose(fp);
}
goto bb2;
b1: cout<<" *********************************************************************\n"
<<" * Введите цвет фигуры: *\n"
<<"* *\n"
<<" * Черные (1), Белые(2) *\n"
<<" *********************************************************************\n";
cout<<"===>";
cin>>cvet; //ввод цвета
//==================================================================================
if (cvet==1) goto b2; else //Определение какая
if (cvet==2) goto b3; else // ветка была выбрана черная или белая
{cout<<"****************************************\n"
<<"* Вы Днище выбирите нормальный цвет *\n"
<<"****************************************\n";
goto b1;}
// -------------------------------------Для Черных----------------------------------
b2: cout<<" *********************************************************************\n"
<<"* Выберите тип фигуры *\n"
<<"* Король(k), Королева(h), Офицер(s), Тура(t) *\n"
<<" *********************************************************************\n";
cout << "===>";
cin>>fig; // определение фигуры
//=================================================================================
if (fig!='k'&&fig!='h'&& fig!='s'&&fig!='t') {
cout<<" *********************************************************************\n"
<<" * *\n"
<<"* Вы ввели не правельный тип фигуры! *\n"
<<" * *\n"
<<" *********************************************************************\n";
goto b2;}
b5: cout<<" *********************************************************************\n"
<<"* Введите расположение фигуры по горизонтале ввиде: *\n"
<<"* (A, B, H i t.d.) *\n"
<<" *********************************************************************\n";
cout << "===>";
cin>>posb; //Определение координат по горизонтале для фигуры
//==================================================================================
if (posb!='A'&&posb!='B'&&posb!='C'&&posb!='D'&&posb!='E'&&posb!='F'&&posb!='G'&&posb!='H')
{
cout<<" *********************************************************************\n"
<<"* Вы ввели не коректную букву рассположения *\n"
<<" *********************************************************************\n";
goto b5;}
//===================================================================================
b_fig.y=(posb-65);
b6: cout<<" *********************************************************************\n"
<<"* Введите расположение фигуры по вертикале ввиде: *\n"
<<"* ( 1, 3, 7 i t.d. ) *\n"
<<" *********************************************************************\n";
cout<<"===>";
cin>>posc; // Определение координат по вертикале для фигуры
//===================================================================================
if (isdigit(posc)) goto b7;
else { cout<<" *********************************************************************\n"
<<"* Некоректный ввод *\n"
<<" *********************************************************************\n";
goto b6;}
b7: b_fig.x=posc-48;
mas[b_fig.x-1][b_fig.y]=fig;
cin.get();
bb2: cout<<" *********************************************************************\n"
<<"*Ввети еще одну фигуру(1) Закончить ввод фигур(2) Показать доску(3) *\n"
<<" *********************************************************************\n";
cout<<"===>";
cin>>prod;
if (prod==1) goto b1; else
if (prod==2){ cout<<" *********************************************************************\n"
<<"* Шахматы расставлены по вашим данным *\n"
<<" *********************************************************************\n";
doska.doska();
goto v1;} else
if (prod==3) {doska.doska(); goto bb2;}
//-----------------Для Белых----------------------
b3: cout<<" *********************************************************************\n"
<<"* Выберите тип фигуры *\n"
<<"* Король(K), Королева(H), Офицер(S), Тура(T) *\n"
<<" *********************************************************************\n";
cout<<"===>";
cin>>fig;
if (fig!='K'&&fig!='H'&& fig!='S'&&fig!='T') {
cout <<" *********************************************************************\n"
<<" * *\n"
<<"* Вы ввели не правельный тип фигуры! *\n"
<<" * *\n"
<<" *********************************************************************\n";
goto b3;}
b4: cout<<" *********************************************************************\n"
<<"* Введите расположение фигуры по горизонтале ввиде: *\n"
<<"* (A, B, H i t.d.) *\n"
<<" *********************************************************************\n";
cout << "===>";
cin>> posb;
if (posb!='A'&&posb!='B'&&posb!='C'&&posb!='D'&&posb!='E'&&posb!='F'&&posb!='G'&&posb!='H')
{ cout<<" *********************************************************************\n"
<<"* Вы ввели не коректную букву рассположения *\n"
<<" *********************************************************************\n";
goto b4;}
b_fig.y=(posb-65);
cout<<" *********************************************************************\n"
<<"* Введите расположение фигуры по вертикале ввиде: *\n"
<<"* ( 1, 3, 7 i t.d. ) *\n"
<<" *********************************************************************\n";
cout<<"===>";
cin>>posc;
b_fig.x=posc-48;
mas[b_fig.x-1][b_fig.y]=fig;
cin.get();
bb3: cout<<" *********************************************************************\n"
<<"*Ввети еще одну фигуру(1) Закончить ввод фигур(2) Показать доску(3) *\n"
<<" *********************************************************************\n";
cout<<"===>";
cin>>prod;
if (prod==1) goto b1; else
if (prod==2){ cout<<" *********************************************************************\n"
<<"* Шахматы расставлены по вашим данным *\n"
<<" *********************************************************************\n";
cout<<"\t\t";
doska.doska();
goto v1;} else
if (prod==3){doska.doska(); goto bb3;}
v1: cout<<" ************************************\n"
<<" * Конец растановки *\n"
<<" ************************************\n";
cin.get();
cin.get();
} |