Goal: Recreate the game of Nim. Two players, three piles of some amount of tokens. The player to remove the last token is the loser.
/// Name: Cornelius Eanes /// Period: 5 /// Program Name: Nim /// File Name: Nim.java /// Date Finished: Mar 4, 2016 import java.util.Scanner; public class Nim { public static void main(String[] args) { Scanner userIn = new Scanner(System.in); int pileA = 10, pileB = 10, pileC = 10, amountToRemove; String player1, player2, choice; boolean player1Turn = true; System.out.print("Player 1, enter your name: "); player1 = userIn.next(); System.out.print("Player 2, enter your name: "); player2 = userIn.next(); while (pileA > 0 || pileB > 0 || pileC > 0) { System.out.println("\n\tA: " + pileA + "\tB: " + pileB + "\tC: " + pileC + "\n"); if (player1Turn) { System.out.print(player1); } else { System.out.print(player2); } System.out.print(", choose a pile: "); choice = userIn.next(); System.out.print("How many tokens to remove? "); amountToRemove = userIn.nextInt(); if (amountToRemove < 0) { System.out.println("ERROR: Cannot remove 0 or a negative amount of tokens."); continue; } if (choice.equalsIgnoreCase("A")) { int result = pileA - amountToRemove; if (result < 0) { System.out.println("Invalid resulting amount: " + result); continue; } pileA = result; } else if (choice.equalsIgnoreCase("B")) { int result = pileB - amountToRemove; if (result < 0) { System.out.println("Invalid resulting amount: " + result); } pileB = result; } else if (choice.equalsIgnoreCase("C")) { int result = pileC - amountToRemove; if (result < 0) { System.out.println("Invalid resulting amount: " + result); continue; } pileC -= amountToRemove; } else { System.out.println("Invalid choice: " + choice); // skips switching turns continue; } player1Turn = !player1Turn; } if (player1Turn) { System.out.print(player1); } else { System.out.print(player2); } System.out.println(", looks like there aren't any tokens left, that means you're the winner!"); } }