Pascal/Turbo Pascal - Problema con matriz y archivo de texto!

   
Vista:

Problema con matriz y archivo de texto!

Publicado por Gustavo (2 intervenciones) el 24/10/2011 21:06:04
Hola que tal? mi problema es el siguiente:
Me mandaron a hacer un trabajo practico que consistia en programar en pascal un juego en el que tenes que llevar cajas con un tipo a unas posiciones predefinidas...
Yo decidi que para mostrar la grilla del juego en pantalla, creaba la grilla en un txt, de ahí lo pasaba a una matriz, y lo mostraba...
El problema es que cuando yo quiero mover al tipo con las instrucciones por teclado, no se mueve... quizás el problema radique en las posiciones iniciales que le asigno al tipo en el algoritmo y las del archivo de texto, cambia en algo?
no les subo el algoritmo entero porq es de 250 lineas aprox...pero si lo necesitan lo subo, espero una respuesta!

gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con matriz y archivo de texto!

Publicado por ramon (2072 intervenciones) el 29/10/2011 14:02:11
Me podrías dar mas información de cuantas cajas y que tipo y posición se supone que en pantalla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con matriz y archivo de texto!

Publicado por ramon (2072 intervenciones) el 29/10/2011 17:06:16
{Un ejemplo de cuadro moviendo lo por la pantalla y dejándolo en la posición que desees.
Como puedes apreciar el dibujo en modo texto es un poquito chungo si no usas los símbolos
extendidos pero algunas configuraciones de teclado no poseen con lo cual dan problema.
A ver si esto te aclara algo.

program juegocua;
uses
crt;
type
cuadropos = record
x, y : integer; {posicion x e y}
num : integer; {numero de cuadro}
end;

string10 = string[10];

var
jugados : array[1..30] of cuadropos;
i : integer;
texto : string10;

procedure cuadro(cx, cy : integer; t : string10;estado : boolean);
begin
if estado = true then
begin
gotoxy(cx + 1,cy);write('------------');
gotoxy(cx,cy + 1);write('|');
gotoxy(cx + 13,cy + 1);write('|');
gotoxy(cx,cy + 2);write('|');
gotoxy(cx + 13,cy + 2);write('|');
gotoxy(cx,cy + 3);write('|');
gotoxy(cx + 13,cy + 3);write('|');
gotoxy(cx + 1,cy + 4);write('------------');
gotoxy(cx + 3,cy + 2);write(t);
end
else
begin
gotoxy(cx + 1,cy);write(' ');
gotoxy(cx,cy + 1);write(' ');
gotoxy(cx + 13,cy + 1);write(' ');
gotoxy(cx,cy + 2);write(' ');
gotoxy(cx + 13,cy + 2);write(' ');
gotoxy(cx,cy + 3);write(' ');
gotoxy(cx + 13,cy + 3);write(' ');
gotoxy(cx + 1,cy + 4);write(' ');
gotoxy(cx + 3,cy + 2);write(' ');
end;
end;

procedure coloca_cuadro(n : integer; tex : string10);
var
tecla : char;
xp, yp : integer;
begin
xp := 1;
yp := 1;
cuadro(xp,yp,tex,true);
repeat
tecla := readkey;
cuadro(xp,yp,tex,false);
if tecla = #80 then
begin
yp := yp + 1;
if yp > 21 then
yp := 21;
end;
if tecla = #72 then
begin
yp := yp - 1;
if yp < 1 then
yp := 1;
end;
if tecla = #77 then
begin
xp := xp + 1;
if xp > 67 then
xp := 67;
end;
if tecla = #75 then
begin
xp := xp - 1;
if xp < 1 then
xp := 1;
end;
cuadro(xp,yp,tex,true);
until (tecla = #13) or (tecla = #27);
if tecla = #13 then
begin
cuadro(xp,yp,tex,true);
end
else
begin
cuadro(xp,yp,tex,false);
end;
end;



begin
clrscr;
coloca_cuadro(1,'PUEVA');
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar