Pascal/Turbo Pascal - hundir la flota

 
Vista:

hundir la flota

Publicado por javi (15 intervenciones) el 02/12/2003 22:51:25
Estoy haciendo el juego del hundir la flota en turbo pascal, pero me he atascado a la hora de colocar los barcos aleatoriamente por el tablero porque resulta que hay que dejar una posicion libre alrededor de cada barco.He hecho este código pero se me queda bloqueado siempre a ver si lo podeis mirar por que falla:
procedure inicializa_barcos(var tab:ttablero;letra:char;ocupa:shortint);
begin
colocado:=false;posible:=false; x:=0;contador:=0;
repeat
while ((x=0) or (y=0)) and (posible=false) do
begin
x:=random(9);y:=random(9);
if vertical then
for i:=1 to ocupa do
if comprueba_coord(tab,x-1+i,y) then
begin
tab[x-1+i,y]:=letra;posible:=true;
inc(contador)
end
else posible:=false
else
for i:=1 to ocupa do
if comprueba_coord(tab,x,y-1+i) then
begin
tab[x,y-1+i]:=letra;
posible:=true;
inc(contador)
end
else posible:=false;
colocado:=contador=ocupa;
end;
until colocado=true;
end;
Lo siento si es muy largo el mensaje pero es que ya llevo bastante tiempo con este procedimiento y nada a ver si me podeis ayudar 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

RE:hundir la flota

Publicado por Morito (176 intervenciones) el 06/12/2003 02:58:11
Me puedes enviar el programa por mail y ahí te ayudo, hay un comando de la crt que hace las cosas aleatorias, es Random parece, disculpa si la respuesta es muy corta pero ando de pasada no más po'.

Saludos
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:hundir la flota

Publicado por Diego Romero (786 intervenciones) el 06/12/2003 15:15:10
Mira, a tu código de ejemplo le falta agregar qué hace la función comprueba_coord aunque me lo imagino. De todos modos se me ocurre de pasada que podrías intentar lo siguiente: en vez de tratar de ubicar los casilleros exactos de la nave mejor trata de ubicar la nave más un casillero alrededor de modo que si la nave ocupa dos casilleros tú tomarías 12 casilleros. Y empieza por las naves más chicas primero. Sin embargo hacerlo así tiene un pequeño inconveniente, las naves nunca estarán al borde del tablero pero creo que puedes resolver esto si aguzas el ingenio.
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:hundir la flota

Publicado por susana (1 intervención) el 06/12/2003 16:43:45
me la podriais enviar por favor? 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:hundir la flota

Publicado por javi (15 intervenciones) el 20/12/2003 19:49:18
Gracias por vuestras respuestas, ya he resuelto el problema. Lo he hecho de otra forma, si el barco ocupa 4 posiciones pues hago un random del máximo de la tabla (8) menos lo que ocupa para que no me de problemas, asi solo me tengo que preocupar de que no haya ningún barco alrededor
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

hundir la flota

Publicado por jorge (1 intervención) el 20/12/2007 20:33:54
hola acabo de ver en internet q puedes tener el programa hundir la flota en .pas (pascal) si m haces el favor de enviarmelo te lo agradeceria , muchas gracias y saludos!
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