Programación General > Pascal
Buscaminas
JPVM:
Por casualidad no tenez un codigo fuente o en pseudocodigo para guiarme mejor xq tengo de destapar las celdas, marcar o desmarcar una bomba.
saber si la posición ya se habia digitado
conocer cuantas bombas pueden haber alrededor
y contar la cantidad de marcas que ha realizado y cuantas faltan.
JPVM:
por casualidad tenez el codigo fuente
Enko:
No tengo ningun código fuente y tampoco pseudo pero te hare otras pautas.
Si quieres saber si la posicion ya fue ingresada lo que tienes que hacer es:
Tienes 2 posibildades. En la primera ocupas bastante memoria ya que deberas hacerlo con un vector que te grabe todas las jugadas y en la otra tenes que trabajar con archivos. Te mostrare la de los vectores:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
type
TipoPos = record
X : Byte;
Y : Byte;
end;
var
PosicionesIngresadas : array [0..100] of TipoPos; {Solo entran 100 jugadas}
X,Y : Integer;
PosicionIngresada : TipoPos;
ContadorIngresos : Integer;
SeRepite : Boolean;
BEGIN
ContadorIngresos := 0;
repeat
SeRepite := False;
Write('Ingrese X');
ReadLn(X);
Write('Ingrese Y: ');
ReadLn(Y);
PosicionIngresada.X := X;
PosicionIngresada.Y := Y;
for I := 0 to ContadorIngresos do
begin
if (PosicionesIngresadas[ContadorIngresos].X = PosicionIngresada.X)
or (PosicionesIngresadas[ContadorIngresos].Y PosicionIngresada.Y;)
SeRepite = True;
end;
until not SeRepite;
PosicionesIngresadas[ContadorIngresos].X := PosicionIngresada.X;
PosicionesIngresadas[ContadorIngresos].Y := PosicionIngresada.Y;
Contador Ingresos := ContadorIngresos + 1;
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Para contar la cantidad de bombas alrededor nesecitaras hacer estas comprobación tomando en cuenta que la distancia es de dos casilleros
(Recuerda que tu campo minado es de tipo boolean ) y además hiciste que el usuario te ingrese las cordenadas X,Y. Nesecitaras crear varios if's:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
if CampoMinado[X,Y] then FinJuego;
{ no hace falta poner CampoMinado[X,Y] = True}
if not CampoMinado[X,Y] then
{lo mismo que: CampoMinado[X,Y] = False}
begin
if CampoMinado[X+1,Y] then MinasAlrededor := MinasAlrededor + 1;
if CampoMinado[X+2,Y] then MinasAlrededor := MinasAlrededor + 1;
if CampoMinado[X+2,Y+1] then MinasAlrededor := MinasAlrededor + 1;
if CampoMinado[X+2,Y+2] then MinasAlrededor := MinasAlrededor + 1;
if CampoMinado[X,Y+1] then MinasAlrededor := MinasAlrededor + 1;
if CampoMinado[X,Y+2] then MinasAlrededor := MinasAlrededor + 1;
end;
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Bueno hasta acá llegue. Si no entendes algo no dudes en preguntar.
obandomarco:
NECESITO BUSCAMINAS COMO ESTE PERO NO SE COMO EMPEZAR, QUE HAGO?
Navegación
[*] Página Anterior
Ir a la versión completa