Programación General > Pascal
The Life For A Ship (buscaminas)
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} {$I-} {desactiva control entrada/salida} Append(F); {intenta poner el puntero al final de archivo, por si este existe} if IOResult <> 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; {$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
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa