Игра "Крестики-нолики"

Наименование продукта, краткая характеристика области применения. Требования к программной документации и функциональным характеристикам разработки. Выбор и проработка программных средств, проектирование программы, анализ результатов разработки программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.