Список литературы.
Игра "Крестики-нолики"
Outtextxy (xKnob+lengthKnob/2+spaceKnob*2+lengthKnob*2−7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," U"); Outtextxy (xKnob+lengthKnob/2+spaceKnob*2+lengthKnob*2−7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," O"); Outtextxy (Xupravlemie+4,Yupravlemie+widthKnoBypr/2−8+probel_upravleni*2+widthKnoBypr*2," Flied 45×45″); Line (fieldsX+kletka/2+kletka*q-d, fieldsY+kletka*p… Читать ещё >
Список литературы. Игра "Крестики-нолики" (реферат, курсовая, диплом, контрольная)
- 1. Мирошниченко Е. А. и др. Программирование на языке С++. Часть II. Учебное пособие/ Н. В. Триханова, Е. А. Мирошниченко. — Томск: Изд. ТПУ, 2001. — 118с.
- 2. Костюк Ю. Л. Основы алгоритмизации: Учебное пособие. / Ю. Л. Костюк. — Томск: Изд. ТГУ, 1996. — 124с.
- 3. Бондарев В. М. и др. Основы программирования. / В. М. Бондарев, В. И. Рублинецкий, Е. Г. Качко. / Худож.-оформитель С. А. Пяткова. — Харьков: Фолио; Ростов н/Д: Феникс, 1997. — 368с.
- 4. Вирт Н. Алгоритмы и структуры данных. / Н. Вирт. — М.: Мир, 1989. — 310с.:ил.
- 5. Рейзлин В. И. Программирование на языке высокого уровня: учебник http://ad.cctpu.edu.ru/cpp/Textbook.htm
ЛИСТИНГ ПРОГРАММЫ
#include.
#include.
#include.
#include.
#include.
#include.
#include.
class kletka_pust.
{.
protected:
int fieldsX, fieldsY;
int s;
public:
kletka_pust (){};
kletka_pust (int x1, int y1).
{.
fieldsX=x1;
fieldsY=y1;
}.
~kletka_pust (void).
{.
}.
virtual void paint (int g, int h, int iSizeFl).
{.
}.
};
class kletka_cross:kletka_pust.
{.
public:
kletka_cross (){};
kletka_cross (int x1, int y1).
{.
fieldsX=x1;
fieldsY=y1;
}.
kletka_cross:~kletka_cross (void).
{.
}.
void paint (int g, int h, int iSizeFl).
{.
int t=0;
int kletka = 450/iSizeFl;
setcolor (1);
if (iSizeFl≠45).
{.
do.
{.
line (fieldsX+kletka*(g-1)+t, fieldsY+kletka*(h-1), fieldsX+kletka*g, fieldsY+kletka*h-t);
line (fieldsX+kletka*(g-1), fieldsY+kletka*h-t, fieldsX+kletka*g-t, fieldsY+kletka*(h-1));
line (fieldsX+kletka*(g-1), fieldsY+kletka*(h-1)+t, fieldsX+kletka*g-t, fieldsY+kletka*h);
line (fieldsX+kletka*(g-1)+t, fieldsY+kletka*h, fieldsX+kletka*g, fieldsY+kletka*(h-1)+t);
t++;
}while (t≠5);
}.
else.
do.
{.
line (fieldsX+kletka*(g-1)+t, fieldsY+kletka*(h-1), fieldsX+kletka*g, fieldsY+kletka*h-t);
line (fieldsX+kletka*(g-1), fieldsY+kletka*h-t, fieldsX+kletka*g-t, fieldsY+kletka*(h-1));
line (fieldsX+kletka*(g-1), fieldsY+kletka*(h-1)+t, fieldsX+kletka*g-t, fieldsY+kletka*h);
line (fieldsX+kletka*(g-1)+t, fieldsY+kletka*h, fieldsX+kletka*g, fieldsY+kletka*(h-1)+t);
t++;
}while (t≠2);
setcolor (9);
}.
};
class kletka_nolik:kletka_pust.
{ public:
kletka_nolik (){};
kletka_nolik (int x1, int y1).
{.
fieldsX=x1;
fieldsY=y1;
}.
kletka_nolik:~kletka_nolik (void).
{.
}.
void paint (int g, int h, int iSizeFl).
{.
int t=0;
int kletka = 450/iSizeFl;
setcolor (13);
do.
{.
circle (fieldsX+(kletka)*(g-0.5), fieldsY+(kletka)*(h-0.5), kletka/2−5+t);
circle (fieldsX+(kletka)*(g-0.5), fieldsY+(kletka)*(h-0.5), kletka/2−5-t);
t++;
}while (t≠5);
setcolor (9);
}.
};
class pair.
{.
public:
int X, Y;
friend pair& operator ++ (pair&);
pair ().
{.
X=40; Y=10;
}.
~pair () {};
};
pair& operator ++ (pair& P).
{.
P.Y=P.Y+30;
P.X=P.X+10;
return P;
}.
class common.
{.
public:
int i, j, x, y, button, n, q, just, d, countTie, e;
int MenuXm;
int MenuYm ;
int LongMenum;
int WidthMenum;
int CountMenum;
int SpaceMenum;
int lengthKnob;
int widthKnob;
int quantilyKnobWi;
int quantilyKnobLe;
int spaceKnob;
int xKnob;
int yKnob;
int xWin;
int yWin;
int lengthWin;
int widthWin;
int MenuXau;
int MenuYau;
int LongMenuAu;
int WidthMenuAu;
int SpaceMenuAu;
int fieldsX;
int fieldsY ;
int menuX, menuY;
int Longmenu;
int widthmenu;
int space;
int endcikl, p, a, count, max;
int length[10];
char nick[10][10];
int winer[10];
char buf[10];
char buf1[10];
int length_buf;
char old_nick[10];
char new_nick[10];
int length_old_nick;
int wins_old_nick;
int length_new_nick;
int win_new_nick;
int place, finish;
int k, l, n1, n2, n3, u, Finish, probel;
int ASCII;
char back_buf[1];
int type_of_nick;
int number;
int win_comp;
int tie;
int w, er, kletka;
int iSizeFl;
int vixod2;
int znak;
int i0, j0,exitFor, AllMax0, AllMaxX, maxX, countX, count0, exitMark;
char chArrPie[45][45];
int iArrVes0[45][45];
int iArrVesX[45][45];
int win, winZnak, way;
int vixod4, gor, vert, diag, pdiag, proverka2, for_break;
common ().
{.
LongMenum = 160;
WidthMenum = 60;
CountMenum = 4;
SpaceMenum = 10;
lengthKnob = 68;
widthKnob = 32;
quantilyKnobWi = 4;
quantilyKnobLe = 6;
spaceKnob = 10;
xKnob = 91;
yKnob = 200;
xWin = 220;
yWin =100;
lengthWin = 200;
widthWin = 20;
MenuXau = 190;
MenuYau = 240;
LongMenuAu = 260;
WidthMenuAu = 60;
SpaceMenuAu = 30;
fieldsX = 95;
fieldsY = 15;
menuX=5, menuY=30;
Longmenu=95;
widthmenu=30;
space=10;
MenuXm=240;
MenuYm = 60;
endcikl=0, p, a, count=0,max=0;
length[10];
win_new_nick=0;
place = 0;
u=0;
finish = 0;
probel=0;
ASCII=0;
type_of_nick;
number =2;
win_comp=0;
tie=0;
iSizeFl=5;
vixod2=1;
znak = 1;
i0,j0,exitFor=0,AllMax0,AllMaxX, maxX, countX, count0, exitMark;
vixod4=0;
gor=0;
vert=0;
diag=0;
pdiag=0;
proverka2;
endcikl=0; count=0;max=0;
length_old_nick=0;
wins_old_nick=0;
length_new_nick=0;
win_new_nick=0;
place = 0;
k=0;
n1=0;
n2=0; n3=0;u=0; Finish = 0;probel=0;
ASCII=0;
type_of_nick=0;
number =2;
win_comp=0;
tie=0;
w=0;er=0;kletka=0;
iSizeFl=5;
vixod2=1;
znak = 1;
i0=0;j0=0;exitFor=0;AllMax0=0;AllMaxX=0;maxX=0; countX=0;count0=0;exitMark=0;
win=0;winZnak=0;way=0;
vixod4=0;gor=0;vert=0;diag=0;pdiag=0;proverka2=0;for_break=0;
}.
~common (void) {};
/*************************************************************************/.
void inilization_graph ().
{.
int gdriver = DETECT, gmode, errorcode;
initgraph (&gdriver, &gmode, «EGAVGA.bgi»);
errorcode = graphresult ();
if (errorcode ≠ grOk).
{.
printf («Graphics error: %s «, grapherrormsg (errorcode));
printf («Press any key to halt:»);
getch ();
exit (1);
}.
}.
/*************************************************************************/.
void mouse (int mode).
{.
_AX = mode;
geninterrupt (0×33);
}.
void mov_mouse (int mode2).
{.
do.
{.
_AX=mode2;
geninterrupt (0×33);
x=_CX;
y=_DX;
button=_BL ;
}.
while (button == 0);
}.
void resize ().
{.
_AX = 7;
_CX = 0;
_DX = 640;
geninterrupt (0×33);
_AX = 8;
_CX = 0;
_DX = 480;
geninterrupt (0×33);
}.
/*************************************************************************/.
void chose_fl ().
{.
just=0;
const int Xupravlemie = 230;
const int Yupravlemie = 110;
const int kolishestvo = 4;
const int longKnoBypr= 180;
const int widthKnoBypr= 60;
const int probel_upravleni=10;
int q, obchee, eZxxxit=1;
inilization_graph ();
do.
{.
cleardevice ();
setbkcolor (7);
setfillstyle (1,14);
setcolor (9);
obchee=probel_upravleni*(kolishestvo-1)+widthKnoBypr*kolishestvo;
for (i=0;i.
{.
mouse (2);
bar (Xupravlemie, Yupravlemie+i, Xupravlemie+longKnoBypr, Yupravlemie+widthKnoBypr+i);
mouse (1);
}.
settextstyle (0,0,3);
outtextxy (Xupravlemie-75,Yupravlemie+widthKnoBypr/2−5-100," Choose Flied");
settextstyle (0,0,2);
outtextxy (Xupravlemie+4,Yupravlemie+widthKnoBypr/2−8," Flied 9×9″);
outtextxy (Xupravlemie+4,Yupravlemie+widthKnoBypr/2−8+widthKnoBypr+probel_upravleni," Flied 15×15″);
outtextxy (Xupravlemie+4,Yupravlemie+widthKnoBypr/2−8+probel_upravleni*2+widthKnoBypr*2," Flied 45×45″);
outtextxy (Xupravlemie+4,Yupravlemie+widthKnoBypr/2−8+probel_upravleni*3+widthKnoBypr*3," Exit main");
settextstyle (0,0,0);
delay (200);
mouse (1);
mov_mouse (3);
for (q = 1; q <= kolishestvo; q++).
if ((y > (Yupravlemie+probel_upravleni*(q-1)+widthKnoBypr*(q-1)))&&(y Xupravlemie)&&(x.
if (q==1) {iSizeFl=9;eZxxxit=0;}.
if (q==2) {iSizeFl=15;eZxxxit=0;}.
if (q==3) {iSizeFl=45;eZxxxit=0;}.
if (q==4) {just=1;return;}.
}.
while (eZxxxit==1);
}.
/*************************************************************************/.
void save (int wins_old_nick, int win_new_nick).
{.
ifstream f («data.txt»);
f >> n;
for (i = 0; i.
{.
f >> length[i];
if (length[i]>max) max=length[i];
for (j = 0; j < length[i]; j++).
f>>nick[i][j];
}.
for (i = 0; i.
{.
f>> winer[i];
}.
if (type_of_nick==0).
{.
for (i = 0; i.
{.
if (length[i]==length_old_nick).
for (j = 0; j < length[i]; j++).
if (nick[i][j]==old_nick[j]) count++;
if (count==length_old_nick).
{.
winer[i]=winer[i]+wins_old_nick;
}.
}.
ofstream fl («data.txt»);
fl<
fl<<' ';
for (i=0;i.
{.
fl << length[i];
if (length[i]>max) max=length[i];
for (j = 0; j < length[i]; j++).
fl<
fl<<' ';
}.
for (i = 0; i.
{<…
if ((y>(fieldsY+(j-1)*kletka))&&(y<(fieldsY+j*kletka))) break;
}.
while ((iiSizeFl)||(jiSizeFl));
if ((i≠iSizeFl+1)&&(j≠iSizeFl+1)).
{.
chArrPie[i-1][j-1]='1';
znak=1;
mouse (2);
if (znak==1).
{.
kletka_cross cr (fieldsX, fieldsY);
cr.paint (i, j, iSizeFl);
}else.
{.
kletka_nolik kr (fieldsX, fieldsY);
kr.paint (i, j, iSizeFl);
}.
//paint (znak, i, j);
mouse (1);
}.
}.
while (u≠2);
proverka=1;
do.
{.
exitFor=0;
do.
{.
AllMax0=0;AllMaxX=0;
for (i=0; i.
for (j=0; j.
{.
iArrVes0[i][j]=0;
iArrVesX[i][j]=0;
}.
for (i=0; i.
{.
for (j=0; j.
{.
max=0;count=0; maxX=0;countX=0;
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i][j-1]=='0')||(chArrPie[i][j+1]=='0'))).
{.
if ((chArrPie[i][j-1]=='0')&&(j≠0)).
{.
l=j-1;
do.
{.
count++;
l—;
}.
while ((chArrPie[i][l]=='0'));
}.
else.
{.
if (j≠iSizeFl-1).
{.
l=j+1;
do.
{.
count++;
l++;
}.
while ((chArrPie[i][l]=='0'));
}.
}.
}.
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i][j-1]=='1')||(chArrPie[i][j+1]=='1'))).
{.
if ((chArrPie[i][j-1]=='1')&&(j≠0)).
{.
l=j-1;
do.
{.
countX++;
l—;
}.
while ((chArrPie[i][l]=='1'));
}.
else.
{.
if (j≠iSizeFl-1).
{.
l=j+1;
do.
{.
countX++;
l++;
}.
while ((chArrPie[i][l]=='1'));
}.
}.
}.
if (count>max) max=count;
if (countX>maxX) maxX=countX;
if (count==4) exitFor=1;
count=0;countX=0;
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i-1][j]=='0')||(chArrPie[i+1][j]=='0'))).
{.
if ((chArrPie[i-1][j]=='0')&&(i≠0)).
{.
l=i-1;
do.
{.
count++;
l—;
}.
while ((chArrPie[l][j]=='0'));
}.
else.
{.
if (i≠iSizeFl-1).
{.
l=i+1;
do.
{.
count++;
l++;
}.
while ((chArrPie[l][j]=='0'));
}.
}.
}.
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i-1][j]=='1')||(chArrPie[i+1][j]=='1'))).
{.
if ((chArrPie[i-1][j]=='1')&&(i≠0)).
{.
l=i-1;
do.
{.
countX++;
l—;
}.
while ((chArrPie[l][j]=='1'));
}.
else.
{.
if (i≠iSizeFl-1).
{.
l=i+1;
do.
{.
countX++;
l++;
}.
while ((chArrPie[l][j]=='1'));
}.
}.
}.
if (count>max) max=count;
if (countX>maxX) maxX=countX;
if (count==4) exitFor=1;
count=0;countX=0;
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i-1][j-1]=='0')||(chArrPie[i+1][j+1]=='0'))).
{.
if ((chArrPie[i-1][j-1]=='0')&&(j≠0)).
{.
l=j-1;k=i-1;
do.
{.
count++;
l—;
k—;
}.
while ((chArrPie[k][l]=='0'));
}.
else.
{.
if (i≠iSizeFl-1).
{.
l=j+1;k=i+1;
do.
{.
count++;
l++;
k++;
}.
while ((chArrPie[k][l]=='0'));
}.
}.
}.
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i-1][j-1]=='1')||(chArrPie[i+1][j+1]=='1'))).
{.
if ((chArrPie[i-1][j-1]=='1')&&(j≠0)).
{.
l=j-1;k=i-1;
do.
{.
countX++;
l—;
k—;
}.
while ((chArrPie[k][l]=='1'));
}.
else.
{.
if (i≠iSizeFl-1).
{.
l=j+1;k=i+1;
do.
{.
countX++;
l++;
k++;
}.
while ((chArrPie[k][l]=='1'));
}.
}.
}.
if (count>max) max=count;
if (countX>maxX) maxX=countX;
if (count==4) exitFor=1;
count=0;countX=0;
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i+1][j-1]=='0')||(chArrPie[i-1][j+1]=='0'))).
{.
if ((chArrPie[i+1][j-1]=='0')&&(j≠0)).
{.
l=j-1;k=i+1;
do.
{.
count++;
k++;
l—;
}.
while ((chArrPie[k][l]=='0'));
}.
else.
{.
if (j≠iSizeFl-1).
{.
l=j+1;k=i-1;
do.
{.
count++;
l++;
k—;
}.
while ((chArrPie[k][l]=='0'));
}.
}.
}.
if ((exitFor==0)&&(chArrPie[i][j]=='2')&&((chArrPie[i+1][j-1]=='1')||(chArrPie[i-1][j+1]=='1'))).
{.
if ((chArrPie[i+1][j-1]=='1')&&(j≠0)).
{.
l=j-1;k=i+1;
do.
{.
countX++;
k++;
l—;
}.
while ((chArrPie[k][l]=='1'));
}.
else.
{.
if (j≠iSizeFl-1).
{.
l=j+1;k=i-1;
do.
{.
countX++;
l++;
k—;
}.
while ((chArrPie[k][l]=='1'));
}.
}.
}.
if (count>max) max=count;
if (countX>maxX) maxX=countX;
if (count==4) exitFor=1;
count=0; countX=0;
iArrVes0[i][j]=max;
if (max>AllMax0)AllMax0=max;
iArrVesX[i][j]=maxX;
if (maxX>AllMaxX)AllMaxX=maxX;
if (exitFor==1) break;
}.
if (exitFor==1) break;
}.
exitMark=1; way=0;
for (i=0; i.
{.
for (j=0; j.
if ((iArrVesX[i][j]==AllMaxX)&&(AllMaxX==4)&&(exitMark==1)&&(chArrPie[i][j]=='2')).
{.
chArrPie[i][j]='0';
exitMark=0;
way=1;
znak=0;
mouse (2);
if (znak==1).
{.
kletka_cross cr (fieldsX, fieldsY);
cr.paint (i+1,j+1,iSizeFl);
}else.
{.
kletka_nolik kr (fieldsX, fieldsY);
kr.paint (i+1,j+1,iSizeFl);
}.
//paint (znak, i+1,j+1);
mouse (1);
count0=0;for_break=0;gor=0;vert=0;diag=0;pdiag=0;
for (q=0;q.
{.
for (p=0;p.
{.
if (chArrPie[q][p]=='0').
{.
count0=0;
l=p+1;
do.
{.
count0++;
l++;
}.
while ((chArrPie[q][l]=='0'));
if (count0==4).
{.
for_break=1;
gor=1;
break;
}.
count0=0;
l=q+1;
do.
{.
count0++;
l++;
}.
while ((chArrPie[l][p]=='0'));
if (count0==4).
{.
for_break=1;
vert=1;
break;
}.
count0=0;
l=p+1;k=q+1;
do.
{.
count0++;
l++;
k++;
}.
while ((chArrPie[k][l]=='0'));
if (count0==4).
{.
for_break=1;
diag=1;
break;
}.
count0=0;
l=p+1;k=q-1;
do.
{.
count0++;
l++;
k—;
}.
while ((chArrPie[k][l]=='0'));
if (count0==4).
{.
for_break=1;
pdiag=1;
break;
}.
}.
}.
if (for_break==1)break;
}.
if (count0==4).
{.
mouse (2);
setcolor (4);
d=0;
if (vert==1).
do.
{.
line (fieldsX+kletka*q, fieldsY+kletka*p+kletka/2,fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka/2);
d++;
}.
while (d≠3);
if (gor==1).
do.
{.
line (fieldsX+kletka/2+kletka*q, fieldsY+kletka*p, fieldsX+kletka/2+kletka*q, fieldsY+kletka*p+kletka*5);
d++;
}.
while (d≠3);
if (diag==1).
do.
{.
line (fieldsX+kletka*q, fieldsY+kletka*p, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka*5);
d++;
}.
while (d≠3);
if (pdiag==1).
do.
{.
line (fieldsX+kletka*(q+1), fieldsY+kletka*p, fieldsX+kletka*(q+1)-kletka*5,fieldsY+kletka*p+kletka*5);
d++;
}.
while (d≠3);
setcolor (9);
mouse (1);
exitFor=1;
winZnak=0;
}.
}.
//if (exitMark==0)break;
}.
if (way≠1).
{.
for (i=0; i.
for (j=0; j.
if ((iArrVes0[i][j]==AllMax0)&&(exitMark==1)&&(chArrPie[i][j]=='2')).
{.
chArrPie[i][j]='0';
exitMark=0;
znak=0;
mouse (2);
if (znak==1).
{.
kletka_cross cr (fieldsX, fieldsY);
cr.paint (i+1,j+1,iSizeFl);
}else.
{.
kletka_nolik kr (fieldsX, fieldsY);
kr.paint (i+1,j+1,iSizeFl);
}.
//paint (znak, i+1,j+1);
mouse (1);
}.
count0=0;for_break=0;gor=0;vert=0;diag=0;pdiag=0;
for (q=0;q.
{.
for (p=0;p.
{.
if (chArrPie[q][p]=='0').
{.
count0=0;
l=p+1;
do.
{.
count0++;
l++;
}.
while ((chArrPie[q][l]=='0'));
if (count0==4).
{.
for_break=1;
gor=1;
break;
}.
count0=0;
l=q+1;
do.
{.
count0++;
l++;
}.
while ((chArrPie[l][p]=='0'));
if (count0==4).
{.
for_break=1;
vert=1;
break;
}.
count0=0;
l=p+1;k=q+1;
do.
{.
count0++;
l++;
k++;
}.
while ((chArrPie[k][l]=='0'));
if (count0==4).
{.
for_break=1;
diag=1;
break;
}.
count0=0;
l=p+1;k=q-1;
do.
{.
count0++;
l++;
k—;
}.
while ((chArrPie[k][l]=='0'));
if (count0==4).
{.
for_break=1;
pdiag=1;
break;
}.
}.
}.
if (for_break==1)break;
}.
if (count0==4).
{.
mouse (2);
setcolor (4);
d=0;
if (vert==1).
do.
{.
line (fieldsX+kletka*q, fieldsY+kletka*p+kletka/2+d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka/2+d);
line (fieldsX+kletka*q, fieldsY+kletka*p+kletka/2-d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka/2-d);
d++;
}.
while (d≠3);
if (gor==1).
do.
{.
line (fieldsX+kletka/2+kletka*q+d, fieldsY+kletka*p, fieldsX+kletka/2+kletka*q+d, fieldsY+kletka*p+kletka*5);
line (fieldsX+kletka/2+kletka*q-d, fieldsY+kletka*p, fieldsX+kletka/2+kletka*q-d, fieldsY+kletka*p+kletka*5);
d++;
}.
while (d≠3);
if (diag==1).
do.
{.
line (fieldsX+kletka*q, fieldsY+kletka*p+d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka*5+d);
line (fieldsX+kletka*q, fieldsY+kletka*p-d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka*5-d);
d++;
}.
while (d≠3);
if (pdiag==1).
do.
{.
line (fieldsX+kletka*(q+1), fieldsY+kletka*p+d, fieldsX+kletka*(q+1)-kletka*5,fieldsY+kletka*p+kletka*5+d);
line (fieldsX+kletka*(q+1), fieldsY+kletka*p-d, fieldsX+kletka*(q+1)-kletka*5,fieldsY+kletka*p+kletka*5-d);
d++;
}.
while (d≠3);
setcolor (9);
mouse (1);
exitFor=1;
winZnak=0;
}.
}.
if (exitFor==0).
{.
delay (200);
mouse (1);
cikl=0;
do.
{.
for (er=1;er<=3;er++).
{.
if ((x>menuX)&&(xmenuY+widthmenu*(er-1)+space*(er-1))&&(y.
}.
if (er==2).
{.
mouse (2);
save (wins_old_nick, win_new_nick);
outtextxy (640-fieldsX+8,fieldsY+40+100," You save!");;
delay (1000);
setfillstyle (1,15);
bar (640-fieldsX+w+3,fieldsY+100,640-fieldsX+w+5+80,200);
cikl=1;
mouse (1);
}else (cikl=0);
if (er==3) {cleardevice ();return;vixod2=0;}.
}while (cikl==1);
do.
{.
mov_mouse (3);
for (i=1;i<=iSizeFl;i++).
if ((x>(fieldsX+(i-1)*kletka))&&(x<(fieldsX+i*kletka))) break;
for (j=1;j<=iSizeFl;j++).
if ((y>(fieldsY+(j-1)*kletka))&&(y<(fieldsY+j*kletka))) break;
}.
while ((iiSizeFl)||(jiSizeFl));
if ((i≠iSizeFl+1)&&(j≠iSizeFl+1)).
{.
chArrPie[i-1][j-1]='1';
znak=1;
mouse (2);
if (znak==1).
{.
kletka_cross cr (fieldsX, fieldsY);
cr.paint (i, j, iSizeFl);
}else.
{.
kletka_nolik kr (fieldsX, fieldsY);
kr.paint (i, j, iSizeFl);
}.
//paint (znak, i, j);
mouse (1);
}.
countX=0;for_break=0;gor=0;vert=0;diag=0;pdiag=0;
for (q=0;q.
{.
for (p=0;p.
{.
if (chArrPie[q][p]=='1').
{.
countX=0;
l=p+1;
do.
{.
countX++;
l++;
}.
while ((chArrPie[q][l]=='1'));
if (countX==4).
{.
for_break=1;
gor=1;
break;
}.
countX=0;
l=q+1;
do.
{.
countX++;
l++;
}.
while ((chArrPie[l][p]=='1'));
if (countX==4).
{.
for_break=1;
vert=1;
break;
}.
countX=0;
l=p+1;k=q+1;
do.
{.
countX++;
l++;
k++;
}.
while ((chArrPie[k][l]=='1'));
if (countX==4).
{.
for_break=1;
diag=1;
break;
}.
countX=0;
l=p+1;k=q-1;
do.
{.
countX++;
l++;
k—;
}.
while ((chArrPie[k][l]=='1'));
if (countX==4).
{.
for_break=1;
pdiag=1;
break;
}.
}.
}.
if (for_break==1)break;
}.
if (countX==4).
{.
mouse (2);
setcolor (4);
d=0;
if (vert==1).
do.
{.
line (fieldsX+kletka*q, fieldsY+kletka*p+kletka/2+d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka/2+d);
line (fieldsX+kletka*q, fieldsY+kletka*p+kletka/2-d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka/2-d);
d++;
}.
while (d≠3);
if (gor==1).
do.
{.
line (fieldsX+kletka/2+kletka*q+d, fieldsY+kletka*p, fieldsX+kletka/2+kletka*q+d, fieldsY+kletka*p+kletka*5);
line (fieldsX+kletka/2+kletka*q-d, fieldsY+kletka*p, fieldsX+kletka/2+kletka*q-d, fieldsY+kletka*p+kletka*5);
d++;
}.
while (d≠3);
if (diag==1).
do.
{.
line (fieldsX+kletka*q, fieldsY+kletka*p+d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka*5+d);
line (fieldsX+kletka*q, fieldsY+kletka*p-d, fieldsX+kletka*q+kletka*5,fieldsY+kletka*p+kletka*5-d);
d++;
}.
while (d≠3);
if (pdiag==1).
do.
{.
line (fieldsX+kletka*(q+1), fieldsY+kletka*p+d, fieldsX+kletka*(q+1)-kletka*5,fieldsY+kletka*p+kletka*5+d);
line (fieldsX+kletka*(q+1), fieldsY+kletka*p-d, fieldsX+kletka*(q+1)-kletka*5,fieldsY+kletka*p+kletka*5-d);
d++;
}.
while (d≠3);
setcolor (9);
mouse (1);
exitFor=1;
winZnak=1;
}.
}.
countTie=0;
for (w=0;w.
for (e=0;e.
if (chArrPie[w][e]=='2') countTie++;
if (countTie<10).
{.
exitFor=1;
winZnak=3;
}.
}.
while (exitFor==0);
if (exitFor==1)proverka=0;
if (winZnak==1).
{.
if (type_of_nick==0)wins_old_nick++;
if (type_of_nick==1)win_new_nick++;
setcolor (4);
outtextxy (640-fieldsX+15,fieldsY+40+100," You win!");
delay (2000);
proverka=0;
}.
if (winZnak==0).
{.
win_comp++;
setcolor (4);
outtextxy (640-fieldsX+10,fieldsY+40+100," You lose!");
delay (2000);
proverka=0;
}.
if (winZnak==3).
{.
tie++;
setcolor (4);
outtextxy (640-fieldsX+10,fieldsY+40+100," Tie!");
delay (2000);
proverka=0;
}.
}.
while (proverka==1);
}.
}.
while (vixod2==1);
}.
/****************************************************************************/.
void swap (int s, int d).
{.
char bufer;
int t, k;
t = s;
s = d;
d = t;
winer[i] = s;
winer[i+1] = d;
for (k=0; k<10; k++).
{.
bufer = ' ';
}.
for (k=0; k<10; k++).
{.
bufer=nick[i][k];
nick[i][k]=nick[i+1][k];
nick[i+1][k]=bufer;
}.
t=length[i+1];
length[i+1] = length[i] ;
length[i]=t;
}.
/*—————————————————————————————————————*/.
void record ().
{.
const int menuXr=5, menuYr=30;
const int Longmenur=95;
const int widthmenur=30;
const int spacer=10;
char out[50];
int t, w, step, vixod3=0;
int x1=450, y1=250, x2=550, y2=350;
int dirx = -1, diry = -1;
int k = 10;
int dt = 10;
int maxx = getmaxx (), maxy = getmaxy ();
cleardevice ();
delay (100);
while (!kbhit ()).
{.
delay (dt);
if (x1 = maxx) dirx = -dirx;
if (y1 = maxy) diry = -diry;
setcolor (11);
setfillstyle (1, 9);
bar (x1,y1,x2,y2);
x1 += dirx *k;
x2 += dirx *k;
y1 += diry *k;
y2 += diry *k;
setcolor (5);
settextstyle (0,0,5);
outtextxy (100,200," RECORD");
setfillstyle (7, 5);
bar (x1,y1,x2,y2);
line (0, 0, maxx, 0);
line (0, 0, 0, maxy);
line (maxx, maxy, 0, maxy);
line (maxx, maxy, maxx, 0);
setcolor (1);
setfillstyle (1, 0);
settextstyle (0,0,1);
outtextxy (220,440," To continue, press any key");
}.
cleardevice ();
setbkcolor (7);
setfillstyle (1,14);
mouse (2);
bar (menuXr, menuYr, menuXr-15+Longmenur, menuYr+widthmenur);
settextstyle (0,0,1);
setcolor (9);
outtextxy (menuXr+3,menuYr+widthmenur/2−3," Exit main");
setcolor (1);
settextstyle (0,0,3);
outtextxy (menuXr+Longmenur+10,menuYr," The records of game:");
setfillstyle (7,8);
bar (40,70,100+510,100+380);
setfillstyle (7,9);
bar (50,80,100+500,100+370);
setfillstyle (1,1);
bar (57,87,100+493,100+363);
setfillstyle (1,11);
bar (60,90,100+490,100+360);
mouse (1);
for (i = 0; i < 10; i++).
for (j = 0; j < 10; j++).
{.
nick[i][j]=' ';
winer[i]=0;
}.
ifstream f («data.txt»);
f >> n;
for (i = 0; i.
{.
f >> length[i];
for (j = 0; j < length[i]; j++).
f>>nick[i][j];
}.
for (i = 0; i.
{.
f>> winer[i];
}.
for (j=0; j.
for (i=0; i.
if (winer[i] < winer[i+1]) swap (winer[i], winer[i+1]);
t=0;w=0;step=40;
for (i = 0; i.
{.
if ((winer[i]==winer[i+1])&&(i≠n-1)).
{.
for (j=0; j<10; j++).
{.
if (int (nick[i][j]) > int (nick[i+1][j])).
{.
for (k=0; k<10; k++).
{.
buf[k] = nick[i+1][k];
nick[i+1][k] = nick[i][k];
nick[i][k] = buf[k];
}.
length_buf = length[i];
length[i] = length[i+1];
length[i+1] = length_buf;
break;
}.
}.
}.
w=0;
for (j = 0; j.
{.
back_buf[1]='x0';
back_buf[0]=nick[i][j];
setcolor (8);
settextstyle (0,0,2);
outtextxy (100+w, 100+t, back_buf);
w+=20;
}.
sprintf (out," %d", winer[i]);
setcolor (1);
settextstyle (0,0,2);
outtextxy (250,100+t, out);
t+=20;
}.
mouse (1);
do.
{.
mov_mouse (3);
if ((x>menuXr)&&(xmenuYr)&&(y< menuYr+widthmenur)) return;
sound (80);
delay (100);
nosound ();
}.
while (vixod3==0);
}.
/****************************************************************************/.
void spravka ().
{.
int vixod3=0;
int midx, midy;
int r=50;
int x1=450, y1=250, x2=550, y2=350;
int dirx = -1, diry = -1;
int k = 10;
int dt = 10;
int maxx = getmaxx (), maxy = getmaxy ();
const int menuXs=5, menuYs=30;
const int Longmenus=95;
const int widthmenus=30;
const int spaces=10;
int vixod2=0;
cleardevice ();
delay (100);
while (!kbhit ()).
{.
delay (dt);
if (x1 = maxx) dirx = -dirx;
if (y1 = maxy) diry = -diry;
setcolor (11);
setfillstyle (1, 9);
bar (x1,y1,x2,y2);
x1 += dirx *k;
x2 += dirx *k;
y1 += diry *k;
y2 += diry *k;
setcolor (5);
settextstyle (0,0,5);
outtextxy (20,200," ABOUT THIS GAME");
setfillstyle (7, 5);
bar (x1,y1,x2,y2);
line (0, 0, maxx, 0);
line (0, 0, 0, maxy);
line (maxx, maxy, 0, maxy);
line (maxx, maxy, maxx, 0);
setcolor (1);
setfillstyle (1, 0);
settextstyle (0,0,1);
outtextxy (220,440," To continue, press any key");
}.
cleardevice ();
mouse (2);
setbkcolor (7);
setfillstyle (1,14);
bar (menuXs, menuYs, menuXs+Longmenus-15,menuYs+widthmenus);
settextstyle (0,0,1);
setcolor (9);
outtextxy (menuXs+4,menuYs+widthmenus/2−3," Exit main");
setfillstyle (7,8);
bar (130,5,640,480);
setfillstyle (7,9);
bar (140,15,630,470);
setfillstyle (1,1);
bar (147,22,623,463);
setfillstyle (1,11);
bar (150,25,620,460);
setcolor (1);
settextstyle (0,0,2);
outtextxy (170,70," About the game and the rule «);
i=0;
FILE *file;
char* file_name="data1.txt" ;
char load_string[256] ;
file = fopen (file_name," r");
if (file ≠ 0).
{.
do.
{.
fgets (load_string, 256, file);
load_string[sizeof (load_string)-1]=' ';
setcolor (8);
settextstyle (0,0,1);
outtextxy (150,60+i, load_string);
i=i+20;
}.
while (!feof (file));
}.
mouse (1);
do.
{.
mouse (1);
mov_mouse (3);
if ((x>menuXs)&&(xmenuYs)&&(y< menuYs+widthmenus)) return;
}.
while (vixod2==0);
}.
/****************************************************************************/.
void find (int length_new_nick).
{.
ifstream f («data.txt»);
f >> n;
for (i = 0; i.
{.
f >> length[i];
if (length[i]>max) max=length[i];
for (j = 0; j < length[i]; j++).
f>>nick[i][j];
}.
for (i = 0; i.
{.
f>> winer[i];
}.
for (i = 0; i.
{.
if (length[i]==length_new_nick).
for (j = 0; j < length[i]; j++).
if (nick[i][j]==new_nick[j]) count++;
}.
if (count==length_new_nick).
{.
cleardevice ();
setbkcolor (7);
setcolor (4);
settextstyle (0,0,2);
outtextxy (160,50," Please choose other nick.");
settextstyle (0,0,1);
outtextxy (180,70," Please press enter.");
endcikl=1;
getch ();
}.
else endcikl=0;
}.
/*—————————————————————————————————————*/.
void enter (int authoriz).
{.
do.
{.
//endcikl=0;
mouse (2);
Finish=0;
u=0;
probel=0;
for (i=0; i< 10; i++) new_nick[i]=' ';
cleardevice ();
setbkcolor (7);
setfillstyle (1,14);
n1 = widthKnob * quantilyKnobWi + (quantilyKnobWi-1) * spaceKnob;
n2 = lengthKnob * quantilyKnobLe + (quantilyKnobLe-1) * spaceKnob;
for (j = 0; j < n1; j+=spaceKnob + widthKnob).
for (i = 0; i < n2; i+=spaceKnob + lengthKnob).
bar (xKnob + i, yKnob + j, xKnob + lengthKnob + i, yKnob + widthKnob + j);
bar (xKnob, yKnob+spaceKnob*4+widthKnob*4, xKnob + lengthKnob, yKnob +spaceKnob*4+widthKnob*5);
bar (xKnob+spaceKnob+lengthKnob, yKnob+spaceKnob*4+widthKnob*4, xKnob+spaceKnob+lengthKnob + lengthKnob, yKnob +spaceKnob*4+widthKnob*5);
bar (xKnob, yKnob+spaceKnob*5+widthKnob*5, xKnob+lengthKnob*2+spaceKnob, yKnob +spaceKnob*5+widthKnob*6);
bar (xKnob+2*spaceKnob+2*lengthKnob, yKnob+spaceKnob*5+widthKnob*5, xKnob+lengthKnob*3+2*spaceKnob, yKnob +spaceKnob*5+widthKnob*6);
setfillstyle (1,15);
bar (xWin, yWin, xWin+lengthWin, yWin+widthWin);
setcolor (9);
settextstyle (0,0,2);
outtextxy (xKnob+lengthKnob/2−7,yKnob+widthKnob/2−5," A");
outtextxy (xKnob+lengthKnob/2+spaceKnob+lengthKnob-7,yKnob+widthKnob/2−5," B");
outtextxy (xKnob+lengthKnob/2+spaceKnob*2+lengthKnob*2−7,yKnob+widthKnob/2−5," C");
outtextxy (xKnob+lengthKnob/2+spaceKnob*3+lengthKnob*3−7,yKnob+widthKnob/2−5," D");
outtextxy (xKnob+lengthKnob/2+spaceKnob*4+lengthKnob*4−7,yKnob+widthKnob/2−5," E");
outtextxy (xKnob+lengthKnob/2+spaceKnob*5+lengthKnob*5−7,yKnob+widthKnob/2−5," F");
outtextxy (xKnob+lengthKnob/2−7,yKnob+spaceKnob+widthKnob+widthKnob/2−5," G");
outtextxy (xKnob+lengthKnob/2+spaceKnob+lengthKnob-7,yKnob+spaceKnob+widthKnob+widthKnob/2−5," H");
outtextxy (xKnob+lengthKnob/2+spaceKnob*2+lengthKnob*2−7,yKnob+spaceKnob+widthKnob+widthKnob/2−5," I");
outtextxy (xKnob+lengthKnob/2+spaceKnob*3+lengthKnob*3−7,yKnob+spaceKnob+widthKnob+widthKnob/2−5," J");
outtextxy (xKnob+lengthKnob/2+spaceKnob*4+lengthKnob*4−7,yKnob+spaceKnob+widthKnob+widthKnob/2−5," K");
outtextxy (xKnob+lengthKnob/2+spaceKnob*5+lengthKnob*5−7,yKnob+spaceKnob+widthKnob+widthKnob/2−5," L");
outtextxy (xKnob+lengthKnob/2−7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," M");
outtextxy (xKnob+lengthKnob/2+spaceKnob+lengthKnob-7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," N");
outtextxy (xKnob+lengthKnob/2+spaceKnob*2+lengthKnob*2−7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," O");
outtextxy (xKnob+lengthKnob/2+spaceKnob*3+lengthKnob*3−7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," P");
outtextxy (xKnob+lengthKnob/2+spaceKnob*4+lengthKnob*4−7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," Q");
outtextxy (xKnob+lengthKnob/2+spaceKnob*5+lengthKnob*5−7,yKnob+spaceKnob*2+widthKnob*2+widthKnob/2−5," R");
outtextxy (xKnob+lengthKnob/2−7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," S");
outtextxy (xKnob+lengthKnob/2+spaceKnob+lengthKnob-7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," T");
outtextxy (xKnob+lengthKnob/2+spaceKnob*2+lengthKnob*2−7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," U");
outtextxy (xKnob+lengthKnob/2+spaceKnob*3+lengthKnob*3−7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," V");
outtextxy (xKnob+lengthKnob/2+spaceKnob*4+lengthKnob*4−7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," W");
outtextxy (xKnob+lengthKnob/2+spaceKnob*5+lengthKnob*5−7,yKnob+spaceKnob*3+widthKnob*3+widthKnob/2−5," X");
outtextxy (xKnob+lengthKnob/2−7,yKnob+spaceKnob*4+widthKnob*4+widthKnob/2−5," Y");
outtextxy (xKnob+lengthKnob/2+spaceKnob+lengthKnob-7,yKnob+spaceKnob*4+widthKnob*4+widthKnob/2−5," Z");
outtextxy (xKnob+2*spaceKnob+2*lengthKnob+lengthKnob/2−28,yKnob+spaceKnob*5+widthKnob*5+widthKnob/2−5," Back");
outtextxy (xKnob+lengthKnob/2−7,yKnob+spaceKnob*5+widthKnob*5+widthKnob/2−5," Finish");
mouse (1);
resize ();
u=0;
do.
{.
place = 0;
delay (250);
mouse (1);
mov_mouse (3);
for (j = 1; j <= quantilyKnobLe; j++).
if ((x (xKnob+lengthKnob*(j-1)+spaceKnob*(j-1)))) break;
for (i = 1; i <= quantilyKnobWi+i; i++).
if ((y > (yKnob+widthKnob*(i-1)+spaceKnob*(i-1)))&&(y < (yKnob+widthKnob*i+spaceKnob*(i-1)))) break;
if (((x > xKnob)&&(xyKnob+spaceKnob*5+widthKnob*5)&&(y.
{.
Finish=1;
}.
if (((x>xKnob+2*spaceKnob+2*lengthKnob)&&(xyKnob+spaceKnob*5+widthKnob*5)&&(y.
{.
setcolor (15);
u—;
if (authoriz==0) ASCII = int (old_nick[u]);
else ASCII = int (new_nick[u]);
back_buf[0] = char (ASCII);
new_nick[u]=' ';
probel-=16;
outtextxy (xWin+5+probel, yWin+3,back_buf);
setcolor (9);
}.
if (u<10).
{.
switch (i).
{.
case 1:
{.
switch (j).
{.
case 1:
{.
outtextxy (xWin+5+probel, yWin+3," A");
if (authoriz==0) old_nick[u]='A';
else new_nick[u]='A';
u++;
place = 1;
};break;
case 2:
{.
outtextxy (xWin+5+probel, yWin+3," B");
if (authoriz==0) old_nick[u]='B';
else new_nick[u]='B';
u++;
place = 1;
};break;
case 3:
{.
outtextxy (xWin+5+probel, yWin+3," C");
if (authoriz==0) old_nick[u]='C';
else new_nick[u]='C';
u++;
place = 1;
};break;
case 4:
{.
outtextxy (xWin+5+probel, yWin+3," D");
if (authoriz==0) old_nick[u]='D';
else new_nick[u]='D';
u++;
place = 1;
};break;
case 5:
{.
outtextxy (xWin+5+probel, yWin+3," E");
if (authoriz==0) old_nick[u]='E';
else new_nick[u]='E';
u++;
place = 1;
};break;
case 6:
{.
outtextxy (xWin+5+probel, yWin+3," F");
if (authoriz==0) old_nick[u]='F';
else new_nick[u]='F';
u++;
place = 1;
};break;
}.
};break;
case 2:
{.
switch (j).
{.
case 1:
{.
outtextxy (xWin+5+probel, yWin+3," G");
if (authoriz==0) old_nick[u]='G';
else new_nick[u]='G';
u++;
place = 1;
};break;
case 2:
{.
outtextxy (xWin+5+probel, yWin+3," H");
if (authoriz==0) old_nick[u]='H';
else new_nick[u]='H';
u++;
place = 1;
};break;
case 3:
{.
outtextxy (xWin+5+probel, yWin+3," I");
if (authoriz==0) old_nick[u]='I';
else new_nick[u]='I';
u++;
place = 1;
};break;
case 4:
{.
outtextxy (xWin+5+probel, yWin+3," J");
if (authoriz==0) old_nick[u]='J';
else new_nick[u]='J';
u++;
place = 1;
};break;
case 5:
{.
outtextxy (xWin+5+probel, yWin+3," K");
if (authoriz==0) old_nick[u]='K';
else new_nick[u]='K';
u++;
place = 1;
};break;
case 6:
{.
outtextxy (xWin+5+probel, yWin+3," L");
if (authoriz==0) old_nick[u]='L';
else new_nick[u]='L';
u++;
place = 1;
};break;
}.
};break;
case 3:
{ switch (j).
{.
case 1:
{.
outtextxy (xWin+5+probel, yWin+3," M");
if (authoriz==0) old_nick[u]='M';
else new_nick[u]='M';
u++;
place = 1;
};break;
case 2:
{.
outtextxy (xWin+5+probel, yWin+3," N");
if (authoriz==0) old_nick[u]='N';
else new_nick[u]='N';
u++;
place = 1;
};break;
case 3:
{.
outtextxy (xWin+5+probel, yWin+3," O");
if (authoriz==0) old_nick[u]='O';
else new_nick[u]='O';
u++;
place = 1;
};break;
case 4:
{.
outtextxy (xWin+5+probel, yWin+3," P");
if (authoriz==0) old_nick[u]='P';
else new_nick[u]='P';
u++;
place = 1;
};break;
case 5:
{.
outtextxy (xWin+5+probel, yWin+3," Q");
if (authoriz==0) old_nick[u]='Q';
else new_nick[u]='Q';
u++;
place = 1;
};break;
case 6:
{.
outtextxy (xWin+5+probel, yWin+3," R");
if (authoriz==0) old_nick[u]='R';
else new_nick[u]='R';
u++;
place = 1;
};break;
}.
};break;
case 4:
{ switch (j).
{.
case 1:
{.
outtextxy (xWin+5+probel, yWin+3," S");
if (authoriz==0) old_nick[u]='S';
else new_nick[u]='S';
u++;
place = 1;
};break;
case 2:
{.
outtextxy (xWin+5+probel, yWin+3," T");
if (authoriz==0) old_nick[u]='T';
else new_nick[u]='T';
u++;
place = 1;
};break;
case 3:
{.
outtextxy (xWin+5+probel, yWin+3," U");
if (authoriz==0) old_nick[u]='U';
else new_nick[u]='U';
u++;
place = 1;
};break;
case 4:
{.
outtextxy (xWin+5+probel, yWin+3," V");
if (authoriz==0) old_nick[u]='V';
else new_nick[u]='V';
u++;
place = 1;
};break;
case 5:
{.
outtextxy (xWin+5+probel, yWin+3," W");
if (authoriz==0) old_nick[u]='W';
else new_nick[u]='W';
u++;
place = 1;
};break;
case 6:
{.
outtextxy (xWin+5+probel, yWin+3," X");
if (authoriz==0) old_nick[u]='X';
else new_nick[u]='X';
u++;
place = 1;
};break;
}.
};break;
case 5:
{ switch (j).
{.
case 1:
{.
outtextxy (xWin+5+probel, yWin+3," Y");
if (authoriz==0) old_nick[u]='Y';
else new_nick[u]='Y';
u++;
place = 1;
};break;
case 2:
{.
outtextxy (xWin+5+probel, yWin+3," Z");
if (authoriz==0) old_nick[u]='Z';
else new_nick[u]='Z';
u++;
place = 1;
};break;
}.
};break;
}.
if (place == 1) probel+=16;
}.
}.
while (Finish==0);
if (authoriz==1)length_new_nick = u;
else length_old_nick=u;
if (authoriz==1).
find (u);
cleardevice ();
}.
while (endcikl==1);
}.
/*—————————————————————————————————————*/.
void registration ().
{.
cleardevice ();
setbkcolor (7);
settextstyle (0,0,3);
setcolor (1);
outtextxy (160,10," Authoriezation");
setfillstyle (1,14);
n = WidthMenuAu * number + (number-1) * SpaceMenuAu;
for (i = 0; i < n; i+=SpaceMenuAu+WidthMenuAu).
{.
mouse (2);
bar (MenuXau, MenuYau+i, MenuXau+LongMenuAu, MenuYau + WidthMenuAu +i);
mouse (1);
}.
settextstyle (0,0,2);
setcolor (9);
outtextxy (MenuXau+12,MenuYau+WidthMenuAu/2−5," Enter your nick");
outtextxy (MenuXau+20,MenuYau+WidthMenuAu/2−5+WidthMenuAu+SpaceMenuAu," Enter new nick");
resize ();
mouse (1);
mov_mouse (3);
sound (100);
delay (3);
sound (50);
nosound ();
for (i = 1; i <= number+i; i++).
if ((y > (MenuYau+WidthMenuAu*(i-1)+SpaceMenuAu*(i-1)))&&(y < (MenuYau+WidthMenuAu*i+SpaceMenuAu*(i-1)))) break;
if ((i==1)&&(x>MenuXau)&&(x.
if ((i==2)&&(x>MenuXau)&&(x.
}.
/****************************************************************************/.
void menu ().
{.
cleardevice ();
setbkcolor (7);
setfillstyle (1,14);
n = WidthMenum * CountMenum + (CountMenum-1) * SpaceMenum;
for (i = 0; i < n; i+=SpaceMenum+WidthMenum).
bar (MenuXm, MenuYm+i, MenuXm+LongMenum, MenuYm + WidthMenum +i);
setcolor (9);
settextstyle (0,0,2);
outtextxy (256,75," Begin");
outtextxy (256,75+(WidthMenum+SpaceMenum)," Record");
outtextxy (256,75+(WidthMenum+SpaceMenum)*2," About");
outtextxy (256,75+(WidthMenum+SpaceMenum)*3," Exit");
}.
/****************************************************************************/.
void privet ().
{.
cleardevice ();
setbkcolor (14);
for (int i=0;i<11;i++).
{.
setbkcolor (i);
sound (i+50);
delay (50);
sound (i*5);
delay (10);
sound (i*30);
delay (20);
settextstyle (i-1,0,6);
setcolor (i+2);
outtextxy (70,240," Tic-tac-toe");
if (i==10).
{.
cleardevice ();
setbkcolor (9);
setcolor (13);
settextstyle (0,0,3);
outtextxy (100,180," Welcome to the game");
settextstyle (0,0,1);
outtextxy (230,450," Please, press any key");
delay (100);
}.
cleardevice;
delay (400);
} nosound ();
/* settextstyle (0,0,3);
setbkcolor (9);
setcolor (13);
outtextxy (100,180," Welcome to the game");
settextstyle (0,0,6);
outtextxy (70,240," Tic-tac-toe");
settextstyle (0,0,1);
outtextxy (230,450," Please, press any key"); */.
for (i=100;i<1500;i*=4).
{.
sound (i);
delay (100);
i*=30;
sound (i);
delay (100);
i/=25;
sound (i);
delay (100);
sound (300);
delay (45);
sound (500);
delay (100);
sound (100);
delay (50);
sound (1500);
delay (40);
sound (350);
delay (80);
}.
sound (800);
delay (100);
for (i=30;i<2000;i*=10).
{.
sound (i);
delay (100);
i+=30;
sound (i);
delay (100);
i/=13;
sound (i);
delay (10);
i-=13;
sound (i);
delay (10);
i+=100;
sound (i);
delay (50);
i*=6;
sound (i);
delay (100);
sound (1000);
delay (50);
sound (500);
delay (10);
}.
sound (440);
delay (50);
sound (200);
delay (40);
sound (1500);
delay (30);
sound (10);
sound (5);
nosound ();
getch ();
}.
};
/****************************************************************************/.
void main ().
{.
common tic;
pair ob;
tic.inilization_graph ();
cleardevice ();
setbkcolor (15);
setcolor (8);
settextstyle (0,0,3);
outtextxy (ob.X, ob. Y," NATIONAL RESEARCH TOMSK");
++ob;
settextstyle (0,0,3);
outtextxy (ob.X, ob. Y," POLYTECHNIC UNIVERSITY");
settextstyle (0,0,2);
ob++;
outtextxy (ob.X+50,ob.Y," Institute of Cybernetics");
settextstyle (0,0,1);
ob++;
outtextxy (ob.X+58,ob.Y," Departament of Information Retrieval System");
settextstyle (0,0,6);
ob++;
outtextxy (ob.X-15,ob.Y+60," TIC-TAC-TOE");
settextstyle (0,0,1);
ob++;
outtextxy (ob.X+220,ob.Y+150," Made …