From bf371fd995384e983d00efe2cc06938482ebe391 Mon Sep 17 00:00:00 2001 From: Angel Zarate Date: Sat, 23 Apr 2022 22:20:41 +0000 Subject: [PATCH] Juego Nim --- nim.java | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 nim.java diff --git a/nim.java b/nim.java new file mode 100644 index 0000000..281c5b7 --- /dev/null +++ b/nim.java @@ -0,0 +1,139 @@ +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()); + } +} -- libgit2 0.26.0