Cita:
program buscaminas;
uses crt;
var
i, j, l, a, q, w, e, r, t, v, m, s :integer;
procedure PedirLongitudYAncho (var l, a, q, w, e, r, t, u, m, s : integer); {Proceso para obtener las dimensiones del tablero, la posicion de la meta, de las minas }
begin
writeln('¿Cual quiere que sea la longitud del tablero?: ');
readln (l);
writeln('¿Cual quiere que sea la anchura del tablero?: ');
readln (a);
writeln('¿Cual quiere que sea coordenada x de la meta?: ');
readln (q);
writeln('¿Cual quiere que sea coordenada y de la meta?: ');{posicion meta}
readln (w);
clrscr;
writeln('¿Cual quiere que sea coordenada x de la mina 1?: ');{posicion minas, 1}
readln (E);
writeln('¿Cual quiere que sea coordenada y de la mina 1?: ');
readln (r);
writeln('¿Cual quiere que sea coordenada x de la mina 2?: ');{posicion minas, 2}
readln (t);
writeln('¿Cual quiere que sea coordenada y de la mina 2?: ');
readln (u);
writeln('¿Posicion del jugador x?: ');
readln (m);
writeln('¿Posicion del jugador y?: ');
readln (s);
clrscr;
end;
procedure DibujarTablero (var i, j, l, a : integer) {Procseo por el cual dibuja el tablero conforme a las dimensiones obtenidas};
var x,y: integer;
begin
x:=1;
y:=1;
repeat
x:=x+1;
gotoxy(x,1);
write('-');
until x=l+1;
repeat
y:=y+1;
gotoxy(1,y);
write('|');
until y=a+1;
end;
procedure DibujarTableroSegundaParte (var i, j, l, a : integer) {este procedure nos permite definir los otros dos lados del tablero evitando entrar en bucle};
var x,y,z : integer;
begin
x:=1;
y:=1;
repeat
x:=x+1;
z:=a+1;
gotoxy(x,z);
write('-');
until x=l+1;
repeat
y:=y+1;
z:=l+1;
gotoxy(z,y);
write('|');
until y=a+1;
end;
procedure DibujarMeta (var q,w : integer) {Procedimiento para situar la meta en el tablero};
begin
gotoxy(q,w);
write('(_)');
end;
procedure Jugador( var m, s : integer);
begin
gotoxy(m, s);write('J');
end;
procedure Moverjugador ( var mov: char; x,y: integer );
begin
gotoxy (m, s); write('J');
mov:=readkey
if (mov='H') then
y:=y-1;
if (mov='P') then
y:=y+1;
if (mov='M') then
x:=x+1;
if (mov='K') then
x:=x-1;
end;
begin
PedirLongitudYAncho ( l, a, q, w, e, r, t, v, m, s );
DibujarTablero (i, j, l, a);
DibujarTableroSegundaParte (i, j, l, a);
DibujarMeta (q, w);
Jugador (m, s);
MoverJugador (x, y);
readln;
end.
uses crt;
var
i, j, l, a, q, w, e, r, t, v, m, s :integer;
procedure PedirLongitudYAncho (var l, a, q, w, e, r, t, u, m, s : integer); {Proceso para obtener las dimensiones del tablero, la posicion de la meta, de las minas }
begin
writeln('¿Cual quiere que sea la longitud del tablero?: ');
readln (l);
writeln('¿Cual quiere que sea la anchura del tablero?: ');
readln (a);
writeln('¿Cual quiere que sea coordenada x de la meta?: ');
readln (q);
writeln('¿Cual quiere que sea coordenada y de la meta?: ');{posicion meta}
readln (w);
clrscr;
writeln('¿Cual quiere que sea coordenada x de la mina 1?: ');{posicion minas, 1}
readln (E);
writeln('¿Cual quiere que sea coordenada y de la mina 1?: ');
readln (r);
writeln('¿Cual quiere que sea coordenada x de la mina 2?: ');{posicion minas, 2}
readln (t);
writeln('¿Cual quiere que sea coordenada y de la mina 2?: ');
readln (u);
writeln('¿Posicion del jugador x?: ');
readln (m);
writeln('¿Posicion del jugador y?: ');
readln (s);
clrscr;
end;
procedure DibujarTablero (var i, j, l, a : integer) {Procseo por el cual dibuja el tablero conforme a las dimensiones obtenidas};
var x,y: integer;
begin
x:=1;
y:=1;
repeat
x:=x+1;
gotoxy(x,1);
write('-');
until x=l+1;
repeat
y:=y+1;
gotoxy(1,y);
write('|');
until y=a+1;
end;
procedure DibujarTableroSegundaParte (var i, j, l, a : integer) {este procedure nos permite definir los otros dos lados del tablero evitando entrar en bucle};
var x,y,z : integer;
begin
x:=1;
y:=1;
repeat
x:=x+1;
z:=a+1;
gotoxy(x,z);
write('-');
until x=l+1;
repeat
y:=y+1;
z:=l+1;
gotoxy(z,y);
write('|');
until y=a+1;
end;
procedure DibujarMeta (var q,w : integer) {Procedimiento para situar la meta en el tablero};
begin
gotoxy(q,w);
write('(_)');
end;
procedure Jugador( var m, s : integer);
begin
gotoxy(m, s);write('J');
end;
procedure Moverjugador ( var mov: char; x,y: integer );
begin
gotoxy (m, s); write('J');
mov:=readkey
if (mov='H') then
y:=y-1;
if (mov='P') then
y:=y+1;
if (mov='M') then
x:=x+1;
if (mov='K') then
x:=x-1;
end;
begin
PedirLongitudYAncho ( l, a, q, w, e, r, t, v, m, s );
DibujarTablero (i, j, l, a);
DibujarTableroSegundaParte (i, j, l, a);
DibujarMeta (q, w);
Jugador (m, s);
MoverJugador (x, y);
readln;
end.