¡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> 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) p>
{
int clave;
clave=bioskey(1);
if(clave)
clave= bioskey(0);
if( key==0x4800)
{
if(currentygt;130)
{ p>
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)
{ p>
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()
}
}