Pascal/Turbo Pascal - ¿? ni ideaa de como hacerlo

 
Vista:

¿? ni ideaa de como hacerlo

Publicado por rodrigo (8 intervenciones) el 09/03/2007 02:01:54
que ondaaa estoy viendo pascal y tengo un pqueño problema en una tareaaa...
tengo q hacer q una flecha vaya por la pantalla y al llegar a una cordenada la lea.. y se agregue otra fecha atras... y al llegar a la 2da cordenada la lea.. y se agregue otra flecha mas... asi cada ves que lea una cordenada se va agregar una flecha mas, entonces la cola de la flecha va hacer mas grande....
ya logre hacer q la flecha lea la cordenada pero como le hago para agregar la flechaa atraas? que ciclo o piocedimientos necesitoo? si alguein tiene alguna ideaa de como hacerloo seriooo super util.. mas o menos es el principio del snake de los celulares... pero algo mas sencillo.. muchas grax
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

RE:¿? ni ideaa de como hacerlo

Publicado por Carlos Guimaraenz (265 intervenciones) el 09/03/2007 02:34:15
Hola Rodrigo!
Puedes usar un array, debes considerar cuál es la longitud máxima que tendrá el tren de flechas.
Te propongo una definición de tipos:

type
TCoordenada = record
x,y : byte; {o word si es que trabajas en modo gráfico}
end;

TSerpiente = record
posicion : Array[1..max] of TCoordenada;
dimLogica : byte;
end;

La dimLogica la actualizas a medida que creas nuevas flechas
Luego, declaras las variables:

var
Serpiente : TSerpiente;

En el programa, para avanzar, primero hago que cada nodo tome la posición del nodo que lo precede, y luego actualizo la posición del primero:

for i:=Serpiente.dimLogica downTo 2 do
Serpiente[i].posicion := Serpiente[i-1].posicion;
AvanzarCabeza; { aquí usas la lógica para avanzar }

No hace falta dibujar todos los nodos... simplemente dibujas el primero en su nueva posición, y borras la última (si no es que creaste en ese momento un nuevo nodo).

Cuando creas cada nodo, lo que haces es aumentar en 1 dimLogica y luego situar las coordenadas en Serpiente[Serpiente.dimLogica]

Espero haberme hecho entender, si no es así, avisame.

Un abrazo!
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