Red de conocimiento informático - Material del sitio web - ¡Cómo programar en lenguaje C Buscaminas! ~

¡Cómo programar en lenguaje C Buscaminas! ~

Russian Express/t/20051201/01/4429905.html

Buscaminas

#includelt;stdio.hgt;

# incluirt; gráficos.hgt;

#includelt; stdlib.hgt;

lista de estructuras

{

int x;

int y;

int num;

int bomba;

int wa

;

lista de estructuras di[10][10];

int currentx=210;

int currenty=130;

void initxy(void)

{

int i, j

for(i=0; ilt; =9; i )

for(j= 0; jlt; = 9; j )

{

di[j].x=i*20 200;

di[j].y= j*20 120;

di[j].wa=0;

di[j].bomb=0; p> }

void initmu(void)

{

int i, j

setcolor(2); >

rectángulo(200, 120, 400, 320);

rectángulo(190, 110, 410, 330);

setfillstyle(8, 14); >

relleno de inundación(191,111,2);

for(i=0;ilt;=9;i)

for(j=0;jlt;=9 ; j )

rectángulo(di[j].x, di[j].y, di[j].x 19, di[j].y 19);

outtextxy( 450, 200, "presione 'enter' para patear");

outtextxy (450, 250, "presione '\' para marcar"); p> void randbomb(void)

{

int k;

int i, j

aleatorio(); p>

for(i=0;ilt;=9;i)

for(j=0;jlt;=9;j)

{

p>

k=random(5);

if(k==2)

di[j].bomb=1;

}

}

vacío jisuan(vacío)

{

int k=0

int i, j;

>

for(i=0;ilt;=9;i)

for(j=0;jlt;=9;j)

{

if(iamp;amp;jamp;amp;di[i-1][j-1].bomb)

k=k 1;

if(iamp;amp ;di[i-1][j].bomb)

k=k 1;

if(jamp;amp;di[j-1].bomb)

k=k 1;

if(ilt;=8amp;amp;di[i 1][j].bomb)

k=k 1; p>

if(jlt;=8amp;amp;di[j 1].bomb)

k=k 1;

if(ilt;=8amp; amp jlt;=8amp;amp;di[i 1][j 1].bomb)

k=k 1;

if(iamp;amp;jlt;=8amp; ;amp ;di[i-1][j 1].bomb)

k=k 1;

if(ilt;=8amp;amp;jamp;amp;di[ i 1 ][j-1].bomb)

k=k 1;

di[j].num=k;

k=0;

p>

}

}

void xianbomb(void)

{

int i , j;

char biaoji[2];

char znum[2];

biaoji[0]=1; biaoji[1]=NULL;

for(i=0;ilt;=9;i)

for(j=0;jlt;=9;j)

{

p>

if(di[j].bomb==1)

outtextxy(di[j].x 2, di[j] .y 2, biaoji);

else

{

itoa(di[j].num, znum, 10); > setfillstyle(1, 0);

bar(i*20 202, j*20 122, i*20 218, j*20 138);

outtextxy(i*20); 202, j*20 122, znum);

p>

}

}

}

movimiento vacío(vacío)

{

int clave;

clave=bioskey(1);

if(clave)

clave= bioskey(0);

if( key==0x4800)

{

if(currentygt;130)

{

setcolor(0);

círculo(currentx, currenty, 5);

currenty-=20; p> círculo(currentx, currenty, 5);

}

else

{

setcolor(0);

círculo(actualx, actualy, 5);

actualy=310;

setcolor(4);

círculo(actualx, actualy, 5); );

}

}

if(key==0x4b00)

{

if(currentxgt ;210)

{

setcolor(0);

círculo(currentx, currenty,

currentx-=20); ;

setcolor(4);

círculo(currentx, currenty, 5

}

else

<); p> {

setcolor(0);

círculo(currentx, currenty, 5);

currentx=390; (4);

círculo(currentx, currenty, 5

}

}

if(key==0x4d00)

{

if(currentxlt;390)

{

setcolor(0);

círculo( actualx, actual, 5);

actualx =20;

setcolor(4);

círculo(actualx, actual, 5);

}

else

{

setcolor(0);

círculo(currentx, currenty, 5); p> p>

currentx=210;

setcolor(4);

círculo(currentx, currenty, 5

}

}

if(key==0x5000)

{

if(currentylt;310)

{

setcolor(0);

círculo(currentx, currenty,

currenty =20; /p >

círculo(curr

entx, actual, 5);

}

else

{

setcolor(0); círculo(actualx, actual, 5);

actualy=130;

setcolor(4);

círculo(actualx, actual, 5); p>

p>

}

}

if(key==0x1c0d)

{

int i , j;

p>

char snum[2];

snum[0]=NULL

snum[1]=NULL; /p>

i=(actualx -210)/20;

j=(actualy-130)/20;

if(di[j].bomb== 1)

{

outtextxy(100, 100, "juego terminado");

xianbomb();

dormir(2). );

salir (0);

}

if(di[j].bomb==0)

{

di[j] .wa=1;

setfillstyle(1, 0

bar(currentx-8, currenty-8, currentx 8, currenty); 8);

setcolor(15);

itoa(di[j].num, snum, 10);

outtextxy(currentx-8, currenty). -8, snum);

setcolor(4);

círculo(currentx, currenty,

}

}

if(key ==0x2b5c)

{

char biaoji[2];

biaoji[0]=1; /p>

biaoji[1] =NULL;

setcolor(0);

bar(currentx-8, currenty-8, currentx 8, currenty 8); /p>

setcolor(4)

outtextxy(currentx-8, currenty-8, biaoji

círculo(currentx, currenty, 5); >

}

}

éxito nulo(nulo)

{

int k=1; p> int i, j;

for(i=0;ilt;=9;i)

for(j=0;jlt;=9;j)

if(di[j] .bomb==0amp

;amp; di[j].wa==0)

k=0;

if(k==1)

{

outtextxy(100, 100, "buen éxito");

xianbomb();

dormir(2);

salir(0);

}

}

void main(void)

{

int gd=DETECT, gm;

initgraph(amp; gd, amp; gm, "");

initxy()

initmu(); randbomb();

jisuan();

setcolor(4);

círculo(210, 130, 5); mientras(1)

{

mover();

éxito()

}

}