2009-02-25

Sudoku

Prosseguindo o uso do meu novo site referido no post anterior, coloquei lá ficheiros relacionados com o Sudoku, passatempo frequente em vários jornais e revistas.

Trata-se de um quadrado constituído por 81 casas, organizadas numa matriz de 9 por 9 casas. Em cada problema existem algumas casas que já se encontram preenchidas com alguns algarismos e o objectivo do passatempo é preencher as restantes casas ainda vazias, com os algarismos de 1 a 9, respeitando as seguintes regras:
1) em cada coluna não pode haver repetição de nenhum algarismo
2) em cada linha também se proíbe repetir qualquer algarismo
3) o quadrado de 9 x 9 está dividido em 9 quadrados de 3 x 3, que na figura em baixo à esquerda aparecem com fundos branco e azul claro; em nenhum destes 9 quadrados de 3 x 3 casas pode ocorrer repetição de qualquer algarismo.

Na página "Jogos" do meu site está o ficheiro "Sudoku PG 03a.ppt" que é uma animação em Power-point, explicando de forma visual raciocínios usados na resolução de um problema específico de Sudoku. Para se ver os efeitos de animação é necessário ver a apresentação em modo "Slide Show".

Ainda na página "Jogos" está o ficheiro Excel "Sudoku v9a.xls", que é uma ferramenta que desenvolvi para ajudar a resolver os problemas de Sudoku. À primeira vista não parece muito difícil fazer um programa para resolver o Sudoku mas ele não teria uma utilização muito lúdica. A ferramenta que passo a descrever, embora não resolva o Sudoku, dá umas ajudas, o que poderá ser interessante.

Nas figuras a seguir mostro, na mais à esquerda, o problema inicial, que foi preciso preencher nas casas do Excel:








A célula A1 destina-se a ser preenchida com um dos 9 algarismos possíveis de ser usados em cada célula do quadrado de 81 casas.

Quando se coloca nela um dos algarismos, na figura do meio colocou-se o "1", todas as células onde não se pode colocar o "1" (por já existir na coluna, na linha ou no quadrado de 3 x 3) mudam para a cor cinzenta, facilitando a detecção de possibilidades únicas que neste caso são inexistentes.

Na figura da direita, em que se testa o algarismo 2 (colocado na célula A1), constata-se que na célula J4, assinalada com um círculo vermelho, deve estar um 2 pois é a única casa livre e não cinzenta na 3ª linha do quadrado.

Depois de colocar o algarismo 2 em J4, mais casas ficarão cinzentas.

O processo continua, colocando sucessivos valores de 1 a 9 em A1, até que uma ronda completa não mostre mais casas de preenchimento imediato. Não é garantido que o problema esteja então resolvido mas estará mais próximo do final.

As pequenas setas na casa A1 servem para activar macros simplesmente para aumentar ou diminuir o conteúdo dessa célula. A cor cinzenta é obtida com o mecanismo de formatação condicional do Excel. A folha de cálculo não tem nenhum programa (à parte as duas macros que se limitam a aumentar/diminuir A1 de uma unidade), contendo apenas testes lógicos.

Quem não quiser usar uma folha excel com macros, com receio de eventuais vírus, poderá usar o ficheiro "Sudoku v8a.xls", em tudo idêntico à versão 9a mas sem as setinhas para aumentar/diminuir A1, cujos valores terão que ir sendo colocados manualmente.

Esta ferramenta tem o inconveniente de precisar de um computador e de ser preciso copiar os algarismos do problema para uma folha excel mas quanto a isso não tenho soluções.

Sem comentários: