Introdução
Para os não iniciados
Sudoku
é um jogo viciante de números que se tornou muito
popular
ultimamente. A maioria dos jornais locais publicam um quebra-cabeça diário, milhões de pessoas ao redor do mundo podem ser vistas inclinadas sobre ele a caminho do trabalho e de volta. O jogo tradicionalmente é uma grade 9x9, o objetivo é garantir que cada linha, coluna e caixa 3x3 contenham todos os números de 1 a 9. O jogo começa com alguns números predefinidos em células aleatórias; o número preenchido depende da dificuldade, quanto menor o nível, maior o número de células pré-preenchidas. Depois, dependerá de você e de suas habilidades de dedução resolver os números restantes.
Há muitos
Solucionadores
disponíveis, notavelmente ausente estava uma versão em ABAP. Como exercício, pensei em escrever um com um front-end de BSP
Solucionador de Sudoku
Um requisito prévio para resolver o quebra-cabeça é garantir que ele possa ser resolvido. Cada célula deve ser validada com as células na caixa em que se encontra mais a linha e coluna intersectadas, garantindo que o valor não entre em conflito com outra entrada e que haja pelo menos um valor possível alcançável.
Existem muitas abordagens diferentes para resolver um quebra-cabeça de Sudoku, a maioria delas usa um algoritmo de busca de
Backtracking
. O backtracking incorpora uma abordagem de
Busca em Profundidade (DFS)
, começando na primeira célula, testa todos os valores possíveis até encontrar um que funcione, então passa para a próxima célula; se esgotar todos os valores possíveis, retrocede para a célula anterior e testa o próximo valor.
Criando Novos Jogos
Criar novos jogos é relativamente simples uma vez que o solucionador tenha sido determinado. Existem 3 etapas
1. Preencher 3 caixas sem qualquer interseção com valores aleatórios de 1 a 9
2. Utilizar o solucionador para encontrar a solução
3. Eliminar células aleatoriamente até atingir o número de dicas associadas ao nível de habilidade
O Código
O código agora está disponível como um fragmento de SAPlink.
Quitar espacios en una consulta SQL
Quitar espacios en una consulta SQL
Cuando trabajamos con consultas SQL, a menudo nos encontramos con la necesidad de limpiar o mani...
Transacciones MIGO y MIRO en SAP MM
Transacciones MIGO y MIRO en SAP MM
1. ¿Qué es la transacción MIGO?
La transacción MIGO (Entrada de Mercancías) se utiliza para registrar las mercancías que...
HOLA EXPERTOS,
¿QUÉ ESQUEMA DE CÁLCULO ME SIRVE PARA CALCULAR EL IVA EN BOLIVIA?
EL PORCENTAJE DE IVA EN BOLIVIA ES EL 13%.
LA FACTURA QUE TENGO COMO EJEMPLO ES LA...