public static int algoritmoIterativo(int n, Pila ini, Pila fin, Pila aux) { int m = 0; bool gameStatus = false; while (!gameStatus) { // Si n es impar if (n % 2 != 0) { mover_disco(ini, fin); m++; gameStatus = ini.winCheck(n); gameStatus = fin.winCheck(n); if (!gameStatus) { mover_disco(ini, aux); m++; gameStatus = ini.winCheck(n); gameStatus = aux.winCheck(n); } if (!gameStatus) { mover_disco(aux, fin); m++; gameStatus = aux.winCheck(n); gameStatus = fin.winCheck(n); } } else { mover_disco(ini, aux); m++; gameStatus = ini.winCheck(n); gameStatus = aux.winCheck(n); if (!gameStatus) { mover_disco(ini, fin); m++; gameStatus = ini.winCheck(n); gameStatus = fin.winCheck(n); } if (!gameStatus) { mover_disco(aux, fin); m++; gameStatus = aux.winCheck(n); gameStatus = fin.winCheck(n); } } } // cuantos son los movimientos minimos para resolver 2^(n-1); 7 si son 3 discos // entregar practica pronto // lanzar en terminal return(m); }