Programación General > Pascal
Juego De Invasion De Letras
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
[*] Página Anterior
Ir a la versión completa