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


0