Validação de Matriz a força bruta (tentativas)

2 respostas
Tektron

Boa noite.

Estou tentando desenvolver o codigo do seguinte jogo [url]http://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/singles.html#5x5:2455242134335224541323423[/url].
Esse jogo é parecido com o Sudoku, mas é apenas com 1 quadrado de 5x5, quando o Sudoku são 9 quadrados de 3x3.

A matriz do jogo é composta de números aleatórios de 1 a 5.

A ideia é a seguinte, verificar se o jogo esta ganho na base da força bruta (tentativas), portanto preciso de ajuda para montar um método que faça essa tarefa. No campo que vai ser testado é colocado 0. Fiz um metodo que funciona mas com apenas um campo sendo preenchido com 0, se por acaso tiver 2 ou mais, o meu metodo não funciona devidamente.

Segue o código:
public static int tentativas(int matriz[][], int matrizOriginal[][]) {
        int x = 0;
        int y = 0;
        int tentativa = 0;
        
        while (!validaJogo(matriz)) {
            clonaMatriz(matrizOriginal, matriz);
            
            matriz[x][y] = 0;
            
            x++;
            if (x == 5) {
                x = 0;
                if (y < 4) {
                    y++;
                }
            } 
            
            tentativa++;
            
        }
        
        return tentativa;
    }

Cada laço ele copia a matriz original e substitui o próximo campo da matriz, assim até achar a solução.

Desde já agradeço.

2 Respostas

rmendes08

coloca um exemplo de entrada e saída, não entendi muito bem o que o código deveria fazer

R

os links na assinatura de rmendes08 não estão funcionando.

Bem ainda pelo que li do problema. Se o problema é não repetir o zero, use uma forma de verificar se o zero já foi usado… uma booleana por exemplo apartir do primeiro zero atribuido. entende o que digo… ? caso atribua o zero a booleana é verdadeira, senão continua falsa e continua valendo a aplicação do zero. SE houver um novo zero, aí vc de repente trata a questão deste novo zero separadamente… o que acha???

Criado 10 de junho de 2014
Ultima resposta 14 de jun. de 2014
Respostas 2
Participantes 3