Técnicasbásicas
las que usa este código para resolver

Candidatodescubierto (Open Singles):

Esto más que una técnica es lógica, si en alguna línea, columna o caja solo falta un número lo pondremos para completarla.


Posiciónúnica (Single Position):

Esta técnica es una de las más fáciles y usadas, elige una línea, columna o caja com pocas casillas en blanco.

Lo que haremos es buscar los números faltantes en la línea, columna o caja y, a continuación, comprobaremos cuales son candidatos en cada casilla.

En este ejemplo (línea amarilla) faltan el 1, 2 y 3.
El 1 puede ir en dos columnas, pasamos al siguiente...
El 2 solo puede ir en la primera casilla en la segunda casilla la clomuna ya lo contiene y en la última casilla lo contiene la caja, así que ya podemos ubicar el 2.
Ahora el 1 ya solo puede ir en una casilla, la segunda.
Y eso hace que el 3 quede ubicado en la última.

Tambien podemos hacer lo mismo con cajas, en la caja inferior izquierda faltan 1, 5, 6 y 8.
El 1 podría ir en cualquier casilla, así que lo dejamos.
El 5 solo puede ir en la casilla inferior izquierda.
El 6 solo puede ir en la central derecha.
El 8 solo le quedaría ubicarlo en la inferior central.
Esto dejaría solo la casilla central izquierda para el 1.


Únicocandidato (Single Candidate):

Esta técnica se usa para ir descartando candidatos de las casillas (es más fácil si se anotan los candidatos en cada casilla).

Es similar a la técnica anterior, solo que, en lugar de centrarnos en los número faltantes, nos centramos en los candidatos a ocupar cada casilla.

Si en una casilla conseguimos eliminar todos los demás candidatos (como ya pasó en el ejemplo anterior donde algun candidato podría ir en varias casillas pero al ir rellenando los demás acaba con una única colocación posible) el candidato que queda es el "único candidato".

En el ejemlo anterior, en la caja amarilla faltan 1, 5, 6 y 8.
En este caso colocar el 1 es más simple que en el ejemplo anterior.
Antes al cruzar el 1, como no estaba en ninguna fila o columna podría ocupar culaquier posición.
Si, en lugar de ello, miramos los candidatos de la primera casilla vacia (central izquierda) vemos que se descartan 5 y 8 por estar en la misma fila y 6 por estar en la misma columna.
Esto nos deja como "único candidato" el 1.
El 6 tendría que ir en la casilla central derecha.
El 5 en la inferior izquierda y el 8 en la inferior central.


Eliminaciónvisual (Visual Elimination):

En esta técnica nos centramos en un número que aparezca repetido en bastantes cajas e intentamos averiguar su posición en ñas cajas en las que no aparece.

Podemos descartar su ubicación si aparece en la misma fila o columna por lo que si está repetido en varias cajas será una taréa sencilla.

En este ejemplo nos centramos en el 1 que aparece en siete de las nueve cajas por lo que será bastante sencillo de ubicar en las dos cajas restantes.
El la caja central podría ir ubicado únicamente en la fila superior al ya estar presente en las filas central e inferior de las otras cajas.
Tampoco podría estar en la primera columna porque ya lo contiene la caja superior.
Por lo tanto solo puede ir en la casilla superior derecha.

En la caja inferior central siguiendo el mismo sistema podemos descartar las dos filas superiores y por lo tanto solo se pude ubicar en la casilla inferior central.


A partir de esta técnica ya hay que ir anotando los candidatos antes (de memoria ya se hace un poco complicado)


Paresdescubiertos (Naked Pairs):

Para usar esta técnica primero debemos anotar los candidatos de cada casilla, cuando en la misma fila, columna o caja aparezcan la misma pareja de números en dos casillas.

Si la pareja aparece sola en dos casillas sabremos que en cada una de esas casillas tiene que ir uno de esos dos números, por lo cual podremos borrarlos de los candidatos de las demás casillas de la fila, columna o caja.

En este ejemplo en la misma caja aparecen en dos casillas únicamente el 6 y el 8.
Por lo tanto el 6 ha de ir necesariamente en una de dichas casillas y el 8 en la otra.
Así que podemos borra el 6 y 8 de las demás casillas de la caja.
Con esto la casilla superior derecha solo puede ubicar el 4.
En la casilla central derecha solo podría ir el 9.


Paresocultos (Hidden Pairs):

Esta técnica es similar a la anterior, solo que la pareja no está sola en cada casilla.

Si la pareja aparece sola en dos casillas, aunque aparezcan más candidatos, la pareja no aparece en las demás casillas en cada una de esas casillas tiene que ir uno de esos dos números, por lo cual podremos borrarlos de los candidatos de las demás casillas de la fila, columna o caja.

En este ejemplo en la misma caja aparecen en dos casillas únicamente el 2 y el 9, aunque en la casilla central aparezca tambien el 3 y el 5.
Por lo tanto el 2 ha de ir necesariamente en una de dichas casillas y el 9 en la otra.
En este caso no podremos borrar ni 2 ni 9 de las demás casillas porque no aparecían, pero si el 3 y el 5 de la casilla central.
Aunque en este ejemplo no ganamos nada ya que el 5 y el 3 ya estaba claro donde iban.


Candidatosalineados (Pointing Elimination):

En esta técnica si después de apuntar los candidatos en una de las cajas un número aparece en 2 (Pointing Pair) o en 3 (Pointing Pair) casillas de la misma columna/fila, pero no aparece en las demás filas/columnas, podemos deducir que en dicha fila/columna tendrá que ir alojado y por lo tanto borrarlo en la misma fila/columna de las demás cajas.

En este ejemplo en la misma caja aparece el 7 solo en dos casillas de la fila central pero en ninguna de las otras dos filas.
Con esto ya sabemos que el 7 en la primera caja va en la fila central.
Así que en la caja central superior podríamos eliminar los 7 que aparecen en la fila central.


Tríosdescubiertos (Naked Triplet):

En esta técnica debemos buscar tres casillas en una fila, columna o caja en las que solo aparezcan los mismos tres candidatos, una vez localizadas podemos borrar dichos candidatos de las demás casillas de la fila, columna o caja.

En este ejemplo el 4, el 2 y el 3 son los únicos candidatos posibles para la las casillas marcadas, primera, sexta y séptima de la columna.
Esto nos permitiría borrar de la tercera, quinta y octava casilla de la columna tanto el 2 como el 3.


Tríosocultos (Hidden Triplet):

Esta técnica es similar a la de los pares ocultos, si en una fila, columna o caja tres números aparecen únicamente en tres casillas distintas, dichas casillas tienen que contener dichos números pudiendo eliminar los demás candidatos.

En este ejemplo el 3, el 4 y el 7 solo aparecen en las mismas tres casillas, con lo cual dichas casillas han de contener dichos candidatos.
En este ejemplo eliminaríamos el 1 de la casilla superior central.


Cuartetosdescubiertos (Naked Quad):

Lo mismo que con los tríos descubierto pero con cuatro casillas de una misma fila, columna o caja en las que solo aparezcan los mismos cuatro candidatos, una vez localizadas podemos borrar dichos candidatos de las demás casillas de la fila, columna o caja.

En este ejemplo el 1, el 3, el 5 y el 7 son los únicos candidatos posibles para la las casillas marcadastoda la fila superior ya la inferior derecha.
Esto nos permitiría borrar de las demás casillas dichos candidatos.


Cuartetosocultos (Hidden Quad):

Esta técnica es similar a la de los pares o tríos ocultos, si en una fila, columna o caja cuatro números aparecen únicamente en cuatro casillas distintas, dichas casillas tienen que contener dichos números pudiendo eliminar los demás candidatos.

Este es el mismo ejemplo de antes en la misma caja.
En este caso el 2, el 4, el 6 y el 9, únicamente están en las casillas marcas central izquierda, central, inferior izquierda e inferior central.
En este caso podríamos eliminar de dichas casillas el resto de candidatos.


Hasta aquí las técnicas que usa este código para resolver los sudokus.
Otrastécnicas
fáciles pero este código no las usa

Doblesparejas (Double Pairs):

En esta técnica es similar a "candidatos alineados", se basa en localizar en dos cajas de una misma fila o columna un dígito que esté localizado solo en dos de las filas o columnas y así poder averiguar que en la caja restante estará necesariamente en la fila o columna en la que no aparecía en las dos anteriores.

En este ejemplo en la caja superior central hemos eliminado los candidatos 2 de la fila inferior usando la técnica de "candidatos alineados" ya que ne la caja superior izquierda solo es posible colocar el 2 en la fila inferior.
Una vez eliminados vemos que en las cajas superior centra y central el 2 solo puede colocarse en las columnas derecha e izquierda, así que eliminanos el 2 de la caja central inferior en dichas columnas.


Líneasmúltiples (Multiple Lines):

Esta técnica es un paso más en "candidatos alineados" y similar a "dobles parejas". Se trata de localizar en dos cajas de la misma fila o columna un candidato que solo esté alojado en dos de las filas o columnas para poder elimarlo de dichas filas o columnas en la caja restante.

En el ejemplo vemos que dos de las cajas de la columna izquierda (la superior y la inferior) el 5 solo aparece en las columnas izquierda y central.
Con ello sabemos que en la caja central izquierda el 2 no puede ir en dichas columnas y ha de ir por necesidad en la columna derecha.


Técnicasavanzadas
aquí empieza un poco el lío, para sudokus muy difíciles

Ala-X (X-Wing):

Los ala-x son algo difíciles de entender pero son bastante fáciles de localizar. Hay que localizar un cuadrado o rectángulo que en las esquínas contenga el mismo candidato y dicho candidato no esté localizado en ninguna otra casilla de la misma fila o columna. Si es único en las columnas de la X se puede eliminar en las filas ya que en una de las dos casillas de la fila de la X ha de ir por necesidad dicho candidato.

En el ejemplo vemos que el candidato 6 aparece solo en dos casillas de las filas 4 y 9.
Para entender como funciona hay que imaginar que pasaría si usamos en candidato en una de dichas casillas:
Si usamos el 6 en C4 lo eliminaríamos de I4 y C9 entonces quedaría como candidato único para I9.
Si lo usaramos en I9 pasaría a la inversa, lo eliminaríamos de I4 y C9 entonces quedaría como candidato único para C4.
Si lo usaramos en I4 lo eliminaríamos de C4 e I9 entonces quedaría como candidato único para C9 y si lo usaramos en C9 lo eliminaríamos de C4 e I9 entonces quedaría como candidato único para I4.

En resumen siempre está en una de las esquinas opuestas de la X, o en C4 e I9 o en C9 e I4. Lo cual hace que lo tengamos ubicado en dos únicas posiciones en las columnas C e I, así podremos eliminarlo de las demás casillas de dicha columna (en este ejemplo I1 e I7.

Aquí pongo un paso a paso de la técnica.


Pezespada (Swordfish):

Este similar al ala-x pero en vez de buscar dos casillas que formen un cuadrado buscaremos seis casillas con el mismo candidato, cono antes dos en cada fila o columna y que dicho candidato no se repita en más casillas de dicha celda o columna, aquí al ser seis casillas no forman un cuadrado o rectangulo, las casillas de la fila o columna central hacen de puente para unir las casillas de las filas o columnas exteriores. Vemamos un ejemplo que es más fácil de apreciar.

Ejemplo 1 (por filas):

En el primer ejemplo el candidato 5 aparece solo en dos casillas de las filas 2, 6 y 8.
Aquí las esquinas no se corresponden con un cuadrado, pero la primera casilla de la primera fila B2 si corresponde con la primera casilla de la última fila B8, la segunda casilla de la primera fila H2 se corresponde con la primera casilla de la fila central H6 y la segunda casilla de la fila central I6 con la segunda de la fila inferior I8.
La suposición es la misma que en ala-x: Si usamos el 5 en B2 lo eliminaríamos de B8 entonces solo podría colocarse en dicha fila en I8, esto lo eliminaría en I6 que lo confirmaría en H6, y esto lo elimaría de H2.
Si usamos el 5 en H2 lo eliminaríamos de H6 entonces quedaría solo podría colocarse en dicha fila en I6, esto lo eliminaría en I9 que lo confirmaría en B8, y esto lo elimaría de B2.

Con esto conseguíriamos eliminar el candidato 5 en las columnas B, H e I en las demás casillas.

Ejemplo 2 (por columnas):


En este segundo ejemplo el candidato 9 aparece solo en dos casillas de las columnas A, C y H.
Aquí la primera casilla de la primera columna A6 corresponde con la segunda casilla de la columna central C6, la segunda casilla de la primera columna A9 se corresponde con la segunda casilla de la última columna H9 y la primera casilla de la columna central C1 con la primera de la última columna H1.
Si usamos el 9 en A6 lo eliminaríamos de C6 entonces solo podría colocarse en dicha columna en C1, esto lo eliminaría en H1 que lo confirmaría en H9, y esto lo elimaría de A1.
Si usamos el 9 en A9 lo eliminaríamos de H9 entonces quedaría solo podría colocarse en dicha columna en H1, esto lo eliminaría en C1 que lo confirmaría en C6, y esto lo elimaría de A6.

Con esto conseguíriamos eliminar el candidato 9 en las filas 1, 6 y 9 en las demás casillas.

Aquí pongo un paso a paso de la técnica.

NdypT: Lo importante es que si solo está en DOS posiciones de una fila cada vez que lo confirmes en dicha casilla lo eliminas de toda la columna, por lo tanto esa columna ha de cruzarse con una casilla de otra fila que solo lo tenga DOS veces y así poder seguir (lo eliminas de toda la columna y otra casilla de las eliminadas ha de estar en una fila con solo DOS apariciones del candidato).
Por supuesto y viceversa, cambiar fila por columna y listo.

Que este me ha estado liando un rato.


Cadenasforzadas (Forcing Chains):

Las cademas forzadas se dan cuando tienes bastantes casillas con dos candidatos, el objetivo es elegir uno de los candidatos y ver que candidatos confirma y elimina de las demas casillas, luego se elege el segundo candidato y se hace lo mismo, en caso de que alguna casilla se repita en las dos posibilidades de la cadena la convierte en cierta.

En el ejemplo vemos que la casilla C1 contiene los candidatos 1 y 2.
Empezamos confirmando el 1 y vemos que entonces C4 es 4, F4 es 7

y A4 es 5.

Ahora cambiaremos y confirmaremos 2 en C1, entonces:
F1 es 7, F4 es 4, C4 es 1, G4 es 8, G9 es 4, G1 es 1, I3 es 4, A3 es 7 y por ultimo se confirma 5 en A4.

De esta forma sabemos que da igual el candidato que sea correcto en C1 porque las dos posibilidades acaban confirmado 5 en A4.

La teoría de la técnica es fácil, pero que se presente una cadena así es más complicado, y verlo (con la cantidad de pasos que hay que ejecutar) es más dificil todavía.


Ala-XY (XY-Wing):

En este caso buscaremos tres casillas que tengan solo dos candidatos, las tres casillas han de contener parejas distintas pero con un candidato común (XY, XZ e YZ), y dos de dichas casillas han de relacionarse con una casilla que contenga el candidato que une dichas casillas. En el ejemplo se ve más fácil.

En este ejemplo B8 tiene 2 y 8, A7 tiene 7 y 8 y E8 tiene 2 y 7, además tenemos F7 que se relaciona con A7 y E8 y tiene el 7 en común con ambas.

Veamos que pasa si colocamos el 2 en B8, E8 pasa a ser 7 y por lo tanto podemos quitarlo de F7.
Si en B8 pusieramos el 8, entonces A7 pasa a ser 7 y por lo tanto podemos quitarlo de F7.


Ala-XYZ (XYZ-Wing):

En este caso buscaremos tres casillas, dos de ellas con dos candidatos y una con tres, las dos parejas han de contener dos candidatos en común con el trío (XYZ, XY e XZ), y el trío y una de las parejas han de relacionarse con una casilla que contenga el candidato común a las 3 (X). En el ejemplo se ve más fácil.

En este ejemplo E1 tiene 5 y 8, G1 tiene 5, 7 y 8 y G2 tiene 7 y 8, además tenemos H1 que se relaciona con E1 y G1 y tiene el 8 en común con ambas.

Veamos que pasa si colocamos el 8 en E1 H1 no puede ser 8.
Si en E1 pusieramos el 5, entonces G1 pasa a tener los candidatos 7 y 8 al igual que G2 y tambien podemos eliminar el 8 de H1.


Rectánguloúnico (Unique Rectangle):

Veamos ahora el rectángulo único o de unicidad.
Lo primero es recordar (o explicar para quien no lo supiera, yo no lo sabía por ejemplo) que cada sudoku válido ha de tener solo una única solución posible.

NdT: Los sudokus modernos tiene solo una única solución y por lo que he visto hay una cierta controversia con esto ya que hay gente que opina que no es un requisito obligatorio. Además argumentan que los primeros sudokus creados se hacían a mano y sin comprobarlos por ordenador es difícil que se supiera que tenían solución única. Pero a día de hoy se considera que si un sudoku no tiene solución única no es válido.

Primero veamos lo que es un patrón de invalidez (Deadly Pattern), en este ejemplo vemos dos rectángulos formados por casillas que contienen la misma pareja de candidatos, el primero (el coloreado de amarillo) forma un patrón de invalidez ya que las casillas que forman el rectángulo ocupan solo dos cajas.
De esta forma los candidatos 1 podrían ocupar la casilla superior derecha y la inferior izquierda pero tambien podrían intercambiarse a la superior izquierda e inferior derecha y como estarían en las mismas cajas las dos soluciones serían correctas.
Como ya dijimos que los sudokus han de tener una única solución si se forma un patrón de invalidez el sudoku no puede ser válido.

Veamos sin embargo el segundo rectángulo (el coloreado en verde). Aquí las casillas están en distintas cajas, de esta forma en cada una de las casillas ha de ir un solo candidato ya que el resto de la caja invalidaría al segundo.
Osea que si se da un rectángulo como el anterior, no tendríamos un patrón de invalidez.

Veamos casos en los que se puede aplicar este patrón en nuestro beneficio:

Si solo una de las casillas que podrían acabar formando un patrón de invalidez tiene más candidatos que los que confrmarían el patrón podremos eliminar de dicha casilla los elementos que conforman el patrón.

En este ejemplo D4, E4 y D9 contienen los candidatos 2 y 3, E9 además contiene tambien 1 y 8, así que eliminamos 2 y 3 de E9 para evitar el patrón de invalidez.
Hay que eliminar los dos candidatos, ya que si solo elimináramos uno forzaríamos el patrón en las demás casillas, si pusiéramos 2 en E9, forzaríamos a D9 a ser 3 y se formaría el patrón.

En el segundo ejemplo las dos casillas de una de las cajas contienen un candidato extra, en este caso es seguro que dicho candidato ha de ir en una de ellas, pudiendo eliminar dicho candidato extra de las demás celdas de la caja y columna/fila.

En este ejemplo vemos que G8 y G9 contiene solo los candidatos 7 y 8 y que B8 y B9 contienen además el 6, para poder evitar el patrón el 6 ha de ir en una de dichas casillas, por lo tanto podemos eliminarlo de las demás casillas tanto de la caja como de la columna.

Si dos casillas contienen un solo número pero no están en la misma caja se puede aplicar la misma técnica anterior pero borrando solo el candidato de las casillas que se crucen con las dos casillas que lo contienen.

Aquí G9 y B9 contienen el candidato 6 que es el único candidato que puede evitar que se forme una patrón de invalidez, por lo tanto ha de ir en una de dichas casillas.
Así podremos eliminar el 6 de toda la fila 9.

Hay muchos más usos para esta técnica, en esta página se enumeran bastantes más posibilidades, pero lo más importante es entender que hay que evitar que se forme un patrón de invalidez.


Técnicasdifíciles
solo para usar en caso de extrema necesidad

Nishio:

El Nishio ya es una técnica de probar.
Se elige una casilla con solo dos candidatos y se supone uno como correcto, se prosigue desde esa suposición para ver si el tablero es resoluble, en caso que produzca un fallo se da bueno el otro candidato.
Muchas veces encontrar una incompatibilidad se hace bastanate largo y es más rapido probar varios movimientos con un candidato y si no produce una incompatibilidad probar con el otro.
En este caso lo mejor es dar con la opción errónea para poder descartar, si se da con la correcta no se sabe hast aque se acaba el tablero.


Adivinación (Guessing):

Si no tenemos ninguna opción ya solo nos quedará probar candidatos al azar, primeramente se prueban los que tengan menos opciones.
No es normal llegar a este extremo, casi ningún sudoku lo requiere, siempre suele haber mejores técnicas, pero es una opción válida si se tiene paciencia y se hace una copia a parte donde ir probando.
Muchos códigos de resolución de sudokus si que usan esta técnica al ser más fácil para un ordenador comprobar todas las posibilidades al azar.