예제 #1
0
파일: RestaUm.java 프로젝트: mh3ry/lleme
 private static void backtracking(Stack<Movimento> movimentos, Tabuleiro tabuleiro) {
   if (eSol(tabuleiro)) {
     imprimirTab(tabuleiro.obterEstado());
     processarSol(movimentos);
   } else {
     Queue<Movimento> cand = gerarCand(tabuleiro);
     while (!cand.isEmpty()) {
       Movimento mv = cand.poll();
       movimentos.push(mv);
       tabuleiro.aplicarMov(mv);
       backtracking(movimentos, tabuleiro);
       tabuleiro.desaplicarMov(mv);
       movimentos.pop();
     }
   }
 }
예제 #2
0
파일: RestaUm.java 프로젝트: mh3ry/lleme
  public static void main(String[] args) {

    backtracking(new Stack(), Tabuleiro.obterInstancia());
  }
예제 #3
0
파일: RestaUm.java 프로젝트: mh3ry/lleme
 private static Queue<Movimento> gerarCand(Tabuleiro tabuleiro) {
   Queue<Movimento> cand = tabuleiro.movimentosPossiveis();
   return cand;
 }
예제 #4
0
파일: RestaUm.java 프로젝트: mh3ry/lleme
 private static boolean eSol(Tabuleiro tabuleiro) {
   return tabuleiro.contarUns() == 1;
 }