Pascal/Turbo Pascal - random y memoria

 
Vista:

random y memoria

Publicado por palvji (12 intervenciones) el 10/01/2008 12:55:39
Buenas. Mi problema es el siguiente:

Tengo un procedimiento para dar valor aleatorio a los campos de una ficha (numero y color). Este procedimiento se basa en la función RANDOM y es el siguiente:

PROCEDURE Generar_Ficha (VAR Ficha:tFicha);
VAR
a:INTEGER;
BEGIN
RANDOMIZE;
REPEAT
a:=RANDOM (4);
UNTIL (a<>0);
Ficha.Numero:=a;
a:=RANDOM (6);
CASE a OF
0: Ficha.Color:=Blanco;
1: Ficha.Color:=Rojo;
2: Ficha.Color:=Verde;
3: Ficha.Color:=Azul;
4: Ficha.Color:=Amarillo;
5: Ficha.Color:=Violeta;
END;
END;

Sé que funciona, pues lo he probado varias veces. El problema viene cuando quiero rellenar asi todo el tablero y hago:

BEGIN
FOR i:=1 TO 8 DO
FOR j:='A' TO 'H' DO
Generar_Ficha (Tablero[i,j]);
Mostrar_Tablero (Tablero);
readkey;
END.

En el tablero que me muestra, todas las fichas son del mismo color y tienen el mismo numero.

Tras varias pruebas he visto que es por llamar al procedimiento Generar_Ficha tan seguido, pero he de hacerlo para rellenar el tablero.

Se me ocurrió meter una instrucción debajo de la llamada a Generar_Ficha, para ver si cambiaba algo al mantener ocupada a la CPU. Puse un Delay (1) y cambio, pero no lo suficiente. Aparecían 8 o 9 fichas iguales y luego otras 8 o 9 distintas a las anteriores, pero iguales entre sí. Con un Delay (10) ya si que obtengo el resultado esperado, pero no me parece que sea el método más ortodoxo.

Si se puede borrar la memoria del Random o algo asi, agradeceré cualquier ayuda.

Saludos
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:random y memoria

Publicado por Diego Romero (996 intervenciones) el 10/01/2008 15:10:47
Saca la llamada a Randomize fuera del procedimiento, por ejemplo ponlo inmediatamente después del begin principal del programa.
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

RE:random y memoria

Publicado por palvji (12 intervenciones) el 12/01/2008 16:14:19
Si señor, que tio más grande Diego Romero.

Muchísimas gracias.
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

RE:random y memoria

Publicado por oswaldo (3 intervenciones) el 20/02/2008 16:08:03
mira nesesito saver dec foxpro relasionado con la toma de desiciones
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