The game is for 2 players you start with 7 to 21 coins and each player has to take away 1, 2, or 3 coins, whoever gets the count to 0 wins. I'm having trouble on how to switch the players and assigned which one to go first...
here is the class:
here is the main:
here is the class:
public class Nim { //instance data private int nCoins = 21; private int player = 1; //---------------------------------------------- //Constructor -- initializes nCoins and player //---------------------------------------------- public Nim(int coins, int starter) { if (coins >=7 && coins <=21) this.nCoins = coins; else System.out.println("Invalid input, 21 coins is assigned to your game."); if(starter == 1 || starter ==2) this.player = starter; else System.out.println("Invalid input, player 1 is assigned to be the first."); } //---------------------------------------------- //Removes coins from the row. //---------------------------------------------- public void takeCoins(int remove) { if (remove <= nCoins) nCoins = nCoins - remove; else System.out.println("You can only remove " + nCoins + " From the row"); } //---------------------------------------------- // Display the game status. //---------------------------------------------- public void gameStatus() { System.out.println("Number of coins left: " + nCoins); System.out.println(); System.out.print("Player" + player + ", "); } //---------------------------------------------- // Returns nCoins. //---------------------------------------------- public int getCoins() { return nCoins ; } //---------------------------------------------- // Returns player. //---------------------------------------------- public int getPlayer(){ return player; } }
here is the main:
import java.util.Scanner; public class TestNim { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Who goes first, player 1 or 2?"); int player = scan.nextInt(); System.out.println("how many coins do you want to play, choose a number in the range of 7 to 21"); int coins = scan.nextInt(); Nim nimGame = new Nim(coins, player); while(nimGame.getCoins()>0) { nimGame.gameStatus(); System.out.println("how many coins would you like to take, 1, 2, or 3?"); int take = scan.nextInt(); nimGame.takeCoins(take); } System.out.println("Game over!"); System.out.println("Game won by: " + nimGame.getPlayer()); } }