Skip to content

Instantly share code, notes, and snippets.

@kindness312
Created October 18, 2016 02:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kindness312/66d2c888ea480c508c62aabbfe8a6e4a to your computer and use it in GitHub Desktop.
Save kindness312/66d2c888ea480c508c62aabbfe8a6e4a to your computer and use it in GitHub Desktop.
Nim
import java.util.Scanner;
public class Nim2{
public static void main(String[] args){
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//initiate different scanner objects to avoid .nextLine() infinite looping
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Scanner pile_amt = new Scanner(System.in);
Scanner name_scan = new Scanner(System.in);
Scanner pile_type = new Scanner(System.in);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Starting values for piles, player turn, pile choice and pile amt
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int pIle_A = 3;
int pIle_B = 4;
int pIle_C = 5;
int p1turn = 1;
String pChoice = "";
int pNum = 0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Building the vertical display with individual string variables that may be modified in the if statements below. Default is all filled
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String sPaceA1 = "* ";
String sPaceB1 = "* ";
String sPaceC1 = "* ";
String sPaceA2 = "* ";
String sPaceB2 = "* ";
String sPaceC2 = "* ";
String sPaceA3 = "* ";
String sPaceB3 = "* ";
String sPaceC3 = "* ";
String sPaceA4 = "* ";
String sPaceB4 = "* ";
String sPaceC4 = "* ";
String sPaceA5 = "* ";
String sPaceB5 = "* ";
String sPaceC5 = "* ";
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//First user input captured (name)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.out.print("Player 1, enter your name: ");
String nAme1 = name_scan.nextLine();
System.out.print("\nPlayer 2, enter your name: ");
String nAme2 = name_scan.nextLine();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Vertical display built based on values of piles a, b and c
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//First player begins the while loop by choosing a pile. Two variables: player turn(p1turn) and pile choice(pChoice) gate the loop
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.out.print(nAme1 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
do{
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////PILE A, PLAYER 1//////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
if(pChoice.equalsIgnoreCase("a") && p1turn == 1){
System.out.println("\nHow many will you remove from pile " + pChoice);
System.out.print("> ");
pNum = pile_amt.nextInt();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Checks if amount chosen is greater than the amount left in pile as well as at least 1
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
while(pNum > pIle_A){
System.out.println("\nNice try " + nAme1 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Checks if amount chosen is at least 1 as well as if the amount chosen is greater than the amount left
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum > pIle_A){
System.out.println("\nNice try " + nAme1 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////Sets new value for Pile_A
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
pIle_A = pIle_A - pNum;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Player 2 begins here. The vertical display updates with the pile totals
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if( (pIle_A + pIle_B + pIle_C) > 1 ){
p1turn = 2;
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
System.out.print(nAme2 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Prevents player 2 from choosing an empty pile
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
while(pChoice.equalsIgnoreCase("a") && pIle_A <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("b") && pIle_B <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("c") && pIle_C <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////PILE A, PLAYER 2//////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Each combination of pile and player have a separate conditional, with functionally identical code within.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if(pChoice.equalsIgnoreCase("a") && p1turn == 2){
System.out.println("\nHow many will you remove from pile " + pChoice);
System.out.print("> ");
pNum = pile_amt.nextInt();
while(pNum > pIle_A){
System.out.println("\nNice try " + nAme2 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum > pIle_A){
System.out.println("\nNice try " + nAme2 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
pIle_A = pIle_A - pNum;
if( (pIle_A + pIle_B + pIle_C) > 1 ){
p1turn = 1;
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
System.out.print(nAme1 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
while(pChoice.equalsIgnoreCase("a") && pIle_A <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("b") && pIle_B <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("c") && pIle_C <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////PILE B, PLAYER 1//////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
else if(pChoice.equalsIgnoreCase("b") && p1turn == 1){
System.out.println("\nHow many will you remove from pile " + pChoice);
System.out.print("> ");
pNum = pile_amt.nextInt();
while(pNum > pIle_B){
System.out.println("\nNice try " + nAme1 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum > pIle_B){
System.out.println("\nNice try " + nAme1 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
pIle_B = pIle_B - pNum;
if( (pIle_A + pIle_B + pIle_C) > 1 ){
p1turn = 2;
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
System.out.print(nAme2 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
while(pChoice.equalsIgnoreCase("a") && pIle_A <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("b") && pIle_B <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("c") && pIle_C <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////PILE B, PLAYER 2//////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
else if(pChoice.equalsIgnoreCase("b") && p1turn == 2){
System.out.println("\nHow many will you remove from pile " + pChoice);
System.out.print("> ");
pNum = pile_amt.nextInt();
while(pNum > pIle_B){
System.out.println("\nNice try " + nAme2 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum > pIle_B){
System.out.println("\nNice try " + nAme2 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
pIle_B = pIle_B - pNum;
if( (pIle_A + pIle_B + pIle_C) > 1 ){
p1turn = 1;
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
System.out.print(nAme1 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
while(pChoice.equalsIgnoreCase("a") && pIle_A <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("b") && pIle_B <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("c") && pIle_C <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////PILE C, PLAYER 1//////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
else if(pChoice.equalsIgnoreCase("c") && p1turn == 1){
System.out.println("\nHow many will you remove from pile " + pChoice);
System.out.print("> ");
pNum = pile_amt.nextInt();
while(pNum > pIle_C){
System.out.println("\nNice try " + nAme1 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum > pIle_C){
System.out.println("\nNice try " + nAme1 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
pIle_C = pIle_C - pNum;
if( (pIle_A + pIle_B + pIle_C) > 1 ){
p1turn = 2;
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
System.out.print(nAme2 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
while(pChoice.equalsIgnoreCase("a") && pIle_A <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("b") && pIle_B <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("c") && pIle_C <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////PILE C, PLAYER 2//////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
else if(pChoice.equalsIgnoreCase("c") && p1turn == 2){
System.out.println("\nHow many will you remove from pile " + pChoice);
System.out.print("> ");
pNum = pile_amt.nextInt();
while(pNum > pIle_C){
System.out.println("\nNice try " + nAme2 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
while(pNum < 1){
System.out.println("\nYou must choose at least one.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
while(pNum > pIle_C){
System.out.println("\nNice try " + nAme2 + ", Pile " + pChoice + " doesn't have that many.");
System.out.print("Try again: ");
pNum = pile_amt.nextInt();
}
}
pIle_C = pIle_C - pNum;
if( (pIle_A + pIle_B + pIle_C) > 1 ){
p1turn = 1;
if((pIle_A + pIle_B + pIle_C) > 0){
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
}
System.out.print(nAme1 + ", Choose a pile: ");
pChoice = pile_type.nextLine();
while(pChoice.equalsIgnoreCase("a") && pIle_A <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("b") && pIle_B <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
while(pChoice.equalsIgnoreCase("c") && pIle_C <= 0){
System.out.println("Nice try. That pile is empty.");
System.out.print("Choose again: ");
pChoice = pile_type.nextLine();
}
}
}
}
while((pIle_A + pIle_B + pIle_C) > 1 );
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Play ends at 1 or 0 total counters.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(pIle_C == 5) {sPaceC1 = "* "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 4){sPaceC1 = " "; sPaceC2 = "* "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 3){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = "* "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 2){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = "* "; sPaceC5 = "* ";}
else if(pIle_C == 1){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = "* ";}
else if(pIle_C == 0){sPaceC1 = " "; sPaceC2 = " "; sPaceC3 = " "; sPaceC4 = " "; sPaceC5 = " ";}
if(pIle_B == 5) {sPaceB1 = "* "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 4){sPaceB1 = " "; sPaceB2 = "* "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 3){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = "* "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 2){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = "* "; sPaceB5 = "* ";}
else if(pIle_B == 1){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = "* ";}
else if(pIle_B == 0){sPaceB1 = " "; sPaceB2 = " "; sPaceB3 = " "; sPaceB4 = " "; sPaceB5 = " ";}
if(pIle_A == 5) {sPaceA1 = "* "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 4){sPaceA1 = " "; sPaceA2 = "* "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 3){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = "* "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 2){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = "* "; sPaceA5 = "* ";}
else if(pIle_A == 1){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = "* ";}
else if(pIle_A == 0){sPaceA1 = " "; sPaceA2 = " "; sPaceA3 = " "; sPaceA4 = " "; sPaceA5 = " ";}
if ( p1turn == 2 && (pIle_A + pIle_B + pIle_C) == 1){
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
System.out.println("\nThere is only one remaining counter. You lose, " + nAme1);
}
else if ( p1turn == 1 && (pIle_A + pIle_B + pIle_C) == 1){
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
System.out.println("\nThere is only one remaining counter. You lose, " + nAme2);
}
else if ( p1turn == 2 && (pIle_A + pIle_B + pIle_C) == 0){
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
System.out.println("\nThere are no counters left. You lose, " + nAme2);
}
else if ( p1turn == 1 && (pIle_A + pIle_B + pIle_C) == 0){
System.out.print("\t" + sPaceA1 + sPaceB1 + sPaceC1 + "\n\t" + sPaceA2 + sPaceB2 + sPaceC2 + "\n\t"
+ sPaceA3 + sPaceB3 + sPaceC3 + "\n\t"+ sPaceA4 + sPaceB4 + sPaceC4 + "\n\t"
+ sPaceA5 + sPaceB5 + sPaceC5 + "\n\tA B C\n");
System.out.println("\nThere are no counters left. You lose, " + nAme1);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment