package JUEGOS; import java.util.Scanner; import java.util.Stack; public class nim { int pilaa; int pila1; int pila2; int turnoJugador; int cantidadFichas; public nim(){ pilaa =3; pila1 = 4; pila2 = 5; turnoJugador = 1; } public int getTurnoJugador(){ return turnoJugador; } public void setTurnoJugador(int valor){ turnoJugador = valor; } public int getPila(String pila){ int devuelve = 0; switch (pila) { case "A": devuelve = pilaa; break; case "B": devuelve = pila1; break; case "C": devuelve = pila2; break; default: devuelve = 0; break; } return devuelve; } //Remueve las fichas de las pilas public void quitarFichas(String pile , int number){ switch (pile) { case "A": pilaa = pilaa - number; break; case "B": pila2 = pila1 - number; break; case "C": pila2 = pila2 - number; break; default: break; } } //Controla si sobran fichas para continuar con la partida public boolean controlPartida(){ int contador = 0; if (pilaa > 0 || pila1 >0 || pila2 >0) { return true; }else{ return false; } } //Se muestra el tablero en pantalla public void mostrarTablero(){ System.out.println("A: " + pilaa + " B: " + pila1 + " C: " + pila2); } //Se cambia de turno en la jugada public void cambioDeTurnos() { if (getTurnoJugador() == 1) { setTurnoJugador(2); }else{ setTurnoJugador(1); } } public static void main(String[] args) { Scanner teclado = new Scanner(System.in); System.out.println("jugador 1,ingrese su nombre"); String turnoJugador = teclado.next(); System.out.println("jugador 2,ingrese su nombre"); String turnoJugador1 = teclado.next(); String lector = ""; int fichas = 0; boolean check = false; nim partida = new nim(); Scanner in = new Scanner(System.in); //Se muestra el tablero partida.mostrarTablero(); while(partida.controlPartida()) { System.out.println("Turno jugador" + partida.getTurnoJugador() + " :"); //El jugador elige la columna(Se previene el ingreso de datos invalidos) while(!check){ System.out.print("Elija una pila"); lector = System.console().readLine(); lector = lector.toUpperCase(); if ((lector.equals("A") || lector.equals("B") || lector.equals("C")) && partida.getPila(lector) > 0){ check = true; }else { System.out.println("Columna invalida, por favor intente de nuevo"); check = false; } } //El jugador elige la cantidad de fichas a retirar de la columna seleccionada(Se previene el ingreso de datos invalidos) while(check){ System.out.print("Elija la cantidad de fichas a mover: "); fichas = Integer.parseInt(System.console().readLine()); if (fichas > partida.getPila(lector)){ System.out.println("Cantidad invalida, por favor intente de nuevo"); check = true; } else { check = false; }; } partida.quitarFichas(lector , fichas); partida.mostrarTablero(); partida.controlPartida(); partida.cambioDeTurnos(); } System.out.println("Fin de la partida"); System.out.println("Gana = jugador" + partida.getTurnoJugador()); partida.cambioDeTurnos(); System.out.println("Pierde = Jugador" + partida.getTurnoJugador()); } }