Ver Mensaje Individual
  #8  
Antiguo 26-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Por cierto en el ejemplo anterior, mi tablero tiene forma de donut, aunque en el tablero clasico parece ser que no es asi, es decir cuando se llega a un borde ya no se puede continuar. Cambiando la rutina "Contar" por esta otra se soluciona el problema:

Código Delphi [-]
function TfrmMain.Contar(i,j: Integer): Integer;
var
  x,y: Integer;
begin
  Result:= 0;
  for x:= i-1 to i+1 do
    for y:= j-1 to j+1 do
    begin
      if (x>=0) and (x < COLUMNAS) and (y>=0) and (y < FILAS) then
        if Tablero[x,y] then
          inc(Result);
    end;
  if Tablero[i,j] then
    dec(Result);
end;

Este cambio es necesario para que funcione el siguiente ejemplo sacado de la wikipedia. Pistola de planeadores de Gosper (Gosper Glider Gun)

Aqui os dejo el tablero, solo hay que cargarlo y darle a evolucionar
Archivos Adjuntos
Tipo de Archivo: zip Gosper.tab.zip (209 Bytes, 53 visitas)
Responder Con Cita