Programación General > Pascal

 The Life For A Ship (buscaminas)

<< < (3/5) > >>

Enko:

--- Cita de: "obandomarco" --- mira ya cree que el aleatorio utilizando el random no se si estara bien, me gustaria que le vieras, pero tengo otra duda como hago para que solo me hago 10 tiburones y  5 barcos y los demas  libres que un if??? o no se
--- Fin de la cita ---

--- Código: Text --- const    NADA = 0;   TIBURON = 1;   BARCO = 2;var  Mar: array[1..10,1..10] of Byte; {Esto inicia el tablero poniendo tiburones y barcos en siempre la misma posicion, despues, con otro procedimiuento se mezcla}procedure Init;var  i,j : integer;begin   for i:=1 to 10 do      for J:=1 to 10 do          Mar[i,j] := NADA;   for i:=1 to 10 do Mar[i,1] := TIBURON;   for  i:=1 to 5 do Mar[i,2] := BARCO;end; {Intercambia dos variables}procedure Intercambiar(var A,B: Integer);var  C: Integer;begin   C := A;   A := B;   B := C;end; {esto mezcla los campos y los desordena, de manera que uno se asegura que hay 10 tiburones y 10 barcos}procedure Mezclar;var   i,j, nI, nJ: integer;begin    for i:=1 to 10 do      for J:=1 to 10 do      begin         nI := RAndom(10)+1;         nJ := RAndom(10)+1;         Intercambiar(Mar[i,j], Mar[nI, nJ];      end;end;  Acordate de Poner un RAndomize al prencipio de todo en el Begin principal.
El codigo velo como un pseudocodigo porque nunca lo probé ya uqe aca no tengo compilador.
nI := RAndom(10)+1;nI := RAndom(10)+1;

Enko:

--- Código: Text --- procedure Guardar(Nombre: String; Puntaje: Integer);var  F: TEXT;begin   Assign(F, 'MejoresPuntajes.txt');{asigna al archivo su direccion}   {&#036;I-} {desactiva control entrada/salida}   Append(F); {intenta poner el puntero al final de archivo, por si este existe}   if IOResult &#60;&#62; 0 then {archivo no existe y hay que recrearlo}    begin     WriteLn('No se encuentra el archivo');     WriteLn('Desea crear uno nuevo');     res := ReadKey;     if (res = 's') or (res = 'S') then ReWrite(F);   end; {&#036;I+}   WriteLn(F, Nombre, '      ', Puntaje); {escribe en el archivo de texto, puntaje y nombre}    Close(F); {cierra el archivo}end;  
en este codigo lo que hace, es intentar escribir al final de un archivo, si este no existe, crea uno nuevo.

Esto hay que hacerlo así porque en TurboPascal (creo que es lo que vos usas) no existe FileExiste(nombre) que te dice si existe un archivo



podes usar el siguente código pero ASEGURATE que haya un ARCHIVO llamado "MejoresPuntajes.txt" enla carpeta de la ejecutable. (de tu programa)

--- Código: Text --- procedure Guardar(Nombre: String; Puntaje: Integer);var  F: TEXT;begin   Assign(F, 'MejoresPuntajes.txt');   Append(F);    WriteLn(F, Nombre, '      ', Puntaje);    Close(F); {cierra el archivo}end;  

obandomarco:
muchisimas gracias!!!, mira tengo un  error en esto

begin
   for i:=1 to 10 do
     for J:=1 to 10 do
     begin
        nI := RAndom(10)+1;
        nJ := RAndom(10)+1;
       Intercambiar(Mar[i,j], Mar[nI, nJ]);
     end;
end;


en intercambiar dice error 26 : type of mismatch (no me deja poner la coma), ya probe cambiandolo de diferentes maneras pero me sale lo mismo, creo que es muy simple pero no encuentre el error...

obandomarco:
ademas del procedimiento de guardar que me diste, puedo usar cualquiera??; para que el usuario busque las cordenadas cuando ya este la matriz lista que procedimiento puedo utilizar...

Enko:

--- Código: Text --- const  NADA = 0;  TIBURON = 1;  BARCO = 2;var Mar: array[1..10,1..10] of Integer; i,j: Integer;{Esto inicia el tablero poniendo tiburones y barcos en siempre la misma posicion,despues, con otro procedimiuento se mezcla}procedure Init;var i,j : integer;begin  for i:=1 to 10 do     for J:=1 to 10 do         Mar[i,j] := NADA;  for i:=1 to 10 do Mar[i,1] := TIBURON;  for  i:=1 to 5 do Mar[i,2] := BARCO;end; {Intercambia dos variables}procedure Intercambiar(var A,B: Integer);var C: Integer;begin  C := A;  A := B;  B := C;end; {esto mezcla los campos y los desordena, de manera que uno se asegura quehay 10 tiburones y 10 barcos}procedure Mezclar;var  i,j, nI, nJ: integer;begin   for i:=1 to 10 do     for J:=1 to 10 do     begin        nI := RAndom(10)+1;        nJ := RAndom(10)+1;        Intercambiar(Mar[i,j], Mar[nI, nJ]);     end;end; begin   Init;   Mezclar;   for j:=1 to 10 do     for i:=1 to 10 do     begin       Write(Mar[i,j], ' ');       if i=10 then WriteLn;     end;  readln;end.  

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa