Hola Agustín.
Gracias por tu interés.
En Madrid son mas de las 12 de la noche y estoy cansado. Mañana reviso el enlace.
Las funciones de comprobación son muy simples.
Te pongo un par de ellas de las más complicadas:
Código Delphi
[-] function Fila(Tablero: TTablero; y,n: Integer): boolean;
var
x: Integer;
begin
Result:= TRUE;
x:= 0;
while (x < NUM_COLUMNAS) and Result do
begin
if Tablero[x,y] = n then
Result:= FALSE;
inc(x);
end;
end;
function Valido(Tablero: TTablero; x,y,n: Integer): boolean;
begin
Result:= Fila(Tablero,y,n) and Columna(Tablero,x,n)
and Cuadrante(Tablero,x,y,n);
end;
function Obvio(Tablero: TTablero; x,y: Integer): Integer;
var
i,j,n: Integer;
begin
j:= 0; n:= 0;
for i:=1 to 9 do
if Valido(Tablero,x,y,i) then
begin
n:= i;
inc(j);
end;
if j=1 then
Result:= n
else
Result:= 0;
end;
He estado haciendo mediciones de tiempo en distintos dispositivos:
En la Tablet Samsung Galaxy Tab3 tarda 31/32 seg.
En teléfono Samsung Galaxy S III mini 12 seg.
En teléfono Samsung Galaxy A3 7 seg.
Está claro que depende del procesador implicado.
Creo que me va a servir el enlace que me has dejado. Estoy convencido de que sólo necesito no dejar la pantalla en negro, para que el usuario no quede sorprendido y desinformado.
Buenas noches para mi y buenas tardes para ti.
Saludos.