Programación General > Pascal

 Juego De Invasion De Letras

<< < (2/2)

ProfesorX:

--- Cita de: "M@ye" --- :huh: Hoooola amigos!!!!
este problemilla no me lo resuelven los librillos...
Por que al pasar un proceso de un programa principal a un procedimiento para usarlo luego, éste me de resultados distintos siendo las mismas lineas de codigo cortadas y pegasdas????  :huh:
Graciiiiiiiiiiiiiiiiiias!!!!!!!!!!!
--- Fin de la cita ---
Pues si no pones el codigo fuente es dificil saber porqué, pero, sospecho que se debe a las variables, al pasar tu codigo a un procedimiento, si usas variables locales y parametros por valor, recuerda que un parametro por valor conserva su valor original que tenia antes de entrar al procedimiento, y al salir del procedimiento, cualquier operacion que hayas hecho con las variables se pierde, entonces deberias usar parametros por referencia, aunque como dije, es un tiro a ciegas sin ver el codigo fuente.

Saludos :hola:

M@ye:
:hola: Vamos a ver, este es el procedimiento:

procedure disparo_uno ( var pos_x,pos_y:array of byte;var cont:byte;c:char);
begin
case c of
         'g' :  sidisparan (pos_x [9],pos_y [9],cont);
         'a' :  sidisparan (pos_x [10],pos_y [10],cont);    
         'k' :  sidisparan (pos_x [15],pos_y [15],cont);
         'L' :  sidisparan (pos_x [18],pos_y [18],cont);
 end;
 end;

entonces sucede que cuando lo llamo, si presiono la 'k' hace lo que asigne para la 'a'..... las lineas anteriores a la llamada son:

for i := 9 to max 10
      bajaletra (pos_x ,pos_y ,vida,vtr );

yo inicialice i asi que por eso no es..... Lo que no entiendo es por q funciona bien si escribo las lineas en lugar de llamar al procedimiento.

 :D  :D  :D  Que penita con ustedes, soy novata... Entiendame, todos pasaron por eso (creo)!!!!   :D   :D

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa