Игра "Крестики-нолики"
Наименование продукта, краткая характеристика области применения. Требования к программной документации и функциональным характеристикам разработки. Выбор и проработка программных средств, проектирование программы, анализ результатов разработки программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.03.2015 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
{
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<iSizeFl; i++)
{
for(j=0; j<iSizeFl; 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<iSizeFl;q++)
{
for(p=0;p<iSizeFl;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<iSizeFl; i++)
for(j=0; j<iSizeFl; 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<iSizeFl;q++)
{
for(p=0;p<iSizeFl;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)&&(x<menuX+Longmenu)&&(y>menuY+widthmenu*(er-1)+space*(er-1))&&(y<menuY+widthmenu*er+space*(er-1)))break;
}
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((i<1)||(i>iSizeFl)||(j<1)||(j>iSizeFl));
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<iSizeFl;q++)
{
for(p=0;p<iSizeFl;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<iSizeFl;w++)
for(e=0;e<iSizeFl;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,vixod_3=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 <= 0 || x2 >= maxx) dirx = -dirx;
if (y1 <= 0 || y2 >= 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<n; i++)
{
f >> length[i];
for (j = 0; j < length[i]; j++)
f>>nick[i][j];
}
for(i = 0; i<n; i++)
{
f>> winer[i];
}
for (j=0; j<n-1; j++)
for (i=0; i<n-j-1; i++)
if (winer[i] < winer[i+1]) swap(winer[i],winer[i+1]);
t=0;w=0;step=40;
for(i = 0; i<n; 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<length[i]; 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)&&(x<menuXr+Longmenur)&&(y>menuYr)&&(y< menuYr+widthmenur)) return;
sound(80);
delay(100);
nosound();
}
while(vixod_3==0);
}
/****************************************************************************/
void spravka()
{
int vixod_3=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 vixod_2=0;
cleardevice();
delay(100);
while( !kbhit() )
{
delay(dt);
if (x1 <= 0 || x2 >= maxx) dirx = -dirx;
if (y1 <= 0 || y2 >= 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)&&(x<menuXs+Longmenus)&&(y>menuYs)&&(y< menuYs+widthmenus)) return;
}
while(vixod_2==0);
}
/****************************************************************************/
void find(int length_new_nick)
{
ifstream f("data.txt");
f >> n;
for(i = 0; i<n; 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<n; i++)
{
f>> winer[i];
}
for(i = 0; i<n; 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+spaceKnob*(j-1)))&&(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)&&(x<xKnob+lengthKnob*2+spaceKnob))&&((y>yKnob+spaceKnob*5+widthKnob*5)&&(y<yKnob +spaceKnob*5+widthKnob*6)))
{
Finish=1;
}
if(((x>xKnob+2*spaceKnob+2*lengthKnob)&&(x<xKnob+lengthKnob*3+2*spaceKnob))&&((y>yKnob+spaceKnob*5+widthKnob*5)&&(y<yKnob +spaceKnob*5+widthKnob*6))&&(u!=0))
{
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<MenuXau+LongMenuAu)) {enter(0); type_of_nick=0;}
if((i==2)&&(x>MenuXau)&&(x<MenuXau+LongMenuAu)) {enter(1); type_of_nick=1;}
}
/****************************************************************************/
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 by student of 8V01:Chshukova C.B.");
settextstyle(0,0,1);
ob++;
outtextxy(ob.X+210,ob.Y+140,"Check by assistant:Pogrebnai T.K.");
settextstyle(0,0,2);
ob++;
outtextxy(ob.X+130,ob.Y+230,"Tomsk, 2011");
delay(10000);
int vixod=0;
tic.privet();
tic.registration();
tic.mouse(1);
do
{
tic.mouse(2);
cleardevice();
tic.menu();
tic. resize();
tic.mouse(1);
delay(200);
tic.mov_mouse(3);
for ( int j = 1; j <= tic.CountMenum ; j++)
if( ( tic.y > (tic.MenuYm+tic.WidthMenum*(j-1)+tic.SpaceMenum*(j-1)))&&(tic.y < (tic.MenuYm+tic.WidthMenum*j+tic.SpaceMenum*(j-1))) &&(tic.x > tic.MenuXm)&&(tic.x < (tic.MenuXm+tic.LongMenum)) ) break;
if (j<4)
{
if (j< 2)
{
tic.mouse(2);
tic.chose_fl();
if(tic.just==0)tic.game();
}
else
if(j>2) tic.spravka();
else tic.record();
}
else
{
if(j==4) {return;vixod=1;}
}
}while(vixod==0);
closegraph();
}
Размещено на Allbest.ru
...Подобные документы
Общая характеристика языков программирования. Краткий обзор C, C++, Java, PHP, Python, Delphi и Visual Basic. Процесс разработки программы игра "Крестики и нолики" с помощью AppWizard. Компиляция и компоновка модулей, определение интерфейса приложения.
курсовая работа [2,5 M], добавлен 27.05.2014Разработка популярной развлекательной игры крестики-нолики. Возможность играть с компьютером, который играет согласно созданному алгоритму. Новые возможности Visual Studio. Легкое усвоение программы. Удобный интерфейс - "визитная карточка" приложения.
курсовая работа [74,6 K], добавлен 20.12.2009Разработка алгоритма, выполняющего поиск наилучшего решения на каждый ход в игре "крестики-нолики" (используя минимальный алгоритм). Обоснование выбора программных средств для решения задачи. Блок-схема интеллектуального алгоритма реализации программы.
контрольная работа [380,0 K], добавлен 28.04.2014Проект программы "Крестики-нолики". Блок-схема алгоритма. Описание работы программного продукта. Инструкция по инсталляции. Инструкция программисту, возможность доработки с целью упрощения исполняемых кодов. Инструкция по проверке и тестированию.
курсовая работа [235,8 K], добавлен 05.12.2009Знакомство с интерфейсом пользователя и сценарием использования программы игры в крестики и нолики. Функциональные и нефункциональные требования для персонального компьютера. Исключительные ситуации и реакция программы. Пример кода игры и комментарии.
курсовая работа [236,5 K], добавлен 27.01.2014Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.
курсовая работа [1,8 M], добавлен 05.03.2013Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.
курсовая работа [352,8 K], добавлен 14.04.2011Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Описание этапов разработки программы "дневник": формулирование проблемной ситуации, определение технических требований в функциональным характеристикам и надежности программы, проектирование интерфейса, создание алгоритмов. Тестирование готового продукта.
курсовая работа [1,7 M], добавлен 26.12.2011Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.
курсовая работа [660,4 K], добавлен 08.03.2015Требования к функциональным характеристикам проектируемого интернет-магазина. Требования к составу и параметрам технических средств и программной документации. Стадии и этапы разработки интернет-магазина, проверка и контроль правильности ее работы.
курсовая работа [598,2 K], добавлен 17.05.2011Программный продукт для игры "Крестики-нолики". Описание пользовательского интерфейса. Факт базы данных, определяющий состояние счёта. Предикат изменяющий состояние игрового процесса и подсчитывающий количество занятых ячеек поля. Исходный код программы.
курсовая работа [34,6 K], добавлен 19.05.2014Стадии и этапы разработки программного продукта для осуществления упрощенной работы с клиентами и учёта услуг оказываемых "Интернет-центром". Требования к функциональным характеристикам и надежности программы, к составу и параметрам технических средств.
лабораторная работа [29,4 K], добавлен 13.06.2014Требования к функциональным характеристикам программы, составу и параметрам технических средств, программной совместимости. Особенности программирования в среде Access. Описание интерфейса программы, ввод и редактирование данных, добавление новых книг.
курсовая работа [1,5 M], добавлен 17.11.2010Анализ программной системы, способной облегчить действия руководителя тушения пожара и повысить эффективность пожарных работ. Требования к функциональным характеристикам, составу и параметрам технических средств. Разработка программной документации.
курсовая работа [381,6 K], добавлен 13.08.2013Обзор известных программ, которые выполняют аналогичные функции. Выбор инструментальных средств разработки. Проектирование пользовательского интерфейса и структур данных (во внешней и оперативной памяти). Выбор стандартных визуальных компонентов.
курсовая работа [1,1 M], добавлен 13.10.2015Основание для разработки web-сайта. Требования к программной документации, стадии и этапы разработки сайта. Установка пакета Denwer. Установка программы создания и редактирования Web-сайтов Joomla 1.5. Расчет себестоимости программного продукта.
дипломная работа [7,7 M], добавлен 30.06.2012Обоснование выбора технологии и программных средств для разработки утилиты. Требования к функциональным характеристикам и моделирование предметной области. Спецификация вариантов использования и расчет показателей экономической эффективности проекта.
дипломная работа [1,1 M], добавлен 13.12.2013Особенности документирования программных средств, стадии разработки продуктов. Классификация обеспечивающего пакета документов. Сущность и основные недостатки Единой системы программной документации. Классификация стандартов, Гост 19.102-77 ЕСПД.
презентация [64,8 K], добавлен 22.03.2014Разработка аналога игры "Крестики-нолики", где игроки выбирают размер поля. Правила игры. Интерфейс программы. Главная функция main. Класс XO. Метод вывода поля и хода игроков. Методы поиска крестиков, ноликов. Методы проверки выигрышных ситуаций игроков.
курсовая работа [281,5 K], добавлен 30.01.2018