Red de conocimiento de abogados - Derecho de sociedades - ¿Qué juegos se pueden programar usando Pascal?

¿Qué juegos se pueden programar usando Pascal?

Utilizando unidades crt, puedes programar algunos juegos sencillos. Por ejemplo, Serpiente, Sokoban, Buscaminas, etc. Estos son juegos que he programado y el código se adjunta a continuación.

Snake:

programa ella;

usa crt;

etiqueta 1,2,3;

escriba point=record

x,y:1..20;

end;

escriba shuzu=array:='#';

p>

a:='#';

end;

a:='o';a:='o';a:='?;

ejecutó;

1:

c:=false;

clrscr;

print(a);

para i:=1 a 300

comience

retraso(1);

si (tecla presionada)y(no(c )) entonces

clave de lectura de casos de

#72:

if (f=3)o(f=4) entonces comience f:=1;c :=true; fin;

#80:

si (f=3)o(f=4) entonces comienza f:=2;c:=true fin;

#75:

si (f=1)o(f=2) entonces comienza f:=3;c:=true end;

#77:

si (f=1)o(f=2) entonces comienza f:=4;c:=true end;

#27:

comienza

writeln('¿Quieres salir (S/N)?');

repetir

readln(s);

si (s='Y')o(s='y') entonces deténgase;

hasta (s='N')o(s='n');

ir a 1;

fin;

fin;

fin;

a[b[cola].x,b[cola] ].y]:='o';

caso f de

1:

comenzar

if (a[b[ tail].x-1,b[tail].y]='#')o

((a[b[tail].x-1,b[tail].y]='o ')y(no((b[cola].x-1=b[cabeza mod 1001].x)y(b[cola].y=b[cabeza mod 1001].y)))) luego vaya a 2;

si a[b[tail].x-1,b[tail].y]=chr(2) entonces

comenzar

fen:=fen+10;

ran;ran2

fin

otro

comenzar

cabeza :=cabeza mod 1001;

a[b[cabeza].x,b[cabeza].y]:=' ';

end;

tail:=tail+1;

si tail=1001 entonces

comenzar

tail:=1;

b[ 1].x:=b[1000].x-1;b[1].y:=b[1000].y;

end

else

comenzar

b[cola].x:=b[cola-1].x-1;b[cola].y:=b[cola-1].y;

e

nd;

fin;

2:

comenzar

si (a[b[cola].x+1,b[ tail].y]='#')o

((a[b[tail].x+1,b[tail].y]='o')y(not((b[ tail].x+1=b[head mod 1001].x)and(b[tail].y=b[head mod 1001].y)))) luego vaya a 2;

si a[b[tail].x+1,b[tail].y]=chr(2) entonces

comenzar

fen:=fen+10;

ran;ran2

end

else

comenzar

head:=head mod 1001;

a[b[cabeza].x,b[cabeza].y]:=' ';

end;

cola:=cola+1;

si tail=1001 entonces

comenzar

tail:=1;

b[1].x:=b[1000 ].x+1;b[1].y:=b[1000].y;

fin

otro

comenzar

b[cola].x:=b[cola-1].x+1;b[cola].y:=b[cola-1].y;

end;

fin;

3:

comenzar

if (a[b[cola].x,b[cola].y-1] ='#')o

((a[b[cola].x,b[cola].y-1]='o')y(no((b[cola].x= b[head mod 1001].x)y(b[tail].y-1=b[head mod 1001].y)))) luego vaya a 2;

si a[ b[tail].x,b[tail].y-1]=chr(2) luego

comenzar

fen:=fen+10;

ran;ran2

fin

else

comenzar

head:=head mod 1001;

a[b[cabeza].x,b[cabeza].y]:=' ';

end;

cola:=cola+1;

si tail=1001 entonces

comenzar

tail:=1;

b[1].x:=b[1000].x;b [1].y:=b[1000].y-1;

fin

else

comenzar

b[cola ].x:=b[cola-1].x;b[cola].y:=b[cola-1].y-1;

fin;

fin ;

4:

comenzar

if (a[b[tail].x,b[tail].y+1]='#') o

((a[b[tail].x,b[tail].y+1]='o')and(not((b[tail].x=b[head mod 1000 +1].x)and(b[tail].y+1=b[head mod 1001].y)))) luego vaya a 2;

si a[b[tail]. x,b[cola].y+1]=chr(2) entonces

>comenzar

fen:=fen+10;

ran;ran2

finalizar

else

comenzar

head:=cabeza mod 1001;

a[b[head].x,b[head].y]:=' ';

fin;

cola:=cola+1;

si cola=1001 entonces

comenzar

cola:=1;

b[1].x:=b[1000].x;b[1].y:=b[1000].y+1;

fin

else

comenzar

b[cola].x:=b[cola-1].x;b[cola].y:=b[cola-1] .y+1;

fin;

fin;

fin;

a[b[cola].x,b[ tail].y]:='?;

ir a 1;

2:writeln('¡Juego terminado!Puntuación:',fen);

writeln ('¿Reproducir de nuevo(Y/N)?');

repetir

readln(s);

if (s='Y')o( s='y') luego vaya a 3;

si (s='N')o(s='n') luego deténgase;

hasta (s='Y' )o(s='y')o(s='N')o(s='n');

fin.

Sokoban (archivo principal):

programa tuixiang;

usa crt,tx,dos;

etiqueta 1,2,3,4,5;

var f: text;n,p,q,i,j:integer;s1,s:string;

a:sz1;b:sz2;top:integer;ren:poi;

procedimiento incorrecto;

comenzar

sonido(300);

retraso(100);

sin sonido;

end;

función over:boolean;

var i:integer;

comenzar

para i:=1 arriba hacer

si a[b[i].x,b[i].y]<>' entonces salir(falso);

salir(verdadero);

fin;

comenzar

modo de texto(1);cursoroff;

video alto;

ventana(15,7, 30 ,25);

write('Elija una unidad (1~11):');

read(n);

2:str ( n,s1);s:='c:\map'+s1+'.in';

print(n,ren,a,b,top);

asignar ( f,s);

reset(f);

readln(f,i);

for j:=1 que hago

readln(f,p,q);

readln(f,p,q);

cerrar(f);

1: caso clave de lectura de

#72:<

/p>

si (a[ren.x-1,ren.y]=' ')o(a[ren.x-1,ren.y]='o') entonces

comenzar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' si no a[ren.x,ren.y ]:=' ';

a[ren.x-1,ren.y]:=chr(2);

ren.x:=ren.x-1;

end

else

si a[ren.x-1,ren.y]=chr(233) entonces

si (a[ren.x-2,ren.y]=' ')o(a[ren.x-2,ren.y]='o') entonces

comenzar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' else a[ren.x,ren.y]:=' ';

a[ren.x-1,ren.y]:=chr(2);a[ren.x-2,ren.y]:=chr(233);

ren.x:=ren.x-1;

final

más mal

más

mal;

#80:

if (a[ren.x+1,ren.y]=' ')o(a[ren.x+1,ren.y]='o') entonces

comenzar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' else a[ ren.x,ren.y]:=' ';

a[ren.x+1,ren.y]:=chr(2);

ren.x: =ren.x+1;

end

else

si a[ren.x+1,ren.y]=chr(233) entonces

si (a[ren.x+2,ren.y]=' ')o(a[ren.x+2,ren.y]='o') entonces

comenzar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' si no a[ren.x,ren.y ]:=' ';

a[ren.x+1,ren.y]:=chr(2);a[ren.x+2,ren.y]:=chr(233) ;

ren.x:=ren.x+1;

final

más mal

más

incorrecto;

#75:

if (a[ren.x,ren.y-1]=' ')o(a[ren.x,ren.y- 1]='o') entonces

comenzar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]: ='o' else a[ren.x,ren.y]:=' ';

a[ren.x,ren.y-1]:=chr(2);

ren.y:=ren.y-1;

e

nd

else

si a[ren.x,ren.y-1]=chr(233) entonces

si (a[ren.x, ren.y-2]=' ')o(a[ren.x,ren.y-2]='o') entonces

comienza

si dong(ren. x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' else a[ren.x,ren.y]:=' ';

a [ren.x,ren.y-1]:=chr(2);a[ren.x,ren.y-2]:=chr(233);

ren.y:=ren .y-1;

final

más mal

más

mal;

#77:

si (a[ren.x,ren.y+1]=' ')o(a[ren.x,ren.y+1]='o') entonces

empezar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' si no a[ren.x,ren.y ]:=' ';

a[ren.x,ren.y+1]:=chr(2);

ren.y:=ren.y+1;

end

else

si a[ren.x,ren.y+1]=chr(233) entonces

si (a[ren.x,ren.y+2]=' ')o(a[ren.x,ren.y+2]='o') entonces

comenzar

si dong(ren.x,ren.y,top,b) entonces a[ren.x,ren.y]:='o' else a[ren.x,ren.y]:=' ';

a[ren.x,ren.y+1]:=chr(2);a[ren.x,ren.y+2]:=chr(233);

ren.y:=ren.y+1;

final

más mal

más

mal;

#27:

comenzar

escribir('¿Estás seguro de salir (S/N)?');

4:readln(s1 );

si (s1='y')o(s1='Y') entonces

comienza

textmode(lo(lastmode));

detener

finalizar

más

si (s1<>'n')y(s1<>'N') entonces ir a 4;

fin;

else

ir a 1;

fin;

pr(p,q ,top,a,b);

si termina entonces

comienza

borrar(f);

si n=11 entonces

begin

write('¡Felicidades!Juega de nuevo

n(Y/N)?');

5:readln(s1);

si (s1='y')o(s1='Y') entonces

comenzar

n:=1;ir a 2;

finalizar

else

if (s1='n ')o(s1='N') luego detener

else ir a 5;

end;

escribir('¡Felicitaciones! Ir a la siguiente unidad(Y /N)?');

3:readln(s1);

si (s1='y')o(s1='Y') entonces

comenzar

n:=n+1;ir a 2;

finalizar

else

if (s1='n' )o(s1='N') luego detener

else ir a 3;

end;

ir a 1;

end.

Sokoban (con unidad):

unidad tx;

interfaz

usa crt;

tipo poi =record

x,y:integer;

end;

tipo sz1=array[1..50,1..50]of char <; /p>

tipo sz2=array[1..10]de poi;

función dong(x,y,top:integer;var b:sz2):boolean;

procedimiento print(x:integer;var ren:poi;var a:sz1;var b:sz2;var top:integer);

procedimiento pr(x,y,top:integer;a : sz1;b:sz2);

implementación

función dong(x,y,top:integer;var b:sz2):boolean;

var i :integer;

comenzar

for i:=1 arriba hacer

if (b[i].x=x)y(b[i ] .y=y) luego salir(true);

salir(false);

end;

procedimiento print(x:integer;var ren: poi ;var a:sz1;var b:sz2;var top:integer);

var f:text;s1,s:string;

procedimiento prsc;

var i,j,m,n:integer;

comenzar

clrscr;

asignar(f,s);

reset(f);

readln(f,top);

para i:=1 arriba hacer

readln(f,b[i ] .x,b[i].y);

readln(f,m,n);

para i:=1 a m do

para j:=1 a n hacer

comenzar

textcolor(15);

si dong(i,j,top,b) entonces textcolor(12) ;

leer(f,

a[i,j]);escribir(a[i,j]);

si a[i,j]=chr(2) entonces

comenzar

ren.x:=i;

ren.y:=j;

fin;

si j=n entonces

comenzar

readln(f);

escribir

fin;

fin;

cerrar( f);

fin;

comenzar

str(x,s1);s:='c:\map'+s1+'.in';

asignar(f,s);reescribir(f);

caso x de

1:

comenzar

writeln(f,3);

writeln(f,5,' ',2);

writeln(f,6,' ',2); p>

writeln(f,7,' ',2);

writeln(f,9,' ',8);

writeln(f,' ## ###');

writeln(f,'#### #');

writeln(f,'# # ?#');

writeln(f,'# ? #');

writeln(f,'#o ####');

writeln(f,'#o # ? # ');

writeln(f,'#o# # # ');

writeln(f,'### # ');

writeln(f,' ##### ');

end;

2:

comenzar

writeln( f, 5);

writeln(f,6,' ',2);

writeln(f,7,' ',2);

writeln( f,7,'',3);

writeln(f,7,'',4);

writeln(f,7,'',5);

p>

writeln(f,8,' ',6);

writeln(f,' #### ');

writeln(f ,'## # ');

writeln(f,'#?# ');

writeln(f,'##?##');

writeln (f,'## ?#');

writeln(f,'#o? #');

writeln(f,'#oo疛# ');

escribir(f,'###### ');

fin;

3:

comenzar

escribir(f,3);

escribir(f,4,' ',8);

escribir(f,5,' ',8 );

p>

escribir(f,6,' ',8);

escribir(f,9,' ',9);

escribir (f,'## ### ');

writeln(f,'# # ');

writeln(f,'#殚# ###');

writeln(f,'# ?# #o#');

writeln(f,'### ###o#');

writeln(f,' ## o#');

writeln(f,' ## #');

writeln(f,' # ####');

writeln(f,' ##### ');

end;

4:

comenzar

escribir(f,4);

escribir(f,3,'',5);

escribir(f,3,'',6);

escribir(f,4,'',5);

escribir(f,4,'',6 );

writeln(f,10,' ',7);

writeln(f,' #### ');

writeln(f ,'### ##');

writeln(f,'# ?oo#');

writeln(f,'# # oo#'); p>

writeln(f,'# #?##');

writeln(f,'# # #');

writeln(f,' # ? #');

writeln(f,'## ? #');

writeln(f,' # ###');

escribir(f,' #### ');

end;

5:

comenzar

escribir(f, 3) ;

escribir(f,5,' ',2);

escribir(f,6,' ',2);

escribir( f, 7,' ',2);

writeln(f,8,' ',8);

writeln(f,' #### ');

escribir(f,' # ### ');

escribir(f,' # ? # ');

escribir(f,'### # # #');

writeln(f,'#o# # #');

writeln(f,'#o? # #');

writeln(f,'#o ?#');

writeln(f,'########');

end;

6:

comenzar

escribir(f,5);

escribir(f,2,' ',7);

writeln(f,3,' ',7);

writeln(f,4,' ',7);

writeln(f,5,' ' ,7 );

escribir(f,6,' ',7);

escribir(f,10,' ',8);

escribir (f ,' ###');

writeln(f,' #o#');

writeln(f,' #####o#');

p>

writeln(f,'## ? o#');

writeln(f,'# 殚o#');

writeln( f,'# ? o#');

writeln(f,'### ## #');

writeln(f,'# ? #');

writeln(f,'# ###');

writeln(f,'###### ');

end;

7:

comenzar

escribir(f,5);

escribir(f,2,' ',4);

escribir(f,2,'',5);

>

escribir(f,3,' ',3);

escribir(f,3,' ',4);

escribir(f,3,' ' ,5);

writeln(f,10,' ',7);

writeln(f,' #### ');

writeln (f,' ##oo# ');

writeln(f,' #ooo# ');

writeln(f,'## ?# '); p>

writeln(f,'# ? ');

writeln(f,'# #?##');

writeln(f,'# # ? #');

writeln(f,'# #');

writeln(f,'######');

writeln (f,' ### ');

end;

8:

comenzar

writeln(f,6

escribir(f,5,' ',5);

escribir(f,5,' ',6);

escribir(f); ,6 ,'',5);

writeln(f,6,'',6);

writeln(f,7,'',5);

writeln(f,7,' ',6);

writeln(f,11,' ',9);

writeln(f,' ### #' );

writeln(f,'###### #');

writeln(f,'# #');

writeln( f,'# ## #');

writeln(f,'## #oo #');

writeln(f,'##?oo?# ') ;

writeln(f,'# #oo ##');

writeln(f,'# ## #');

writeln (f ,'# #');

writeln(f,'###### #');

writeln(f,' ####');

p>

fin;

9:

comenzar

escribir(f,5);

escribir (f,4 ,'',5);

writeln(f,5,'',4);

writeln(f,5,'',5);

writeln(f,6,' ',4);

writeln(f,6,' ',5);

writeln(f,8, ' ',7 );

escribir(f,' #### ');

escribir(f,' # # ');

escribir (f,' ### ? ');

writeln(f,'# 殚o##');

writeln(f,'# 薛o #');

writeln(f,'# 薛o #');

writeln(f,'# ###');

writeln(f,' #### # ');

end;

10:

comenzar

escribir(f,4);

writeln(f,5,' ',4);

writeln(f,6,' ',4);

writeln(f,7,' ',4) ;

escrito

teln(f,8,' ',4);

writeln(f,12,' ',6);

writeln(f,' #### ');

writeln(f,'## ##');

writeln(f,'# ? #');

writeln(f,'# ?#');

writeln(f,'###o #');

writeln(f,' #o #');

writeln(f,' #o##');

writeln(f,'###o #');

writeln(f,'# ?#');

writeln(f,'# ?#');

writeln(f,'# ##');

writeln(f,'## ### ');

fin;

11:

comenzar

escribir(f,4);

escribir(f,5,'',4);

escribir(f,5,'',5);

escribir(f,6,'', 4);

writeln(f,6,' ',5);

writeln(f,9,' ',7);

writeln( f,'##### ');

writeln(f,'# ###');

writeln(f,'# ? #'); p>

writeln(f,'# ? #');

writeln(f,'# 薛o #');

writeln(f,'# ## oo #');

writeln(f,' ##?#');

writeln(f,' # #');

writeln( f,' ####');

end;

end;

cerrar(f);

prsc ;

fin;

procedimiento pr(x,y,top:integer;a:sz1;b:sz2);

var i,j:integer ;

comenzar

clrscr;

para i:=1 a x hacer

para j:=1 a y hacer

comenzar

textcolor(15);

si dong(i,j,top,b) entonces textcolor(12);

escribir (a [i,j]);

si j=y entonces escribe

end;

end;

end.

Remoción de minas:

programa saolei;

usa crt;

etiqueta 1,2,3,4;

var a,b:array[1..14,1..14]of char;i,j,t,t2,l:integer;s:string;

procedimiento ejecutado;

var p:integer;nu:integer;

comenzar

aleatorizar;

for i:=1 to t do

para j:=1 a t hacer

comenzar

b[i,j]:='?;a[i,j]:='?;

fin;

para p:=1 a t2 hacer

>

comenzar

repetir

i:=random(t)+1;j:=random(t)+1;

hasta que (a [i,j]='?)y(not((i=1)y(j=1)));

a[i,j]:='';

end;

para i:=1 para t hacer

para j:=1 para t hacer

si a[i,j]=' ? entonces

comenzar

nu:=0;

si (i>1)y(j>1) entonces si a[i-1,j] -1]='' entonces inc(nu);

si (i>1) entonces si a[i-1,j]='' entonces inc(nu);

si (i>1)y(j

si (j>1) entonces si a [i,j-1]='' entonces inc(nu);

si (j p>

si (i1) entonces si a[i+1,j-1]='' entonces inc(nu);

si (i

si (i

si nu>0 entonces a[i,j]:=chr(ord('0')+nu);

end ;

i:=1;j:=1;

end;

impresión del procedimiento;

var p,q :integer ;

comenzar

clrscr;

para p:=1 para no hacer

para q:=1 para no hacer

p>

comenzar

si b[p,q]='' entonces textcolor(12);

si (p=i)y(q= j) luego textcolor (8);

escribir(b[p,q]);

si q=t entonces writeln;

textcolor(15) ;

end;

writeln('last:',l);

end;

procedimiento incorrecto;

comienzo

sonido(300);

retraso(100);

sin sonido

fin;

procedimiento buscar (x,y:entero);

comenzar

b[x,y]:=a[x,y];

si b[x, y]<>'? luego salir;

if (x>1)y(b[x-1,y]='?) entonces buscar(x-1,y);

si (y>1)y(b[x,y-1]='?) entonces encuentre(x,y-1);

si (x

if (x>1)and(y>1)and(b[x-1,y-1]='? ) luego encuentre(x-1,y-1);

if (x>1)and(y

si (x1)y(b[x+1,y-1]='?) entonces encuentre(x+ 1 ,y-1);

si (x

fin;

procedimiento print2;

var p,q:integer;

comenzar

clrscr;

para p:=1 para t hacer

para q:=1 para t hacer

comenzar

si b [p,q]='' luego

comenzar

textcolor(12);

escribir(b[p,q]);

fin

else

if (a[p,q]='') entonces

comenzar

textcolor( 9 );

escribir(a[p,q]);

fin

si no escribir(b[p,q]);

si q=t entonces writeln;

textcolor(15);

end;

end;

función wan: booleano ;

var p,q:integer;

comenzar

para p:=1 hasta t hacer

para q:= 1 qué hacer

si b[p,q]='? entonces salir(false);

exit(true);

end;

finalizar p>

comenzar

textmode(1);cursoroff;

ventana(12,8,30,25);

3:clrscr;

writeln('Por favor, elija el nivel:');

writeln('1--fácil 2--normal3--difícil');

4: clave de lectura de caso de

'1':begin t:=11;t2:=20;

'2':begin t:=12;t2 :=30; fin ;

'3':comienzo t:=14;t2:=50; fin;

si no, vaya a 4;

fin;

l:=t2;

ran;

print;

1:case readkey de

# 72:si i> 1 entonces dism(i) en otro caso incorrecto;

#80:si i

#75:si j>1 entonces dism(j) de lo contrario está mal;

#77:si j

#27:

comenzar

escrito('

¿Quieres salir (Y/N)?');

repetir

readln(s);

if (s='Y')o (s='y') luego detener;

hasta (s='n')o(s='N');

finalizar;

'j':

comenzar

b[i,j]:=a[i,j];

si b[i,j]=' ? entonces buscar(i,j);

si b[i,j]='' entonces comenzar print2;goto 2;end;

end;

'k':if (l>0)and(b[i,j]='?) entonces comience b[i,j]:='';dec(l);

'l':if b[i,j]='' entonces comienza b[i,j]:='?;inc(l);

else goto 1;

end;

print;

si no (wan) entonces vaya a 1;

writeln('¡Felicitaciones! ¿Jugar una vez más (Y/N)? ');

repetir

readln(s);

si (s='N')o(s='n') entonces detener;

si (s='Y')o(s='y') entonces vaya a 3;

hasta s='y';

2:writeln ('¡Se acabó el juego! ¿Jugar una vez más (Y/N)?');

repetir

readln(s);

if (s='N) ')o(s='n') luego detente;

si (s='Y')o(s='y') luego pasa a 3;

hasta s= 'y';

end.

Además, programé Snake en C++ y te lo proporcioné.

#include

#include

usando el espacio de nombres std;

punto de estructura

{corta x,y;

};

char a[22][42];bool f;corta i,j,fa;corta x[5], y[5];

punto s[1001];short h,t,p,q;char st;

short juage()

{if (GetKeyState(VK_UP)<0)

if (fa>=3) {f=true;fa=1;return(0);}

if (GetKeyState(VK_DOWN) <0)

if (fa>=3) {f=true;fa=2;return(0);}

if (GetKeyState(VK_LEFT)<0)

if (fa<=2) {f=true;fa=3;return(0);}

if (GetKeyState(VK_RIGHT)<0)

if (fa<=2) {f=true;fa=4;return(0);}

if (GetKeyState(27)<0)

{cout<<" ¿Realmente quieres salir (Y/N)? ";

while (true)

{cin>>st;

if (st==) 'Y' || st=='y') salida(0); else

if (st=='N' || st=='n') descanso;

}

}

}

ejecución corta()

{srand(time(0));

corto x,y;

mientras (verdadero)

{

x=rand()%21;y=rand()%40 +1;

if (a[x][y]==' ') a[x][y]='T';return(0);

}

}

int main()

{x[1]=-1;y[1]=0;

x[ 2]=1;y[2]=0;

x[3]=0;y[3]=-1;

x[4]=0;y[ 4]=1;

cout<<" Snake\n";

cout<<"Este programa fue desarrollado por Zhang Kai, Clase 12, Grado 09, Liaocheng No. 1 Escuela Secundaria\n" ;

cout<<" Todos los derechos reservados, cualquier reproducción será investigada\n";cout<

cout<<"Juego descripción:\n";

p>

cout<<" Las teclas de flecha controlan la dirección, salida Esc\n";

system("pause");

sta:

para (i=1;i<=20;i++)

para (j=1;j<=40;j++)

a[i][j]=' ' ;

para (i=0;i<=4

1;i++) {a[0][i]='#';a[21][i]='#';}

para (i=1;i<=20;i++) {a[i][0]='#';a[i][41]='#';}

a[1][1]='0';a[1][ 2]='0';a[1][3]='8';ran();

h=0;t=3;s[1].x=1;s[1 ].y=1;s[2].x=1;s[2].y=2;s[3].x=1;s[3].y=3;fa=4;

l1:

sistema("cls");

para (i=0;i<=21;i++)

{para (j =0;j<=41;j++) cout<

cout<

}

f= false;

for (i=1;i<=15;i++)

{Sleep(1);if (!f) juage();}

p=s[t].x+x[fa];q=s[t].y+y[fa];

if (a[p][q]=='# ' || (a[p][q]=='0' && !(p==s[h+1].x && q==s[h+1].y))) ir a l2;

a[s[t].x][s[t].y]='0';

if (a[p][q]=='T')

{a[p][q]='8';t++;if (t==1001)t=1;s[t].x=p;s[t].y=q; corrió();

}

else

{h++;if (h==1001) h=1;a[s[h].x] [s[h].y]=' ';a[p][q]='8';

t++;if (t==1001) t=1;s[t].x =p;s[t].y=q;

}

ir a l1;

l2:

cout<<" ¡Se acabó el juego! ¿Jugar de nuevo (Y/N)? ";

while (true)

{cin>>st;

if (st= =' Y' || st=='y') ir a sta;

if (st=='N' || st=='n') return(0);

}

}