From 4e0719fd1befaf27eded10c322f110e31f89cf94 Mon Sep 17 00:00:00 2001 From: Brian He Date: Wed, 21 Feb 2018 12:10:34 -0500 Subject: [PATCH 001/105] Structure --- .../java/io/zipcoder/casino/Games/Blackjack/Blackjack.java | 4 ++++ src/main/java/io/zipcoder/casino/Games/Craps/Craps.java | 4 ++++ src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java | 4 ++++ src/main/java/io/zipcoder/casino/Games/War/War.java | 4 ++++ src/main/java/io/zipcoder/casino/InputOutput.java | 4 ++++ src/main/java/io/zipcoder/casino/Player.java | 4 ++++ src/test/java/io/zipcoder/casino/CasinoTest.java | 1 - 7 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java create mode 100644 src/main/java/io/zipcoder/casino/Games/Craps/Craps.java create mode 100644 src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java create mode 100644 src/main/java/io/zipcoder/casino/Games/War/War.java create mode 100644 src/main/java/io/zipcoder/casino/InputOutput.java create mode 100644 src/main/java/io/zipcoder/casino/Player.java diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java new file mode 100644 index 00000000..f1307524 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.Blackjack; + +public class Blackjack { +} diff --git a/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java new file mode 100644 index 00000000..6937c952 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.Craps; + +public class Craps { +} diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java new file mode 100644 index 00000000..ad6667a1 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.GoFish; + +public class GoFish { +} diff --git a/src/main/java/io/zipcoder/casino/Games/War/War.java b/src/main/java/io/zipcoder/casino/Games/War/War.java new file mode 100644 index 00000000..b4c68b41 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/War/War.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.War; + +public class War { +} diff --git a/src/main/java/io/zipcoder/casino/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput.java new file mode 100644 index 00000000..5227450a --- /dev/null +++ b/src/main/java/io/zipcoder/casino/InputOutput.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino; + +public class InputOutput { +} diff --git a/src/main/java/io/zipcoder/casino/Player.java b/src/main/java/io/zipcoder/casino/Player.java new file mode 100644 index 00000000..afbd0da0 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Player.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino; + +public class Player { +} diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java index e9286523..9e5fff76 100644 --- a/src/test/java/io/zipcoder/casino/CasinoTest.java +++ b/src/test/java/io/zipcoder/casino/CasinoTest.java @@ -1,5 +1,4 @@ package io.zipcoder.casino; - public class CasinoTest { } From d086da1d4570b4e2ecab5214d37a5fa1a500b98b Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 13:07:34 -0500 Subject: [PATCH 002/105] placeholder files --- .../java/io/zipcoder/casino/Games/Blackjack/Blackjack.java | 1 + .../io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java | 4 ++++ src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java | 4 ++++ 3 files changed, 9 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java create mode 100644 src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java index f1307524..46d42023 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java @@ -1,4 +1,5 @@ package io.zipcoder.casino.Games.Blackjack; public class Blackjack { + } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java new file mode 100644 index 00000000..0c539c42 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.Blackjack; + +public class BlackjackPlayer { +} diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java new file mode 100644 index 00000000..75bb12b5 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.Blackjack; + +public class Dealer { +} From a1504070630aec8c4aaf755edf50c36566d34cc0 Mon Sep 17 00:00:00 2001 From: Brian He Date: Wed, 21 Feb 2018 13:31:02 -0500 Subject: [PATCH 003/105] Interfaces --- src/main/java/io/zipcoder/casino/Gamble.java | 9 +++++++++ src/main/java/io/zipcoder/casino/Game.java | 8 ++++++++ 2 files changed, 17 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/Gamble.java create mode 100644 src/main/java/io/zipcoder/casino/Game.java diff --git a/src/main/java/io/zipcoder/casino/Gamble.java b/src/main/java/io/zipcoder/casino/Gamble.java new file mode 100644 index 00000000..a4374a5d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Gamble.java @@ -0,0 +1,9 @@ +package io.zipcoder.casino; + +public interface Gamble { + + public void wagerMoney(); + public Integer checkBalance(); + public void changeBalance(); + +} diff --git a/src/main/java/io/zipcoder/casino/Game.java b/src/main/java/io/zipcoder/casino/Game.java new file mode 100644 index 00000000..336e7af4 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Game.java @@ -0,0 +1,8 @@ +package io.zipcoder.casino; + +public interface Game { + + public void startGame(); + public void endGame(); + +} From 9dfcf93f195cf09ed437b784841908b9999edac2 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 13:46:15 -0500 Subject: [PATCH 004/105] starting blackjack class --- .../io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java index 0c539c42..37a4ab2c 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -1,4 +1,7 @@ package io.zipcoder.casino.Games.Blackjack; public class BlackjackPlayer { + public void start(){ + + } } From f3e6b522fd05800fa6fe24c348183233aa6c8af5 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 14:03:12 -0500 Subject: [PATCH 005/105] building out blackjackplayer class --- .../casino/Games/Blackjack/Blackjack.java | 5 ++++- .../casino/Games/Blackjack/BlackjackPlayer.java | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java index 46d42023..464bd5c7 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java @@ -1,5 +1,8 @@ package io.zipcoder.casino.Games.Blackjack; public class Blackjack { - + public void start(){ + Dealer bkjkDealer = new Dealer(); + BlackjackPlayer sue = new BlackjackPlayer(); + } } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java index 37a4ab2c..6d3c31de 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -1,7 +1,18 @@ package io.zipcoder.casino.Games.Blackjack; +import io.zipcoder.casino.*; public class BlackjackPlayer { - public void start(){ - + private String name; + private Integer balance; + private Integer age; + private Card[] hand; + private boolean canHit; + + public BlackjackPlayer(Player rootPlayer){ + this.name = rootPlayer.getName(); + this.age = rootPlayer.getAge(); + this.balance = rootPlayer.getBalance(); + this.hand = new Card[]; + this.canHit = true; } } From baeec465a668c4d02f1add1fa6c55be0c8efb8ab Mon Sep 17 00:00:00 2001 From: Brian He Date: Wed, 21 Feb 2018 14:12:46 -0500 Subject: [PATCH 006/105] Unit Tests Outline --- .../io/zipcoder/casino/GameTools/Card.java | 5 ++ .../zipcoder/casino/GameTools/CardGame.java | 15 ++++ .../zipcoder/casino/GameTools/DiceGame.java | 18 +++++ .../zipcoder/casino/Games/BlackjackTest.java | 72 +++++++++++++++++++ .../io/zipcoder/casino/Games/CrapsTest.java | 37 ++++++++++ .../io/zipcoder/casino/Games/GoFishTest.java | 37 ++++++++++ .../io/zipcoder/casino/Games/WarTest.java | 26 +++++++ 7 files changed, 210 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Card.java create mode 100644 src/main/java/io/zipcoder/casino/GameTools/CardGame.java create mode 100644 src/main/java/io/zipcoder/casino/GameTools/DiceGame.java create mode 100644 src/test/java/io/zipcoder/casino/Games/BlackjackTest.java create mode 100644 src/test/java/io/zipcoder/casino/Games/CrapsTest.java create mode 100644 src/test/java/io/zipcoder/casino/Games/GoFishTest.java create mode 100644 src/test/java/io/zipcoder/casino/Games/WarTest.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Card.java new file mode 100644 index 00000000..62dd6f7d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Card.java @@ -0,0 +1,5 @@ +package io.zipcoder.casino.GameTools; + +public class Card { + +} diff --git a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java new file mode 100644 index 00000000..a073af33 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java @@ -0,0 +1,15 @@ +package io.zipcoder.casino.GameTools; + +import java.util.ArrayList; + +public abstract class CardGame { + int numberOfPlayers; + int maxNumberOfPlayers; + public ArrayList deck = new ArrayList(); + + public void shuffleDeck() { } + + public Card deal() { return null; } + + +} diff --git a/src/main/java/io/zipcoder/casino/GameTools/DiceGame.java b/src/main/java/io/zipcoder/casino/GameTools/DiceGame.java new file mode 100644 index 00000000..01b05350 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/DiceGame.java @@ -0,0 +1,18 @@ +package io.zipcoder.casino.GameTools; + +public abstract class DiceGame { + + public Integer dice1; + public Integer dice2; + + public Integer rollDice(){ return 0; } + + public void setDice1() { } + + public void setDice2() { } + + public Integer getDice1() { return 0; } + + public Integer getDice2() { return 0; } + +} diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java new file mode 100644 index 00000000..83a8bd50 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -0,0 +1,72 @@ +package io.zipcoder.casino.Games; + +import org.junit.Test; + +public class BlackjackTest { + + @Test + public void startTest() { + + } + + @Test + public void getHandValueTest() { + + } + + @Test + public void getValueTest() { + + } + + @Test + public void setAceTest() { + + } + + @Test + public void startRoundTest() { + + } + + @Test + public void generateDeckTest() { + + } + + @Test + public void shuffleDeckTest() { + + } + + @Test + public void buildPlayerHandTest() { + + } + + @Test + public void startTurnTest() { + + } + + @Test + public void hitOrStandTest() { + + } + + @Test + public void dealerTakesTurnTest() { + + } + + @Test + public void compareValueTest() { + + } + + @Test + public void payoutTest() { + + } + +} diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java new file mode 100644 index 00000000..e30047e6 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -0,0 +1,37 @@ +package io.zipcoder.casino.Games; + +import org.junit.Test; + +public class CrapsTest { + + @Test + public void playerBetsTest() { + + } + + @Test + public void rollDiceTest() { + + } + + @Test + public void ifPassLineTest() { + + } + + @Test + public void playAgainTest() { + + } + + @Test + public void ifDontPassLineTest() { + + } + + @Test + public void playDifferentGame() { + + } + +} diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java new file mode 100644 index 00000000..6cfd5f2e --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -0,0 +1,37 @@ +package io.zipcoder.casino.Games; + +import org.junit.Test; + +public class GoFishTest { + + @Test + public void deal() { + + } + + @Test + public void buildStockPile() { + + } + + @Test + public void isGameOver() { + + } + + @Test + public void buildPlayerHand() { + + } + + @Test + public void takeTurn() { + + } + + @Test + public void goFish() { + + } + +} diff --git a/src/test/java/io/zipcoder/casino/Games/WarTest.java b/src/test/java/io/zipcoder/casino/Games/WarTest.java new file mode 100644 index 00000000..0e487df4 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Games/WarTest.java @@ -0,0 +1,26 @@ +package io.zipcoder.casino.Games; + +import org.junit.Test; + +public class WarTest { + @Test + public void dealTest() { + + } + + @Test + public void compareTest() { + + } + + @Test + public void awardPointsToWinner() { + + } + + @Test + public void compareRankAndSuits() { + + } + +} From 3c71671c1c2a58e0b0cba74679b26a08f9177dd6 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 14:14:14 -0500 Subject: [PATCH 007/105] stashing --- .../io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java | 3 ++- src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java index 6d3c31de..ef499e34 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -1,4 +1,5 @@ package io.zipcoder.casino.Games.Blackjack; + import io.zipcoder.casino.*; public class BlackjackPlayer { @@ -7,7 +8,7 @@ public class BlackjackPlayer { private Integer age; private Card[] hand; private boolean canHit; - + public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java index 75bb12b5..678ac444 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java @@ -1,4 +1,7 @@ package io.zipcoder.casino.Games.Blackjack; +import io.zipcoder.casino.*; + public class Dealer { + private Card[] hand; } From 517a4a60256091729092d1508226816126368c05 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 14:24:53 -0500 Subject: [PATCH 008/105] Player getter, setter and constructor --- src/main/java/io/zipcoder/casino/Player.java | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Player.java b/src/main/java/io/zipcoder/casino/Player.java index afbd0da0..73451f3c 100644 --- a/src/main/java/io/zipcoder/casino/Player.java +++ b/src/main/java/io/zipcoder/casino/Player.java @@ -1,4 +1,37 @@ package io.zipcoder.casino; public class Player { + private String name; + private Integer age; + private Integer balance; + + public Player(String name, Integer age, Integer balance) { + this.name = name; + this.age = age; + this.balance = balance; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public Integer getBalance() { + return balance; + } + + public void setBalance(Integer balance) { + this.balance = balance; + } } From 04be7f51c264792d03c05ee0b39d448e3546c703 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 15:03:45 -0500 Subject: [PATCH 009/105] eh --- .../casino/Games/Blackjack/Blackjack.java | 5 ++++- .../java/io/zipcoder/casino/InputOutput.java | 20 +++++++++++++++++++ .../io/zipcoder/casino/InputOutputTest.java | 4 ++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/test/java/io/zipcoder/casino/InputOutputTest.java diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java index 464bd5c7..d567fb9d 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java @@ -1,8 +1,11 @@ package io.zipcoder.casino.Games.Blackjack; +import io.zipcoder.casino.Player; + public class Blackjack { public void start(){ + Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); - BlackjackPlayer sue = new BlackjackPlayer(); + BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } } diff --git a/src/main/java/io/zipcoder/casino/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput.java index 5227450a..aa411fbb 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput.java @@ -1,4 +1,24 @@ package io.zipcoder.casino; +import java.util.Scanner; + public class InputOutput { + Scanner input = new Scanner(System.in); + + public String scanForString(){ + String stringReturn = new String(); + if (input.hasNext()){ + stringReturn = input.nextLine(); + } + return stringReturn; + } + + public Integer scanForInt(){ + Integer integerReturn = 0; + while (!input.hasNextInt()) { + System.out.println("Please enter a valid number"); + integerReturn = input.nextInt(); + } + return integerReturn; + } } diff --git a/src/test/java/io/zipcoder/casino/InputOutputTest.java b/src/test/java/io/zipcoder/casino/InputOutputTest.java new file mode 100644 index 00000000..78c34a03 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/InputOutputTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino; + +public class InputOutputTest { +} From 8dfb752929a6bf8f22957eef1413ad5ea39429b8 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 15:42:25 -0500 Subject: [PATCH 010/105] io object working --- .../Games/Blackjack/BlackjackPlayer.java | 4 ++-- .../casino/Games/Blackjack/Dealer.java | 2 +- .../java/io/zipcoder/casino/InputOutput.java | 19 +++++++++------ .../io/zipcoder/casino/InputOutputTest.java | 24 +++++++++++++++++++ 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java index ef499e34..5b659043 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -6,14 +6,14 @@ public class BlackjackPlayer { private String name; private Integer balance; private Integer age; - private Card[] hand; + //private Card[] hand; private boolean canHit; public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); this.balance = rootPlayer.getBalance(); - this.hand = new Card[]; + //this.hand = new Card[]; this.canHit = true; } } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java index 678ac444..5c4cb1fa 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java @@ -3,5 +3,5 @@ import io.zipcoder.casino.*; public class Dealer { - private Card[] hand; + //private Card[] hand; } diff --git a/src/main/java/io/zipcoder/casino/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput.java index aa411fbb..d963b657 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput.java @@ -5,20 +5,25 @@ public class InputOutput { Scanner input = new Scanner(System.in); - public String scanForString(){ + //MUST INSTANTIATE IN CASINO + + public String scanForString() { String stringReturn = new String(); - if (input.hasNext()){ + if (input.hasNext()) { stringReturn = input.nextLine(); } return stringReturn; } public Integer scanForInt(){ - Integer integerReturn = 0; - while (!input.hasNextInt()) { - System.out.println("Please enter a valid number"); - integerReturn = input.nextInt(); - } + Integer integerReturn = input.nextInt(); return integerReturn; } + +// public static void main(String[] args) { +// InputOutput io = new InputOutput(); +// System.out.println("Enter your name"); +// String name = io.scanForString(); +// System.out.println(name); +// } } diff --git a/src/test/java/io/zipcoder/casino/InputOutputTest.java b/src/test/java/io/zipcoder/casino/InputOutputTest.java index 78c34a03..75cc9b2f 100644 --- a/src/test/java/io/zipcoder/casino/InputOutputTest.java +++ b/src/test/java/io/zipcoder/casino/InputOutputTest.java @@ -1,4 +1,28 @@ package io.zipcoder.casino; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + public class InputOutputTest { + InputOutput inputOutput; + + @Before + public void setup(){ + inputOutput = new InputOutput(); + } + + @Test + public void scanForStringTest(){ + String actual = inputOutput.scanForString(); + String expected = "f"; + Assert.assertEquals(expected, actual); + } + + @Test + public void scanForIntTest(){ + Integer actual = inputOutput.scanForInt(); + Integer expected = 5; + Assert.assertEquals(expected, actual); + } } From e22eb68f5cd36bd526bea18b0d5cf927eb9046a8 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Wed, 21 Feb 2018 15:46:06 -0500 Subject: [PATCH 011/105] Made Getter/Setters for player class --- src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java new file mode 100644 index 00000000..f0b77a0d --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.PlayerTest; + +public class PlayerTest { +} From e4c820a0c7198b3c9bec4de8ea10bfc8810e4eb2 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Wed, 21 Feb 2018 15:47:50 -0500 Subject: [PATCH 012/105] Made changes to player class --- src/main/java/io/zipcoder/casino/Casino.java | 7 +++ src/main/java/io/zipcoder/casino/Player.java | 38 ++++++++++++ .../java/io/zipcoder/casino/CasinoTest.java | 6 ++ .../casino/PlayerTest/PlayerTest.java | 60 +++++++++++++++++++ 4 files changed, 111 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 74dfdd8c..1c052ea4 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -2,4 +2,11 @@ public class Casino { + protected void askForUserName(){ + System.out.println("Hello Player! What is your name?"); + // String name = inputOutput.scanForString(); + // Player player = new Player(name, age); + // player.setName(name); + } + } diff --git a/src/main/java/io/zipcoder/casino/Player.java b/src/main/java/io/zipcoder/casino/Player.java index afbd0da0..676442a8 100644 --- a/src/main/java/io/zipcoder/casino/Player.java +++ b/src/main/java/io/zipcoder/casino/Player.java @@ -1,4 +1,42 @@ package io.zipcoder.casino; public class Player { + + String name; + Integer age; + Integer balance; + + public Player(String name, Integer age){ + this.name = name; + this.age = age; + } + + public Player(String name, Integer age, Integer balance) { + this.name = name; + this.age = age; + this.balance = balance; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + public Integer getBalance() { + return balance; + } + + public void setBalance(Integer balance) { + this.balance = balance; + } + } diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java index 9e5fff76..b0492045 100644 --- a/src/test/java/io/zipcoder/casino/CasinoTest.java +++ b/src/test/java/io/zipcoder/casino/CasinoTest.java @@ -1,4 +1,10 @@ package io.zipcoder.casino; +import org.junit.Test; + public class CasinoTest { + @Test + public void askForUserNameTest(){ + + } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index f0b77a0d..4a4385cc 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -1,4 +1,64 @@ package io.zipcoder.casino.PlayerTest; +import io.zipcoder.casino.Player; +import org.junit.Assert; +import org.junit.Test; + public class PlayerTest { + @Test + public void constructorWithNameAndAgeTest() { + String expectedName = "Bob"; + Integer expectedAge = 21; + Player player1 = new Player(expectedName, expectedAge); + + String actualName = player1.getName(); + Integer actualAge = player1.getAge(); + + Assert.assertEquals(expectedName, actualName); + Assert.assertEquals(expectedAge, actualAge); + } + + @Test + public void constructorWithNameAgeBalanceTest() { + String expectedName = "Suzy"; + Integer expectedAge = 24; + Integer expectedBalance = 100; + Player player1 = new Player(expectedName, expectedAge, expectedBalance); + + String actualName = player1.getName(); + Integer actualAge = player1.getAge(); + Integer actualBalance = player1.getBalance(); + + Assert.assertEquals(expectedName, actualName); + Assert.assertEquals(expectedAge, actualAge); + Assert.assertEquals(expectedBalance, actualBalance); + } + + @Test + public void setNameTest() { + Player player1 = new Player("George", 51); + String expected = "George"; + player1.setName(expected); + String actual = player1.getName(); + Assert.assertEquals(expected, actual); + + } + @Test + public void setAgeTest() { + Player player1 = new Player("Alex", 26); + Integer expected = 26; + player1.setAge(expected); + Integer actual = player1.getAge(); + Assert.assertEquals(expected, actual); + + } + @Test + public void setBalanceTest() { + Player player1 = new Player("Bob", 49, 100); + Integer expected = 100; + player1.setBalance(expected); + Integer actual = player1.getBalance(); + Assert.assertEquals(expected, actual); + + } } From b50ec5bfaae328a067a3545f384b09140996c6cc Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 16:15:06 -0500 Subject: [PATCH 013/105] remove extendind statement, MY BAD --- .../io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java index 5b659043..55a28770 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -2,7 +2,7 @@ import io.zipcoder.casino.*; -public class BlackjackPlayer { +public class BlackjackPlayer{ private String name; private Integer balance; private Integer age; From f9e66e903ea10f138dd900fdd16be4ffd917757e Mon Sep 17 00:00:00 2001 From: CWinarski Date: Wed, 21 Feb 2018 16:21:14 -0500 Subject: [PATCH 014/105] make changes to casino class --- src/main/java/io/zipcoder/casino/Casino.java | 14 +++++++-- .../casino/PlayerTest/PlayerTest.java | 31 +++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 1c052ea4..c6d4aedb 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -2,11 +2,21 @@ public class Casino { + + InputOutput inputOutput = new InputOutput(); + protected void askForUserName(){ + + InputOutput inputOutput = new InputOutput(); + System.out.println("Hello Player! What is your name?"); - // String name = inputOutput.scanForString(); - // Player player = new Player(name, age); + String name = inputOutput.scanForString(); + + + //Player player = new Player(name, age); // player.setName(name); } + + } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index 4a4385cc..9c9b2d67 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -43,6 +43,17 @@ public void setNameTest() { Assert.assertEquals(expected, actual); } + + @Test + public void getNameTest() { + Player player1 = new Player("George", 51); + String expected = "George"; + + String actual = player1.getName(); + Assert.assertEquals(expected, actual); + + } + @Test public void setAgeTest() { Player player1 = new Player("Alex", 26); @@ -51,6 +62,16 @@ public void setAgeTest() { Integer actual = player1.getAge(); Assert.assertEquals(expected, actual); + } + + @Test + public void getAgeTest() { + Player player1 = new Player("George", 51); + Integer expected = 51; + + Integer actual = player1.getAge(); + Assert.assertEquals(expected, actual); + } @Test public void setBalanceTest() { @@ -61,4 +82,14 @@ public void setBalanceTest() { Assert.assertEquals(expected, actual); } + + @Test + public void getBalanceTest() { + Player player1 = new Player("George", 51, 200); + Integer expected = 200; + + Integer actual = player1.getBalance(); + Assert.assertEquals(expected, actual); + + } } From eaddb0a905e1c35a15be84639072e537f17cdccf Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 17:24:48 -0500 Subject: [PATCH 015/105] break suit and rank into enum classes, add deck generator, add card constructor and methods --- .../io/zipcoder/casino/GameTools/Card.java | 22 ++++++++++++++ .../zipcoder/casino/GameTools/CardGame.java | 15 ++++++++++ .../io/zipcoder/casino/GameTools/Rank.java | 29 +++++++++++++++++++ .../io/zipcoder/casino/GameTools/Suit.java | 20 +++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Rank.java create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Suit.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Card.java index 62dd6f7d..627fce75 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Card.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Card.java @@ -1,5 +1,27 @@ package io.zipcoder.casino.GameTools; public class Card { + private Suit suitEnum; + private Rank rankEnum; + public Card(Rank rankEnum, Suit suitEnum) { + this.rankEnum = rankEnum; + this.suitEnum = suitEnum; + } + + public Suit getSuitEnum() { + return suitEnum; + } + + public void setSuitEnum(Suit suitEnum) { + this.suitEnum = suitEnum; + } + + public Rank getRankEnum() { + return rankEnum; + } + + public void setRankEnum(Rank rankEnum) { + this.rankEnum = rankEnum; + } } diff --git a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java index a073af33..6c643047 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java +++ b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java @@ -7,6 +7,21 @@ public abstract class CardGame { int maxNumberOfPlayers; public ArrayList deck = new ArrayList(); +// public void generateDeck(){ +// for (suit i = suit.S; i < suit.H; i++){ +// +// } +// } + + public void generateDeck(){ + for (Rank currentRank: Rank.values()) { + for (Suit currentSuit : Suit.values()){ + Card temp = new Card(currentRank, currentSuit); + deck.add(temp); + } + } + } + public void shuffleDeck() { } public Card deal() { return null; } diff --git a/src/main/java/io/zipcoder/casino/GameTools/Rank.java b/src/main/java/io/zipcoder/casino/GameTools/Rank.java new file mode 100644 index 00000000..63048e6f --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Rank.java @@ -0,0 +1,29 @@ +package io.zipcoder.casino.GameTools; + +public enum Rank { + + ACE(1), + TWO(2), + THREE(3), + FOUR(4), + FIVE(5), + SIX(6), + SEVEN(7), + EIGHT(8), + NINE(9), + TEN(10), + JACK(11), + QUEEN(12), + KING(13); + + private int rankValue; + + Rank(int rankValue){ + this.rankValue = rankValue; + } + + public int getRankValue(){ + return rankValue; + } + +} diff --git a/src/main/java/io/zipcoder/casino/GameTools/Suit.java b/src/main/java/io/zipcoder/casino/GameTools/Suit.java new file mode 100644 index 00000000..1728af04 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Suit.java @@ -0,0 +1,20 @@ +package io.zipcoder.casino.GameTools; + +public enum Suit { + + HEARTS("Hearts"), + CLUBS("Clubs"), + DIAMOND("Diamonds"), + SPADE("Spades"); + + private String suitValue; + + Suit(String suitValue){ + this.suitValue = suitValue; + } + + public String getSuitValue() { + return suitValue; + } + +} From a3819744d98f3505476b013a72ad439a7568d036 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 17:47:27 -0500 Subject: [PATCH 016/105] add deck generation, shuffling, tests and card enum values --- .../zipcoder/casino/GameTools/CardGame.java | 35 +++++++++++--- .../casino/GameToolsTests/CardGameTest.java | 46 +++++++++++++++++++ .../casino/GameToolsTests/DummyCardGame.java | 6 +++ 3 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/DummyCardGame.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java index 6c643047..e4969c31 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java +++ b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java @@ -1,18 +1,13 @@ package io.zipcoder.casino.GameTools; import java.util.ArrayList; +import java.util.Collections; public abstract class CardGame { int numberOfPlayers; int maxNumberOfPlayers; public ArrayList deck = new ArrayList(); -// public void generateDeck(){ -// for (suit i = suit.S; i < suit.H; i++){ -// -// } -// } - public void generateDeck(){ for (Rank currentRank: Rank.values()) { for (Suit currentSuit : Suit.values()){ @@ -22,7 +17,33 @@ public void generateDeck(){ } } - public void shuffleDeck() { } + public int getNumberOfPlayers() { + return numberOfPlayers; + } + + public void setNumberOfPlayers(int numberOfPlayers) { + this.numberOfPlayers = numberOfPlayers; + } + + public int getMaxNumberOfPlayers() { + return maxNumberOfPlayers; + } + + public void setMaxNumberOfPlayers(int maxNumberOfPlayers) { + this.maxNumberOfPlayers = maxNumberOfPlayers; + } + + public ArrayList getDeck() { + return deck; + } + + public void setDeck(ArrayList deck) { + this.deck = deck; + } + + public void shuffleDeck() { + Collections.shuffle(this.deck); + } public Card deal() { return null; } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java new file mode 100644 index 00000000..30a275aa --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java @@ -0,0 +1,46 @@ +package io.zipcoder.casino.GameToolsTests; + +import io.zipcoder.casino.GameTools.Card; +import io.zipcoder.casino.GameTools.Rank; +import io.zipcoder.casino.GameTools.Suit; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +public class CardGameTest { + + DummyCardGame dummy; + + @Before + public void setup(){ + dummy = new DummyCardGame(); + } + + @Test + public void cardConstructorTest(){ + Card temp = new Card(Rank.SEVEN, Suit.CLUBS); + Rank actual = temp.getRankEnum(); + Rank expected = Rank.SEVEN; + Assert.assertEquals(actual, expected); + } + + @Test + public void deckGeneratorTest(){ + dummy.generateDeck(); + Card actual = dummy.deck.get(0); + Card expected = new Card(Rank.ACE, Suit.HEARTS); + Assert.assertEquals(expected.getRankEnum(), actual.getRankEnum()); + } + + @Test + public void deckShuffleTest(){ + dummy.generateDeck(); + Card expected = dummy.deck.get(0); + dummy.shuffleDeck(); + Card actual = dummy.deck.get(0); + Assert.assertNotEquals(expected, actual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/DummyCardGame.java b/src/test/java/io/zipcoder/casino/GameToolsTests/DummyCardGame.java new file mode 100644 index 00000000..64cb910e --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/DummyCardGame.java @@ -0,0 +1,6 @@ +package io.zipcoder.casino.GameToolsTests; +import io.zipcoder.casino.GameTools.CardGame; + +public class DummyCardGame extends CardGame{ + +} From 8824fbbc72ff4ba3826a51d1955be6151e1bc130 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Wed, 21 Feb 2018 18:21:25 -0500 Subject: [PATCH 017/105] Made an App Class, changed Casino and IO --- src/main/java/io/zipcoder/casino/App.java | 12 ++++ src/main/java/io/zipcoder/casino/Casino.java | 57 +++++++++++++++++-- .../java/io/zipcoder/casino/InputOutput.java | 13 +++++ .../java/io/zipcoder/casino/CasinoTest.java | 2 +- 4 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/App.java diff --git a/src/main/java/io/zipcoder/casino/App.java b/src/main/java/io/zipcoder/casino/App.java new file mode 100644 index 00000000..b86d4ab4 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/App.java @@ -0,0 +1,12 @@ +package io.zipcoder.casino; + +public class App { + + public static void main(String[] args) { + + Casino casino = new Casino(); + + casino.start(); + + } +} diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index c6d4aedb..04835404 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -1,22 +1,69 @@ package io.zipcoder.casino; +import java.util.ArrayList; + public class Casino { InputOutput inputOutput = new InputOutput(); + Player player; + + + + + protected void setUpUserProfile(){ + + String name = this.askUserName(); + Integer age = this.askUserAge(); + + if(age > 21) { + Integer balance = this.askUserBalance(); + player = new Player(name, age, balance); + + } else{ + player = new Player(name, age); + } + } + + protected void showMainMenu() { + ArrayList selectedGame; + if(player.getAge() > 21) { + selectedGame = inputOutput.displayOver21Menu(); + } else { + selectedGame = inputOutput.displayUnder21Menu(); + } + } - protected void askForUserName(){ - InputOutput inputOutput = new InputOutput(); + + protected String askUserName(){ System.out.println("Hello Player! What is your name?"); String name = inputOutput.scanForString(); + return name; + + + } + + protected Integer askUserAge(){ + System.out.println("How old are you?"); + Integer age = inputOutput.scanForInt(); + return age; + } + protected Integer askUserBalance(){ + System.out.println("How much do you want to gamble with?"); + Integer balance = inputOutput.scanForInt(); + return balance; - //Player player = new Player(name, age); - // player.setName(name); } - + protected void start() { + this.setUpUserProfile(); + this.showMainMenu(); + + + } } + diff --git a/src/main/java/io/zipcoder/casino/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput.java index d963b657..d5f154e0 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput.java @@ -1,5 +1,6 @@ package io.zipcoder.casino; +import java.util.ArrayList; import java.util.Scanner; public class InputOutput { @@ -20,6 +21,18 @@ public Integer scanForInt(){ return integerReturn; } + public ArrayList displayOver21Menu(){ + return null; + } + public ArrayList displayUnder21Menu(){ + return null; + } + //generic methods + //method for menus + //create line breaks + //validate user input + + // public static void main(String[] args) { // InputOutput io = new InputOutput(); // System.out.println("Enter your name"); diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java index b0492045..fda78ff5 100644 --- a/src/test/java/io/zipcoder/casino/CasinoTest.java +++ b/src/test/java/io/zipcoder/casino/CasinoTest.java @@ -4,7 +4,7 @@ public class CasinoTest { @Test - public void askForUserNameTest(){ + public void iritl(){ } } From 64676eadad36b9981d114789a7949a663018fbd2 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Wed, 21 Feb 2018 19:39:30 -0500 Subject: [PATCH 018/105] add tests for all card relevant classes --- .../zipcoder/casino/GameTools/CardGame.java | 9 +--- .../casino/GameToolsTests/CardGameTest.java | 16 ++++++ .../casino/GameToolsTests/CardTest.java | 49 +++++++++++++++++++ .../casino/GameToolsTests/RankTest.java | 16 ++++++ .../casino/GameToolsTests/SuitTest.java | 16 ++++++ 5 files changed, 99 insertions(+), 7 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/CardTest.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/RankTest.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/SuitTest.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java index e4969c31..16ede788 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java +++ b/src/main/java/io/zipcoder/casino/GameTools/CardGame.java @@ -1,5 +1,7 @@ package io.zipcoder.casino.GameTools; +import io.zipcoder.casino.Player; + import java.util.ArrayList; import java.util.Collections; @@ -37,15 +39,8 @@ public ArrayList getDeck() { return deck; } - public void setDeck(ArrayList deck) { - this.deck = deck; - } - public void shuffleDeck() { Collections.shuffle(this.deck); } - public Card deal() { return null; } - - } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java index 30a275aa..6f713927 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java @@ -43,4 +43,20 @@ public void deckShuffleTest(){ Assert.assertNotEquals(expected, actual); } + @Test + public void getNumberOfPlayersTest(){ + dummy.setNumberOfPlayers(3); + Integer expected = 3; + Integer actual = dummy.getNumberOfPlayers(); + Assert.assertEquals(expected, actual); + } + + @Test + public void getMaxNumberOfPlayersTest(){ + dummy.setMaxNumberOfPlayers(3); + Integer expected = 3; + Integer actual = dummy.getMaxNumberOfPlayers(); + Assert.assertEquals(expected, actual); + } + } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/CardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/CardTest.java new file mode 100644 index 00000000..3477857e --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/CardTest.java @@ -0,0 +1,49 @@ +package io.zipcoder.casino.GameToolsTests; + +import io.zipcoder.casino.GameTools.Card; +import io.zipcoder.casino.GameTools.Rank; +import io.zipcoder.casino.GameTools.Suit; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class CardTest { + + Card tester; + + @Before + public void setup(){ + tester = new Card(Rank.SEVEN, Suit.CLUBS); + } + + @Test + public void getSuitTest(){ + Suit expected = tester.getSuitEnum(); + Suit actual = Suit.CLUBS; + Assert.assertEquals(expected, actual); + } + + @Test + public void getRankTest(){ + Rank expected = tester.getRankEnum(); + Rank actual = Rank.SEVEN; + Assert.assertEquals(expected, actual); + } + + @Test + public void setSuitTest(){ + tester.setSuitEnum(Suit.DIAMOND); + Suit expected = Suit.DIAMOND; + Suit actual = tester.getSuitEnum(); + Assert.assertEquals(expected, actual); + } + + @Test + public void setRankTest(){ + tester.setRankEnum(Rank.ACE); + Rank expected = Rank.ACE; + Rank actual = tester.getRankEnum(); + Assert.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/RankTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/RankTest.java new file mode 100644 index 00000000..27600575 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/RankTest.java @@ -0,0 +1,16 @@ +package io.zipcoder.casino.GameToolsTests; + +import io.zipcoder.casino.GameTools.Rank; +import org.junit.Assert; +import org.junit.Test; + +public class RankTest { + + @Test + public void getRankValueTest(){ + int actual = Rank.SIX.getRankValue(); + int expected = 6; + Assert.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/SuitTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/SuitTest.java new file mode 100644 index 00000000..85b75282 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/SuitTest.java @@ -0,0 +1,16 @@ +package io.zipcoder.casino.GameToolsTests; + +import io.zipcoder.casino.GameTools.Card; +import io.zipcoder.casino.GameTools.Suit; +import org.junit.Assert; +import org.junit.Test; + +public class SuitTest { + @Test + public void getSuitValueTest(){ + String expected = "Clubs"; + String actual = Suit.CLUBS.getSuitValue(); + Assert.assertEquals(expected, actual); + } + +} From 0e83c9847a8a3ad4b15c5bd0033d2b04d43cf0d6 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Wed, 21 Feb 2018 20:35:32 -0500 Subject: [PATCH 019/105] changed balance from int to double --- src/main/java/io/zipcoder/casino/App.java | 1 - src/main/java/io/zipcoder/casino/Casino.java | 43 ++++++------------- .../casino/Games/Blackjack/Blackjack.java | 2 +- .../Games/Blackjack/BlackjackPlayer.java | 2 +- .../zipcoder/casino/Games/GoFish/GoFish.java | 1 + .../casino/Games/GoFish/GoFishPlayer.java | 18 ++++++++ .../java/io/zipcoder/casino/InputOutput.java | 25 +++++++++++ src/main/java/io/zipcoder/casino/Player.java | 8 ++-- .../casino/PlayerTest/PlayerTest.java | 16 +++---- 9 files changed, 72 insertions(+), 44 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Games/GoFish/GoFishPlayer.java diff --git a/src/main/java/io/zipcoder/casino/App.java b/src/main/java/io/zipcoder/casino/App.java index b86d4ab4..4b30f872 100644 --- a/src/main/java/io/zipcoder/casino/App.java +++ b/src/main/java/io/zipcoder/casino/App.java @@ -5,7 +5,6 @@ public class App { public static void main(String[] args) { Casino casino = new Casino(); - casino.start(); } diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 04835404..4898e135 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -9,15 +9,27 @@ public class Casino { Player player; + protected String askUserName(){ + String name = inputOutput.promptForString("Hello Player! What is your name?"); + return name; + } + protected Integer askUserAge(){ + Integer age = inputOutput.promptInt("How old are you?"); + return age; + } - protected void setUpUserProfile(){ + protected Double askUserBalance(){ + Double balance = inputOutput.promptDouble("How much do you want to gamble with?"); + return balance; + } + protected void setUpUserProfile(){ String name = this.askUserName(); Integer age = this.askUserAge(); if(age > 21) { - Integer balance = this.askUserBalance(); + Double balance = this.askUserBalance(); player = new Player(name, age, balance); } else{ @@ -34,36 +46,9 @@ protected void showMainMenu() { } } - - - protected String askUserName(){ - - System.out.println("Hello Player! What is your name?"); - String name = inputOutput.scanForString(); - return name; - - - } - - protected Integer askUserAge(){ - System.out.println("How old are you?"); - Integer age = inputOutput.scanForInt(); - return age; - } - - protected Integer askUserBalance(){ - System.out.println("How much do you want to gamble with?"); - Integer balance = inputOutput.scanForInt(); - return balance; - - } - protected void start() { this.setUpUserProfile(); this.showMainMenu(); - - } - } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java index d567fb9d..6799c364 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java @@ -4,7 +4,7 @@ public class Blackjack { public void start(){ - Player sue = new Player("sue", 30, 1000); + Player sue = new Player("sue", 30, 1000.00); Dealer bkjkDealer = new Dealer(); BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java index 55a28770..b5ca6911 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java @@ -4,7 +4,7 @@ public class BlackjackPlayer{ private String name; - private Integer balance; + private Double balance; private Integer age; //private Card[] hand; private boolean canHit; diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java index ad6667a1..fa99670e 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java @@ -1,4 +1,5 @@ package io.zipcoder.casino.Games.GoFish; public class GoFish { + } diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Games/GoFish/GoFishPlayer.java new file mode 100644 index 00000000..ad668a74 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/GoFish/GoFishPlayer.java @@ -0,0 +1,18 @@ +package io.zipcoder.casino.Games.GoFish; + +import io.zipcoder.casino.Player; + +public class GoFishPlayer { + private String name; + private Double balance; + private Integer age; + //private Card[] hand; + + + public GoFishPlayer(Player rootPlayer) { + this.name = rootPlayer.getName(); + this.age = rootPlayer.getAge(); + this.balance = rootPlayer.getBalance(); + + } +} diff --git a/src/main/java/io/zipcoder/casino/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput.java index d5f154e0..cbb78681 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput.java @@ -21,12 +21,37 @@ public Integer scanForInt(){ return integerReturn; } + public Double scanForDouble(){ + Double doubleReturn = input.nextDouble(); + return doubleReturn; + } + public ArrayList displayOver21Menu(){ return null; } public ArrayList displayUnder21Menu(){ return null; } + + + public String promptForString(String message) { + System.out.println(message); + return scanForString(); + } + + public int promptInt(String message) { + System.out.println(message); + return scanForInt(); + } + + public Double promptDouble(String message) { + System.out.println(message); + return scanForDouble(); + } + + + + //generic methods //method for menus //create line breaks diff --git a/src/main/java/io/zipcoder/casino/Player.java b/src/main/java/io/zipcoder/casino/Player.java index ca08ca37..cce8468a 100644 --- a/src/main/java/io/zipcoder/casino/Player.java +++ b/src/main/java/io/zipcoder/casino/Player.java @@ -4,7 +4,7 @@ public class Player { private String name; private Integer age; - private Integer balance; + private Double balance; @@ -14,7 +14,7 @@ public Player(String name, Integer age){ } - public Player(String name, Integer age, Integer balance) { + public Player(String name, Integer age, Double balance) { this.name = name; this.age = age; this.balance = balance; @@ -36,11 +36,11 @@ public void setAge(Integer age) { this.age = age; } - public Integer getBalance() { + public Double getBalance() { return balance; } - public void setBalance(Integer balance) { + public void setBalance(Double balance) { this.balance = balance; } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index 9c9b2d67..2c09841f 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -22,12 +22,12 @@ public void constructorWithNameAndAgeTest() { public void constructorWithNameAgeBalanceTest() { String expectedName = "Suzy"; Integer expectedAge = 24; - Integer expectedBalance = 100; + Double expectedBalance = 100.00; Player player1 = new Player(expectedName, expectedAge, expectedBalance); String actualName = player1.getName(); Integer actualAge = player1.getAge(); - Integer actualBalance = player1.getBalance(); + Double actualBalance = player1.getBalance(); Assert.assertEquals(expectedName, actualName); Assert.assertEquals(expectedAge, actualAge); @@ -75,20 +75,20 @@ public void getAgeTest() { } @Test public void setBalanceTest() { - Player player1 = new Player("Bob", 49, 100); - Integer expected = 100; + Player player1 = new Player("Bob", 49, 100.00); + Double expected = 100.00; player1.setBalance(expected); - Integer actual = player1.getBalance(); + Double actual = player1.getBalance(); Assert.assertEquals(expected, actual); } @Test public void getBalanceTest() { - Player player1 = new Player("George", 51, 200); - Integer expected = 200; + Player player1 = new Player("George", 51, 200.00); + Double expected = 200.00; - Integer actual = player1.getBalance(); + Double actual = player1.getBalance(); Assert.assertEquals(expected, actual); } From 07119e7a2c39d9ade028733d571d30b3da90de92 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Thu, 22 Feb 2018 09:45:05 -0500 Subject: [PATCH 020/105] Start the beginnings of CrapsPlayer --- src/main/java/io/zipcoder/casino/Games/Craps/Craps.java | 2 ++ .../java/io/zipcoder/casino/Games/Craps/CrapsPlayer.java | 9 +++++++++ 2 files changed, 11 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/Games/Craps/CrapsPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java index 6937c952..7377f3f5 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java @@ -1,4 +1,6 @@ package io.zipcoder.casino.Games.Craps; public class Craps { + CrapsPlayer player = new CrapsPlayer(); + } diff --git a/src/main/java/io/zipcoder/casino/Games/Craps/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Games/Craps/CrapsPlayer.java new file mode 100644 index 00000000..1b88564e --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/Craps/CrapsPlayer.java @@ -0,0 +1,9 @@ +package io.zipcoder.casino.Games.Craps; + +import io.zipcoder.casino.Player; + +public class CrapsPlayer extends Player{ + + + +} From d7e19d643dc42ca4a938ca97f1ee4b93c3a4ef79 Mon Sep 17 00:00:00 2001 From: Brian He Date: Thu, 22 Feb 2018 10:50:02 -0500 Subject: [PATCH 021/105] restructure the packages so that everything is more compartmentalized --- .../casino/GameTools/{ => Deck}/Card.java | 0 .../casino/GameTools/{ => Deck}/Rank.java | 0 .../casino/GameTools/{ => Deck}/Suit.java | 0 .../zipcoder/casino/GameTools/DiceGame.java | 18 ------------ .../Games/{Blackjack => }/Blackjack.java | 0 .../casino/{GameTools => Games}/CardGame.java | 0 .../casino/Games/{Craps => }/Craps.java | 0 .../Games/{Blackjack => Dealer}/Dealer.java | 0 .../io/zipcoder/casino/Games/DiceGame.java | 28 +++++++++++++++++++ .../casino/Games/{GoFish => }/GoFish.java | 0 .../zipcoder/casino/Games/{War => }/War.java | 2 ++ .../casino/{ => InputOutput}/InputOutput.java | 0 .../casino/{ => Interfaces}/Gamble.java | 0 .../casino/{ => Interfaces}/Game.java | 0 .../BlackjackPlayer.java | 0 .../GoFish => Players}/GoFishPlayer.java | 0 .../zipcoder/casino/{ => Players}/Player.java | 0 17 files changed, 30 insertions(+), 18 deletions(-) rename src/main/java/io/zipcoder/casino/GameTools/{ => Deck}/Card.java (100%) rename src/main/java/io/zipcoder/casino/GameTools/{ => Deck}/Rank.java (100%) rename src/main/java/io/zipcoder/casino/GameTools/{ => Deck}/Suit.java (100%) delete mode 100644 src/main/java/io/zipcoder/casino/GameTools/DiceGame.java rename src/main/java/io/zipcoder/casino/Games/{Blackjack => }/Blackjack.java (100%) rename src/main/java/io/zipcoder/casino/{GameTools => Games}/CardGame.java (100%) rename src/main/java/io/zipcoder/casino/Games/{Craps => }/Craps.java (100%) rename src/main/java/io/zipcoder/casino/Games/{Blackjack => Dealer}/Dealer.java (100%) create mode 100644 src/main/java/io/zipcoder/casino/Games/DiceGame.java rename src/main/java/io/zipcoder/casino/Games/{GoFish => }/GoFish.java (100%) rename src/main/java/io/zipcoder/casino/Games/{War => }/War.java (96%) rename src/main/java/io/zipcoder/casino/{ => InputOutput}/InputOutput.java (100%) rename src/main/java/io/zipcoder/casino/{ => Interfaces}/Gamble.java (100%) rename src/main/java/io/zipcoder/casino/{ => Interfaces}/Game.java (100%) rename src/main/java/io/zipcoder/casino/{Games/Blackjack => Players}/BlackjackPlayer.java (100%) rename src/main/java/io/zipcoder/casino/{Games/GoFish => Players}/GoFishPlayer.java (100%) rename src/main/java/io/zipcoder/casino/{ => Players}/Player.java (100%) diff --git a/src/main/java/io/zipcoder/casino/GameTools/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java similarity index 100% rename from src/main/java/io/zipcoder/casino/GameTools/Card.java rename to src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/Rank.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java similarity index 100% rename from src/main/java/io/zipcoder/casino/GameTools/Rank.java rename to src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/Suit.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java similarity index 100% rename from src/main/java/io/zipcoder/casino/GameTools/Suit.java rename to src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/DiceGame.java b/src/main/java/io/zipcoder/casino/GameTools/DiceGame.java deleted file mode 100644 index 01b05350..00000000 --- a/src/main/java/io/zipcoder/casino/GameTools/DiceGame.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.zipcoder.casino.GameTools; - -public abstract class DiceGame { - - public Integer dice1; - public Integer dice2; - - public Integer rollDice(){ return 0; } - - public void setDice1() { } - - public void setDice2() { } - - public Integer getDice1() { return 0; } - - public Integer getDice2() { return 0; } - -} diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Games/Blackjack/Blackjack.java rename to src/main/java/io/zipcoder/casino/Games/Blackjack.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/CardGame.java b/src/main/java/io/zipcoder/casino/Games/CardGame.java similarity index 100% rename from src/main/java/io/zipcoder/casino/GameTools/CardGame.java rename to src/main/java/io/zipcoder/casino/Games/CardGame.java diff --git a/src/main/java/io/zipcoder/casino/Games/Craps/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Games/Craps/Craps.java rename to src/main/java/io/zipcoder/casino/Games/Craps.java diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Games/Blackjack/Dealer.java rename to src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java diff --git a/src/main/java/io/zipcoder/casino/Games/DiceGame.java b/src/main/java/io/zipcoder/casino/Games/DiceGame.java new file mode 100644 index 00000000..0f7032f4 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/DiceGame.java @@ -0,0 +1,28 @@ +package io.zipcoder.casino.GameTools; + +public abstract class DiceGame { + + public Integer dice1; + public Integer dice2; + + public Integer rollDice(){ + return 0; + } + + public void setDice1() { + + } + + public void setDice2() { + + } + + public Integer getDice1() { + return 0; + } + + public Integer getDice2() { + return 0; + } + +} diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Games/GoFish/GoFish.java rename to src/main/java/io/zipcoder/casino/Games/GoFish.java diff --git a/src/main/java/io/zipcoder/casino/Games/War/War.java b/src/main/java/io/zipcoder/casino/Games/War.java similarity index 96% rename from src/main/java/io/zipcoder/casino/Games/War/War.java rename to src/main/java/io/zipcoder/casino/Games/War.java index b4c68b41..53f436b2 100644 --- a/src/main/java/io/zipcoder/casino/Games/War/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -1,4 +1,6 @@ package io.zipcoder.casino.Games.War; public class War { + + } diff --git a/src/main/java/io/zipcoder/casino/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java similarity index 100% rename from src/main/java/io/zipcoder/casino/InputOutput.java rename to src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java diff --git a/src/main/java/io/zipcoder/casino/Gamble.java b/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Gamble.java rename to src/main/java/io/zipcoder/casino/Interfaces/Gamble.java diff --git a/src/main/java/io/zipcoder/casino/Game.java b/src/main/java/io/zipcoder/casino/Interfaces/Game.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Game.java rename to src/main/java/io/zipcoder/casino/Interfaces/Game.java diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Games/Blackjack/BlackjackPlayer.java rename to src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Games/GoFish/GoFishPlayer.java rename to src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java similarity index 100% rename from src/main/java/io/zipcoder/casino/Player.java rename to src/main/java/io/zipcoder/casino/Players/Player.java From f77344550dbc3fe2c8e0907247202b17036d6dfb Mon Sep 17 00:00:00 2001 From: Brian He Date: Thu, 22 Feb 2018 11:02:14 -0500 Subject: [PATCH 022/105] restructure the test packages as well --- .../io/zipcoder/casino/GameToolsTests/{ => Deck}/CardTest.java | 0 .../zipcoder/casino/GameToolsTests/{ => Deck}/DummyCardGame.java | 0 .../io/zipcoder/casino/GameToolsTests/{ => Deck}/RankTest.java | 0 .../io/zipcoder/casino/GameToolsTests/{ => Deck}/SuitTest.java | 0 .../zipcoder/casino/{GameToolsTests => Games}/CardGameTest.java | 0 .../io/zipcoder/casino/{ => InputOutput}/InputOutputTest.java | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename src/test/java/io/zipcoder/casino/GameToolsTests/{ => Deck}/CardTest.java (100%) rename src/test/java/io/zipcoder/casino/GameToolsTests/{ => Deck}/DummyCardGame.java (100%) rename src/test/java/io/zipcoder/casino/GameToolsTests/{ => Deck}/RankTest.java (100%) rename src/test/java/io/zipcoder/casino/GameToolsTests/{ => Deck}/SuitTest.java (100%) rename src/test/java/io/zipcoder/casino/{GameToolsTests => Games}/CardGameTest.java (100%) rename src/test/java/io/zipcoder/casino/{ => InputOutput}/InputOutputTest.java (100%) diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/CardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java similarity index 100% rename from src/test/java/io/zipcoder/casino/GameToolsTests/CardTest.java rename to src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/DummyCardGame.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DummyCardGame.java similarity index 100% rename from src/test/java/io/zipcoder/casino/GameToolsTests/DummyCardGame.java rename to src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DummyCardGame.java diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/RankTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/RankTest.java similarity index 100% rename from src/test/java/io/zipcoder/casino/GameToolsTests/RankTest.java rename to src/test/java/io/zipcoder/casino/GameToolsTests/Deck/RankTest.java diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/SuitTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java similarity index 100% rename from src/test/java/io/zipcoder/casino/GameToolsTests/SuitTest.java rename to src/test/java/io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java b/src/test/java/io/zipcoder/casino/Games/CardGameTest.java similarity index 100% rename from src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java rename to src/test/java/io/zipcoder/casino/Games/CardGameTest.java diff --git a/src/test/java/io/zipcoder/casino/InputOutputTest.java b/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java similarity index 100% rename from src/test/java/io/zipcoder/casino/InputOutputTest.java rename to src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java From 10ed3d8d5026de688ac3bda75cf66d0da31e8c58 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 11:06:17 -0500 Subject: [PATCH 023/105] stashing --- .../io/zipcoder/casino/GameToolsTests/CardGameTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java index 6f713927..5c2d7748 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/CardGameTest.java @@ -59,4 +59,12 @@ public void getMaxNumberOfPlayersTest(){ Assert.assertEquals(expected, actual); } + @Test + public void getDeckTest(){ + dummy.generateDeck(); + ArrayList actual = dummy.getDeck(); + ArrayList expected = dummy.deck; + Assert.assertEquals(expected, actual); + } + } From eacf63c958042013e22ad37127615a740ae19016 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 11:22:40 -0500 Subject: [PATCH 024/105] repairing imports and packages --- src/main/java/io/zipcoder/casino/Casino.java | 3 +++ src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java | 2 +- src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java | 2 +- src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java | 2 +- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 4 +++- src/main/java/io/zipcoder/casino/Games/CardGame.java | 6 ++++-- src/main/java/io/zipcoder/casino/Games/Craps.java | 2 +- src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java | 2 +- src/main/java/io/zipcoder/casino/Games/DiceGame.java | 2 +- src/main/java/io/zipcoder/casino/Games/GoFish.java | 2 +- src/main/java/io/zipcoder/casino/Games/War.java | 2 +- .../java/io/zipcoder/casino/InputOutput/InputOutput.java | 2 +- src/main/java/io/zipcoder/casino/Interfaces/Gamble.java | 2 +- src/main/java/io/zipcoder/casino/Interfaces/Game.java | 2 +- .../java/io/zipcoder/casino/Players/BlackjackPlayer.java | 6 ++---- src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java | 4 +--- src/main/java/io/zipcoder/casino/Players/Player.java | 7 ++++++- 17 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 4898e135..24d4f53b 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -1,8 +1,11 @@ package io.zipcoder.casino; +import io.zipcoder.casino.InputOutput.InputOutput; +import io.zipcoder.casino.Players.Player; import java.util.ArrayList; + public class Casino { InputOutput inputOutput = new InputOutput(); diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java index 627fce75..88a43454 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.GameTools; +package io.zipcoder.casino.GameTools.Deck; public class Card { private Suit suitEnum; diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java index 63048e6f..2e4012af 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.GameTools; +package io.zipcoder.casino.GameTools.Deck; public enum Rank { diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java index 1728af04..1d8e1fe5 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Suit.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.GameTools; +package io.zipcoder.casino.GameTools.Deck; public enum Suit { diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 6799c364..f25488d0 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,6 +1,8 @@ -package io.zipcoder.casino.Games.Blackjack; +package io.zipcoder.casino.Games; import io.zipcoder.casino.Player; +import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.Players.BlackjackPlayer; public class Blackjack { public void start(){ diff --git a/src/main/java/io/zipcoder/casino/Games/CardGame.java b/src/main/java/io/zipcoder/casino/Games/CardGame.java index 16ede788..c29ea5e8 100644 --- a/src/main/java/io/zipcoder/casino/Games/CardGame.java +++ b/src/main/java/io/zipcoder/casino/Games/CardGame.java @@ -1,6 +1,8 @@ -package io.zipcoder.casino.GameTools; +package io.zipcoder.casino.Games; -import io.zipcoder.casino.Player; +import io.zipcoder.casino.GameTools.Card; +import io.zipcoder.casino.GameTools.Rank; +import io.zipcoder.casino.GameTools.Suit; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 6937c952..151d5f26 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.Games.Craps; +package io.zipcoder.casino.Games; public class Craps { } diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index 5c4cb1fa..6f6b3474 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.Games.Blackjack; +package io.zipcoder.casino.Games.Dealer; import io.zipcoder.casino.*; diff --git a/src/main/java/io/zipcoder/casino/Games/DiceGame.java b/src/main/java/io/zipcoder/casino/Games/DiceGame.java index 0f7032f4..7bf18d34 100644 --- a/src/main/java/io/zipcoder/casino/Games/DiceGame.java +++ b/src/main/java/io/zipcoder/casino/Games/DiceGame.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.GameTools; +package io.zipcoder.casino.Games; public abstract class DiceGame { diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index fa99670e..1e966a48 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.Games.GoFish; +package io.zipcoder.casino.Games; public class GoFish { diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index 53f436b2..4e8685d6 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.Games.War; +package io.zipcoder.casino.Games; public class War { diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index cbb78681..4124d3aa 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino; +package io.zipcoder.casino.InputOutput; import java.util.ArrayList; import java.util.Scanner; diff --git a/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java b/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java index a4374a5d..0c2feb03 100644 --- a/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java +++ b/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino; +package io.zipcoder.casino.Interfaces; public interface Gamble { diff --git a/src/main/java/io/zipcoder/casino/Interfaces/Game.java b/src/main/java/io/zipcoder/casino/Interfaces/Game.java index 336e7af4..c9df99d1 100644 --- a/src/main/java/io/zipcoder/casino/Interfaces/Game.java +++ b/src/main/java/io/zipcoder/casino/Interfaces/Game.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino; +package io.zipcoder.casino.Interfaces; public interface Game { diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index b5ca6911..f28162ec 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,8 +1,6 @@ -package io.zipcoder.casino.Games.Blackjack; +package io.zipcoder.casino.Players; -import io.zipcoder.casino.*; - -public class BlackjackPlayer{ +public class BlackjackPlayer extends Player{ private String name; private Double balance; private Integer age; diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index ad668a74..6c8c2616 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -1,6 +1,4 @@ -package io.zipcoder.casino.Games.GoFish; - -import io.zipcoder.casino.Player; +package io.zipcoder.casino.Players; public class GoFishPlayer { private String name; diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index cce8468a..29f24c78 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino; +package io.zipcoder.casino.Players; public class Player { @@ -13,6 +13,11 @@ public Player(String name, Integer age){ this.age = age; } + public Player(){ + this.name = ""; + this.age = Integer.MAX_VALUE; + } + public Player(String name, Integer age, Double balance) { this.name = name; From 080331631e418cf82127f70b66b16f7a6b06bab6 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 11:40:09 -0500 Subject: [PATCH 025/105] fully repaired structure, tests passing --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 3 ++- src/main/java/io/zipcoder/casino/Games/CardGame.java | 6 +++--- .../io/zipcoder/casino/GameToolsTests/Deck/CardTest.java | 9 +++++---- .../casino/GameToolsTests/Deck/DummyCardGame.java | 4 ++-- .../io/zipcoder/casino/GameToolsTests/Deck/RankTest.java | 5 +++-- .../io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java | 6 +++--- src/test/java/io/zipcoder/casino/Games/CardGameTest.java | 9 +++++---- .../io/zipcoder/casino/InputOutput/InputOutputTest.java | 3 ++- .../java/io/zipcoder/casino/PlayerTest/PlayerTest.java | 3 ++- 9 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index f25488d0..49b47a64 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,8 +1,9 @@ package io.zipcoder.casino.Games; -import io.zipcoder.casino.Player; + import io.zipcoder.casino.Games.Dealer.Dealer; import io.zipcoder.casino.Players.BlackjackPlayer; +import io.zipcoder.casino.Players.Player; public class Blackjack { public void start(){ diff --git a/src/main/java/io/zipcoder/casino/Games/CardGame.java b/src/main/java/io/zipcoder/casino/Games/CardGame.java index c29ea5e8..58c73256 100644 --- a/src/main/java/io/zipcoder/casino/Games/CardGame.java +++ b/src/main/java/io/zipcoder/casino/Games/CardGame.java @@ -1,8 +1,8 @@ package io.zipcoder.casino.Games; -import io.zipcoder.casino.GameTools.Card; -import io.zipcoder.casino.GameTools.Rank; -import io.zipcoder.casino.GameTools.Suit; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; import java.util.ArrayList; import java.util.Collections; diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java index 3477857e..96cf9ccc 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java @@ -1,8 +1,9 @@ -package io.zipcoder.casino.GameToolsTests; +package io.zipcoder.casino.GameToolsTests.Deck; -import io.zipcoder.casino.GameTools.Card; -import io.zipcoder.casino.GameTools.Rank; -import io.zipcoder.casino.GameTools.Suit; + +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DummyCardGame.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DummyCardGame.java index 64cb910e..2461e26a 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DummyCardGame.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DummyCardGame.java @@ -1,5 +1,5 @@ -package io.zipcoder.casino.GameToolsTests; -import io.zipcoder.casino.GameTools.CardGame; +package io.zipcoder.casino.GameToolsTests.Deck; +import io.zipcoder.casino.Games.CardGame; public class DummyCardGame extends CardGame{ diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/RankTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/RankTest.java index 27600575..e2457899 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/RankTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/RankTest.java @@ -1,6 +1,7 @@ -package io.zipcoder.casino.GameToolsTests; +package io.zipcoder.casino.GameToolsTests.Deck; -import io.zipcoder.casino.GameTools.Rank; + +import io.zipcoder.casino.GameTools.Deck.Rank; import org.junit.Assert; import org.junit.Test; diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java index 85b75282..db0861c3 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/SuitTest.java @@ -1,7 +1,7 @@ -package io.zipcoder.casino.GameToolsTests; +package io.zipcoder.casino.GameToolsTests.Deck; -import io.zipcoder.casino.GameTools.Card; -import io.zipcoder.casino.GameTools.Suit; + +import io.zipcoder.casino.GameTools.Deck.Suit; import org.junit.Assert; import org.junit.Test; diff --git a/src/test/java/io/zipcoder/casino/Games/CardGameTest.java b/src/test/java/io/zipcoder/casino/Games/CardGameTest.java index 6f713927..1cf8a055 100644 --- a/src/test/java/io/zipcoder/casino/Games/CardGameTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CardGameTest.java @@ -1,8 +1,9 @@ -package io.zipcoder.casino.GameToolsTests; +package io.zipcoder.casino.Games; -import io.zipcoder.casino.GameTools.Card; -import io.zipcoder.casino.GameTools.Rank; -import io.zipcoder.casino.GameTools.Suit; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.GameToolsTests.Deck.DummyCardGame; import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java b/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java index 75cc9b2f..51926d37 100644 --- a/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java +++ b/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java @@ -1,9 +1,10 @@ -package io.zipcoder.casino; +package io.zipcoder.casino.InputOutput; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +//these hang on runtime, dont work. kris says dont test so :/ public class InputOutputTest { InputOutput inputOutput; diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index 2c09841f..a2b33989 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.PlayerTest; -import io.zipcoder.casino.Player; + +import io.zipcoder.casino.Players.Player; import org.junit.Assert; import org.junit.Test; From b88f334b9e6300093b9b3373cb3b516cdb8d99f3 Mon Sep 17 00:00:00 2001 From: Brian He Date: Thu, 22 Feb 2018 14:15:32 -0500 Subject: [PATCH 026/105] create a separate deck class that contains methods specific to decks. The CardGame class will have a default constructor that generates a deck --- src/main/java/io/zipcoder/casino/App.java | 2 +- .../zipcoder/casino/GameTools/Deck/Deck.java | 21 ++++++++++++++ .../io/zipcoder/casino/Games/CardGame.java | 28 ++++--------------- .../casino/GameToolsTests/Deck/DeckTest.java | 4 +++ 4 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java diff --git a/src/main/java/io/zipcoder/casino/App.java b/src/main/java/io/zipcoder/casino/App.java index 4b30f872..ab777f59 100644 --- a/src/main/java/io/zipcoder/casino/App.java +++ b/src/main/java/io/zipcoder/casino/App.java @@ -8,4 +8,4 @@ public static void main(String[] args) { casino.start(); } -} +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java new file mode 100644 index 00000000..c7ef835b --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java @@ -0,0 +1,21 @@ +package io.zipcoder.casino.GameTools.Deck; + +import java.util.ArrayList; +import java.util.Collections; + +public class Deck { + + public ArrayList deck = new ArrayList(); + + public Deck(){ + for (Rank currentRank: Rank.values()) { + for (Suit currentSuit : Suit.values()){ + Card temp = new Card(currentRank, currentSuit); + deck.add(temp); + } + } + } + public void shuffleDeck() { + Collections.shuffle(this.deck); + } +} diff --git a/src/main/java/io/zipcoder/casino/Games/CardGame.java b/src/main/java/io/zipcoder/casino/Games/CardGame.java index 58c73256..4f09efe3 100644 --- a/src/main/java/io/zipcoder/casino/Games/CardGame.java +++ b/src/main/java/io/zipcoder/casino/Games/CardGame.java @@ -1,25 +1,12 @@ package io.zipcoder.casino.Games; - import io.zipcoder.casino.GameTools.Deck.Card; -import io.zipcoder.casino.GameTools.Deck.Rank; -import io.zipcoder.casino.GameTools.Deck.Suit; - -import java.util.ArrayList; -import java.util.Collections; +import io.zipcoder.casino.GameTools.Deck.Deck; public abstract class CardGame { int numberOfPlayers; int maxNumberOfPlayers; - public ArrayList deck = new ArrayList(); + Deck deck; - public void generateDeck(){ - for (Rank currentRank: Rank.values()) { - for (Suit currentSuit : Suit.values()){ - Card temp = new Card(currentRank, currentSuit); - deck.add(temp); - } - } - } public int getNumberOfPlayers() { return numberOfPlayers; @@ -37,12 +24,9 @@ public void setMaxNumberOfPlayers(int maxNumberOfPlayers) { this.maxNumberOfPlayers = maxNumberOfPlayers; } - public ArrayList getDeck() { - return deck; + public CardGame(){ + this.numberOfPlayers = 0; + this.maxNumberOfPlayers = 0; + this.deck = new Deck(); } - - public void shuffleDeck() { - Collections.shuffle(this.deck); - } - } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java new file mode 100644 index 00000000..8f2998bc --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.GameToolsTests.Deck; + +public class DeckTest { +} From fb6f7889ba7543020aa455b4050fa2910ced016d Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Thu, 22 Feb 2018 14:19:25 -0500 Subject: [PATCH 027/105] added methods and tests to goFishGame --- .../java/io/zipcoder/casino/Games/GoFish.java | 143 ++++++++++++++++++ .../zipcoder/casino/Players/GoFishPlayer.java | 16 +- .../io/zipcoder/casino/Games/GoFishTest.java | 17 ++- .../casino/PlayerTest/GoFishPlayerTest.java | 28 ++++ 4 files changed, 195 insertions(+), 9 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 1e966a48..163b5028 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -1,5 +1,148 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.Casino; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.Players.GoFishPlayer; +import io.zipcoder.casino.Players.Player; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.Queue; + public class GoFish { + Queue stockPile; + + + + public void start() { + Player rootPlayer = new Player("Bob", 45, 100.00); + Player goFishPlayer1 = new GoFishPlayer(rootPlayer); + + CardGame cardGame = new CardGame() { + @Override + public void generateDeck() { + super.generateDeck(); + } + + @Override + public int getNumberOfPlayers() { + return super.getNumberOfPlayers(); + } + + @Override + public void setNumberOfPlayers(int numberOfPlayers) { + super.setNumberOfPlayers(numberOfPlayers); + } + + @Override + public int getMaxNumberOfPlayers() { + return super.getMaxNumberOfPlayers(); + } + + @Override + public void setMaxNumberOfPlayers(int maxNumberOfPlayers) { + super.setMaxNumberOfPlayers(maxNumberOfPlayers); + } + + @Override + public ArrayList getDeck() { + return super.getDeck(); + } + + @Override + public void shuffleDeck() { + super.shuffleDeck(); + } + }; + + } + + public Queue getStockPile = new Queue() { + public boolean add(Card card) { + return false; + } + + public boolean offer(Card card) { + return false; + } + + public Card remove() { + return null; + } + + public Card poll() { + return null; + } + + public Card element() { + return null; + } + + public Card peek() { + return null; + } + + public int size() { + return 0; + } + + public boolean isEmpty() { + return false; + } + + public boolean contains(Object o) { + return false; + } + + public Iterator iterator() { + return null; + } + + public Object[] toArray() { + return new Object[0]; + } + + public T[] toArray(T[] a) { + return null; + } + + public boolean remove(Object o) { + return false; + } + + public boolean containsAll(Collection c) { + return false; + } + + public boolean addAll(Collection c) { + return false; + } + + public boolean removeAll(Collection c) { + return false; + } + + public boolean retainAll(Collection c) { + return false; + } + + public void clear() { + + } + }; + + public void deal() { + + } + + public String displayCardHand() { + return ""; + } + + public boolean isGameOver() { + return false; + } + } diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index 6c8c2616..db484bf2 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -1,16 +1,26 @@ package io.zipcoder.casino.Players; +import io.zipcoder.casino.GameTools.Deck.Card; -public class GoFishPlayer { +import java.util.ArrayList; +import java.util.List; + + + +public class GoFishPlayer extends Player { private String name; private Double balance; private Integer age; - //private Card[] hand; + private List cardHand; public GoFishPlayer(Player rootPlayer) { this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); this.balance = rootPlayer.getBalance(); - + cardHand = new ArrayList(); } + + + + } diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java index 6cfd5f2e..cf932055 100644 --- a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -5,32 +5,37 @@ public class GoFishTest { @Test - public void deal() { + public void dealTest() { } @Test - public void buildStockPile() { + public void buildStockPileTest() { } @Test - public void isGameOver() { + public void isGameOverTest() { } @Test - public void buildPlayerHand() { + public void buildPlayerHandTest() { } @Test - public void takeTurn() { + public void takeTurnTest() { } @Test - public void goFish() { + public void goFishTest() { + + } + + @Test + public void displayCardHandTest() { } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java new file mode 100644 index 00000000..fce4e307 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -0,0 +1,28 @@ +package io.zipcoder.casino.PlayerTest; +import io.zipcoder.casino.Players.GoFishPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Test; + + + +public class GoFishPlayerTest { + + @Test + public void constructorTest() { + String expectedName = "Bob"; + Integer expectedAge = 24; + Double expectedBalance = 50.00; + + Player player1 = new Player(expectedName, expectedAge, expectedBalance); + Player goFishPlayer1 = new GoFishPlayer(player1); + + String actualName = goFishPlayer1.getName(); + Integer actualAge = player1.getAge(); + Double actualBalance = player1.getBalance(); + + Assert.assertEquals(expectedName, actualName); + Assert.assertEquals(expectedAge, actualAge); + Assert.assertEquals(expectedBalance, actualBalance); + } +} From ae998ae836ff3b21dd081109a44f0549ef62ae01 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 14:41:39 -0500 Subject: [PATCH 028/105] add wallet test --- src/main/java/io/zipcoder/casino/Wallet.java | 17 +++++++++++++++++ .../java/io/zipcoder/casino/WalletTest.java | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/Wallet.java create mode 100644 src/test/java/io/zipcoder/casino/WalletTest.java diff --git a/src/main/java/io/zipcoder/casino/Wallet.java b/src/main/java/io/zipcoder/casino/Wallet.java new file mode 100644 index 00000000..ba8a0643 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Wallet.java @@ -0,0 +1,17 @@ +package io.zipcoder.casino; + +public class Wallet { + private int balance; + + public Wallet(){ + this.balance = 0; + } + + public Wallet(int balance){ + this.balance = balance; + } + + public int getBalance(){ + return this.balance; + } +} diff --git a/src/test/java/io/zipcoder/casino/WalletTest.java b/src/test/java/io/zipcoder/casino/WalletTest.java new file mode 100644 index 00000000..31fae4fd --- /dev/null +++ b/src/test/java/io/zipcoder/casino/WalletTest.java @@ -0,0 +1,16 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; + +public class WalletTest { + Wallet dummy; + + @Test + public void constructorTest(){ + dummy = new Wallet(1000); + int actual = 1000; + int expected = dummy.getBalance(); + Assert.assertEquals(expected, actual); + } +} From 75dece37e8bef572f8ddc0edc249e56a22e33ecd Mon Sep 17 00:00:00 2001 From: Brian He Date: Thu, 22 Feb 2018 14:43:06 -0500 Subject: [PATCH 029/105] change card game tests --- .../zipcoder/casino/GameTools/Deck/Deck.java | 2 +- .../casino/GameToolsTests/Deck/DeckTest.java | 34 +++++++++++++++++++ .../zipcoder/casino/Games/CardGameTest.java | 26 -------------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java index c7ef835b..b5bed80a 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java @@ -7,7 +7,7 @@ public class Deck { public ArrayList deck = new ArrayList(); - public Deck(){ + public Deck() { for (Rank currentRank: Rank.values()) { for (Suit currentSuit : Suit.values()){ Card temp = new Card(currentRank, currentSuit); diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java index 8f2998bc..9aff5259 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java @@ -1,4 +1,38 @@ package io.zipcoder.casino.GameToolsTests.Deck; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import org.junit.Assert; +import org.junit.Test; public class DeckTest { + + Deck dummy = new Deck(); + + @Test + public void cardConstructorTest(){ + Card temp = new Card(Rank.SEVEN, Suit.CLUBS); + Rank actual = temp.getRankEnum(); + Rank expected = Rank.SEVEN; + Assert.assertEquals(actual, expected); + } + + @Test + public void deckGeneratorTest(){ + Card actual = dummy.deck.get(0); + Card expected = new Card(Rank.ACE, Suit.HEARTS); + Assert.assertEquals(expected.getRankEnum(), actual.getRankEnum()); + } + + @Test + public void deckShuffleTest(){ + Card expected = dummy.deck.get(0); + dummy.shuffleDeck(); + Card actual = dummy.deck.get(0); + Assert.assertNotEquals(expected, actual); + } + + + } diff --git a/src/test/java/io/zipcoder/casino/Games/CardGameTest.java b/src/test/java/io/zipcoder/casino/Games/CardGameTest.java index 1cf8a055..b905f45f 100644 --- a/src/test/java/io/zipcoder/casino/Games/CardGameTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CardGameTest.java @@ -19,31 +19,6 @@ public void setup(){ dummy = new DummyCardGame(); } - @Test - public void cardConstructorTest(){ - Card temp = new Card(Rank.SEVEN, Suit.CLUBS); - Rank actual = temp.getRankEnum(); - Rank expected = Rank.SEVEN; - Assert.assertEquals(actual, expected); - } - - @Test - public void deckGeneratorTest(){ - dummy.generateDeck(); - Card actual = dummy.deck.get(0); - Card expected = new Card(Rank.ACE, Suit.HEARTS); - Assert.assertEquals(expected.getRankEnum(), actual.getRankEnum()); - } - - @Test - public void deckShuffleTest(){ - dummy.generateDeck(); - Card expected = dummy.deck.get(0); - dummy.shuffleDeck(); - Card actual = dummy.deck.get(0); - Assert.assertNotEquals(expected, actual); - } - @Test public void getNumberOfPlayersTest(){ dummy.setNumberOfPlayers(3); @@ -59,5 +34,4 @@ public void getMaxNumberOfPlayersTest(){ Integer actual = dummy.getMaxNumberOfPlayers(); Assert.assertEquals(expected, actual); } - } From d7813a9b1e1ce22325fe2609c8e0cd3ab6b765b9 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 14:57:09 -0500 Subject: [PATCH 030/105] create wallet, partway through refactoring --- .../io/zipcoder/casino/Interfaces/Gamble.java | 9 ------- .../io/zipcoder/casino/Players/Player.java | 16 +++++------- src/main/java/io/zipcoder/casino/Wallet.java | 8 ++++++ .../java/io/zipcoder/casino/WalletTest.java | 26 +++++++++++++++++++ 4 files changed, 41 insertions(+), 18 deletions(-) delete mode 100644 src/main/java/io/zipcoder/casino/Interfaces/Gamble.java diff --git a/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java b/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java deleted file mode 100644 index 0c2feb03..00000000 --- a/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.zipcoder.casino.Interfaces; - -public interface Gamble { - - public void wagerMoney(); - public Integer checkBalance(); - public void changeBalance(); - -} diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index 29f24c78..4e271c39 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -1,10 +1,12 @@ package io.zipcoder.casino.Players; +import io.zipcoder.casino.Wallet; + public class Player { private String name; private Integer age; - private Double balance; + private Wallet wallet; @@ -19,10 +21,10 @@ public Player(){ } - public Player(String name, Integer age, Double balance) { + public Player(String name, Integer age, Integer balance) { this.name = name; this.age = age; - this.balance = balance; + this.wallet = new Wallet(balance); } public String getName() { @@ -41,12 +43,8 @@ public void setAge(Integer age) { this.age = age; } - public Double getBalance() { - return balance; - } - - public void setBalance(Double balance) { - this.balance = balance; + public Integer getBalance() { + return wallet.getBalance(); } } diff --git a/src/main/java/io/zipcoder/casino/Wallet.java b/src/main/java/io/zipcoder/casino/Wallet.java index ba8a0643..a86acb2c 100644 --- a/src/main/java/io/zipcoder/casino/Wallet.java +++ b/src/main/java/io/zipcoder/casino/Wallet.java @@ -14,4 +14,12 @@ public Wallet(int balance){ public int getBalance(){ return this.balance; } + + public void add(int money){ + this.balance += money; + } + + public void subtract(int money){ + this.balance -= money; + } } diff --git a/src/test/java/io/zipcoder/casino/WalletTest.java b/src/test/java/io/zipcoder/casino/WalletTest.java index 31fae4fd..8d2834a2 100644 --- a/src/test/java/io/zipcoder/casino/WalletTest.java +++ b/src/test/java/io/zipcoder/casino/WalletTest.java @@ -13,4 +13,30 @@ public void constructorTest(){ int expected = dummy.getBalance(); Assert.assertEquals(expected, actual); } + + @Test + public void defaultConstructorTest(){ + dummy = new Wallet(); + int expected = 0; + int actual = dummy.getBalance(); + Assert.assertEquals(actual, expected); + } + + @Test + public void addMoneyTest(){ + dummy = new Wallet(5); + dummy.add(5); + int expected = 10; + int actual = dummy.getBalance(); + Assert.assertEquals(expected, actual); + } + + @Test + public void subtractMoneyTest(){ + dummy = new Wallet(5); + dummy.subtract(5); + int expected = 0; + int actual = dummy.getBalance(); + Assert.assertEquals(expected, actual); + } } From 07b8dea902b20bc86b456750dc8345cdb64938b8 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Thu, 22 Feb 2018 15:00:00 -0500 Subject: [PATCH 031/105] changes made to goFishPlayer and goFishGame --- .../java/io/zipcoder/casino/Games/GoFish.java | 72 +++++++------------ .../zipcoder/casino/Players/GoFishPlayer.java | 2 - .../io/zipcoder/casino/Games/GoFishTest.java | 12 ++++ 3 files changed, 39 insertions(+), 47 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 163b5028..9bef5c53 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -2,63 +2,27 @@ import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.Queue; +import java.util.*; public class GoFish { Queue stockPile; - + private List cardHand; public void start() { Player rootPlayer = new Player("Bob", 45, 100.00); Player goFishPlayer1 = new GoFishPlayer(rootPlayer); + cardHand = new ArrayList(); - CardGame cardGame = new CardGame() { - @Override - public void generateDeck() { - super.generateDeck(); - } - - @Override - public int getNumberOfPlayers() { - return super.getNumberOfPlayers(); - } - - @Override - public void setNumberOfPlayers(int numberOfPlayers) { - super.setNumberOfPlayers(numberOfPlayers); - } - - @Override - public int getMaxNumberOfPlayers() { - return super.getMaxNumberOfPlayers(); - } - - @Override - public void setMaxNumberOfPlayers(int maxNumberOfPlayers) { - super.setMaxNumberOfPlayers(maxNumberOfPlayers); - } - - @Override - public ArrayList getDeck() { - return super.getDeck(); - } - - @Override - public void shuffleDeck() { - super.shuffleDeck(); - } - }; - + Deck deck = new Deck(); + deck.shuffleDeck(); } - public Queue getStockPile = new Queue() { + public Queue buildStockPile = new Queue() { public boolean add(Card card) { return false; } @@ -132,12 +96,30 @@ public void clear() { } }; - public void deal() { + public void buildPlayerHand() { + + } + + public void buildComputerHand() { + + } + + public void deal() { + this.buildPlayerHand(); + this.buildComputerHand(); + //this.buildStockPile(); } + + public String displayCardHand() { - return ""; + StringBuilder cardHandBuilder = new StringBuilder(); + for (int i = 0; i < cardHand.size(); i++) { + cardHandBuilder.append("Card " + (i + 1) + cardHand.get(i) + "\n"); + } + + return cardHandBuilder.toString(); } public boolean isGameOver() { diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index db484bf2..a3c50fbe 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -8,7 +8,6 @@ public class GoFishPlayer extends Player { private String name; - private Double balance; private Integer age; private List cardHand; @@ -16,7 +15,6 @@ public class GoFishPlayer extends Player { public GoFishPlayer(Player rootPlayer) { this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); - this.balance = rootPlayer.getBalance(); cardHand = new ArrayList(); } diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java index cf932055..894f4ca3 100644 --- a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -1,5 +1,7 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.Players.GoFishPlayer; +import io.zipcoder.casino.Players.Player; import org.junit.Test; public class GoFishTest { @@ -7,6 +9,12 @@ public class GoFishTest { @Test public void dealTest() { + GoFish game = new GoFish(); + Player player1 = new Player(); + Player goFishPlayer1 = new GoFishPlayer(player1); + + + } @Test @@ -36,6 +44,10 @@ public void goFishTest() { @Test public void displayCardHandTest() { + GoFish game = new GoFish(); + Player player1 = new Player(); + Player goFishPlayer1 = new GoFishPlayer(player1); + game.deal(); } From 09a535b6f46e67f85993fb8d58160fba124dcf95 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 15:20:34 -0500 Subject: [PATCH 032/105] prep for dev merge --- .../java/io/zipcoder/casino/Players/BlackjackPlayer.java | 9 +++------ src/main/java/io/zipcoder/casino/Players/Player.java | 6 +++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index f28162ec..1b953914 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,17 +1,14 @@ package io.zipcoder.casino.Players; public class BlackjackPlayer extends Player{ - private String name; - private Double balance; - private Integer age; + protected Player rootPlayer; //private Card[] hand; - private boolean canHit; + protected boolean canHit; public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); - this.balance = rootPlayer.getBalance(); - //this.hand = new Card[]; this.canHit = true; + this.rootPlayer = rootPlayer; } } diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index 4e271c39..469d41fe 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -4,9 +4,9 @@ public class Player { - private String name; - private Integer age; - private Wallet wallet; + protected String name; + protected Integer age; + protected Wallet wallet; From 93d79c8dcfa03642240468f00f5f29733972f46a Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 15:34:43 -0500 Subject: [PATCH 033/105] prep for merge --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 49b47a64..27646e01 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -7,7 +7,7 @@ public class Blackjack { public void start(){ - Player sue = new Player("sue", 30, 1000.00); + Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } From d33b2327de195cacaf416d88be0228c1a8f42e8a Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 16:06:32 -0500 Subject: [PATCH 034/105] swap double with integer for balance --- .../casino/Players/BlackjackPlayer.java | 9 +++------ .../java/io/zipcoder/casino/Players/Player.java | 17 +++++------------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index f28162ec..1b953914 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,17 +1,14 @@ package io.zipcoder.casino.Players; public class BlackjackPlayer extends Player{ - private String name; - private Double balance; - private Integer age; + protected Player rootPlayer; //private Card[] hand; - private boolean canHit; + protected boolean canHit; public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); - this.balance = rootPlayer.getBalance(); - //this.hand = new Card[]; this.canHit = true; + this.rootPlayer = rootPlayer; } } diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index 29f24c78..0e454949 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -2,9 +2,9 @@ public class Player { - private String name; - private Integer age; - private Double balance; + protected String name; + protected Integer age; + @@ -19,10 +19,10 @@ public Player(){ } - public Player(String name, Integer age, Double balance) { + public Player(String name, Integer age, Integer balance) { this.name = name; this.age = age; - this.balance = balance; + } public String getName() { @@ -41,12 +41,5 @@ public void setAge(Integer age) { this.age = age; } - public Double getBalance() { - return balance; - } - - public void setBalance(Double balance) { - this.balance = balance; - } } From 9e7d19a0196079539c8affa9cdec7894b818b1aa Mon Sep 17 00:00:00 2001 From: CWinarski Date: Thu, 22 Feb 2018 16:29:48 -0500 Subject: [PATCH 035/105] Changed Doubles to Integers --- src/main/java/io/zipcoder/casino/Casino.java | 6 +++--- .../io/zipcoder/casino/Games/Blackjack.java | 2 +- .../java/io/zipcoder/casino/Games/Craps.java | 3 ++- .../casino/Games/{DiceGame.java => Dice.java} | 6 +++--- .../casino/InputOutput/InputOutput.java | 9 --------- .../io/zipcoder/casino/Players/Player.java | 8 ++++---- .../zipcoder/casino/Games/DiceGameTest.java | 19 +++++++++++++++++++ .../casino/PlayerTest/PlayerTest.java | 16 ++++++++-------- 8 files changed, 40 insertions(+), 29 deletions(-) rename src/main/java/io/zipcoder/casino/Games/{DiceGame.java => Dice.java} (76%) create mode 100644 src/test/java/io/zipcoder/casino/Games/DiceGameTest.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 24d4f53b..7d675900 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -22,8 +22,8 @@ protected Integer askUserAge(){ return age; } - protected Double askUserBalance(){ - Double balance = inputOutput.promptDouble("How much do you want to gamble with?"); + protected Integer askUserBalance(){ + Integer balance = inputOutput.promptInteger("How much do you want to gamble with?"); return balance; } @@ -32,7 +32,7 @@ protected void setUpUserProfile(){ Integer age = this.askUserAge(); if(age > 21) { - Double balance = this.askUserBalance(); + Integer balance = this.askUserBalance(); player = new Player(name, age, balance); } else{ diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 49b47a64..27646e01 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -7,7 +7,7 @@ public class Blackjack { public void start(){ - Player sue = new Player("sue", 30, 1000.00); + Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 151d5f26..bdd64bae 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -1,4 +1,5 @@ package io.zipcoder.casino.Games; -public class Craps { +public class Craps extends Dice { + } diff --git a/src/main/java/io/zipcoder/casino/Games/DiceGame.java b/src/main/java/io/zipcoder/casino/Games/Dice.java similarity index 76% rename from src/main/java/io/zipcoder/casino/Games/DiceGame.java rename to src/main/java/io/zipcoder/casino/Games/Dice.java index 7bf18d34..45eb5e2b 100644 --- a/src/main/java/io/zipcoder/casino/Games/DiceGame.java +++ b/src/main/java/io/zipcoder/casino/Games/Dice.java @@ -1,9 +1,9 @@ package io.zipcoder.casino.Games; -public abstract class DiceGame { +public class Dice { - public Integer dice1; - public Integer dice2; + private Integer dice1; + private Integer dice2; public Integer rollDice(){ return 0; diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 4124d3aa..044c4bee 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -21,11 +21,6 @@ public Integer scanForInt(){ return integerReturn; } - public Double scanForDouble(){ - Double doubleReturn = input.nextDouble(); - return doubleReturn; - } - public ArrayList displayOver21Menu(){ return null; } @@ -44,10 +39,6 @@ public int promptInt(String message) { return scanForInt(); } - public Double promptDouble(String message) { - System.out.println(message); - return scanForDouble(); - } diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index 29f24c78..0d6b5000 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -4,7 +4,7 @@ public class Player { private String name; private Integer age; - private Double balance; + private Integer balance; @@ -19,7 +19,7 @@ public Player(){ } - public Player(String name, Integer age, Double balance) { + public Player(String name, Integer age, Integer balance) { this.name = name; this.age = age; this.balance = balance; @@ -41,11 +41,11 @@ public void setAge(Integer age) { this.age = age; } - public Double getBalance() { + public Integer getBalance() { return balance; } - public void setBalance(Double balance) { + public void setBalance(Integer balance) { this.balance = balance; } diff --git a/src/test/java/io/zipcoder/casino/Games/DiceGameTest.java b/src/test/java/io/zipcoder/casino/Games/DiceGameTest.java new file mode 100644 index 00000000..683e3dfe --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Games/DiceGameTest.java @@ -0,0 +1,19 @@ +package io.zipcoder.casino.Games; + +import org.junit.Test; + + +public class DiceGameTest { + + @Test + public void getDice1Test(){ + + } + + @Test + public void getDice2Test(){ + + } + + +} diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index a2b33989..5899e9a5 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -23,12 +23,12 @@ public void constructorWithNameAndAgeTest() { public void constructorWithNameAgeBalanceTest() { String expectedName = "Suzy"; Integer expectedAge = 24; - Double expectedBalance = 100.00; + Integer expectedBalance = 100; Player player1 = new Player(expectedName, expectedAge, expectedBalance); String actualName = player1.getName(); Integer actualAge = player1.getAge(); - Double actualBalance = player1.getBalance(); + Integer actualBalance = player1.getBalance(); Assert.assertEquals(expectedName, actualName); Assert.assertEquals(expectedAge, actualAge); @@ -76,20 +76,20 @@ public void getAgeTest() { } @Test public void setBalanceTest() { - Player player1 = new Player("Bob", 49, 100.00); - Double expected = 100.00; + Player player1 = new Player("Bob", 49, 100); + Integer expected = 100; player1.setBalance(expected); - Double actual = player1.getBalance(); + Integer actual = player1.getBalance(); Assert.assertEquals(expected, actual); } @Test public void getBalanceTest() { - Player player1 = new Player("George", 51, 200.00); - Double expected = 200.00; + Player player1 = new Player("George", 51, 200); + Integer expected = 200; - Double actual = player1.getBalance(); + Integer actual = player1.getBalance(); Assert.assertEquals(expected, actual); } From bc139f63d2790bd2c8ac6340e7c54f90ea501a7b Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Thu, 22 Feb 2018 16:30:01 -0500 Subject: [PATCH 036/105] changes made to goFishGame, added computerPlayer --- src/main/java/io/zipcoder/casino/Casino.java | 6 +++--- .../java/io/zipcoder/casino/Games/GoFish.java | 17 +++++++++++++++-- .../zipcoder/casino/Players/ComputerPlayer.java | 4 ++++ .../zipcoder/casino/Players/GoFishPlayer.java | 8 ++++++++ .../java/io/zipcoder/casino/Players/Player.java | 8 ++++---- .../zipcoder/casino/PlayerTest/PlayerTest.java | 16 ++++++++-------- 6 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 24d4f53b..bbe1e2c7 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -22,8 +22,8 @@ protected Integer askUserAge(){ return age; } - protected Double askUserBalance(){ - Double balance = inputOutput.promptDouble("How much do you want to gamble with?"); + protected Integer askUserBalance(){ + Integer balance = inputOutput.promptInt("How much do you want to gamble with?"); return balance; } @@ -32,7 +32,7 @@ protected void setUpUserProfile(){ Integer age = this.askUserAge(); if(age > 21) { - Double balance = this.askUserBalance(); + Integer balance = this.askUserBalance(); player = new Player(name, age, balance); } else{ diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 9bef5c53..fe81ef30 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -11,15 +11,25 @@ public class GoFish { Queue stockPile; private List cardHand; + ArrayList players; - public void start() { - Player rootPlayer = new Player("Bob", 45, 100.00); + public void play() { + Player rootPlayer = new Player("Bob", 45, 100); Player goFishPlayer1 = new GoFishPlayer(rootPlayer); + cardHand = new ArrayList(); + players = new ArrayList(); + players.add(rootPlayer); + players.add(goFishPlayer1); + Deck deck = new Deck(); deck.shuffleDeck(); + + + + //while(goFishPlayer1.getNumPairs()) } public Queue buildStockPile = new Queue() { @@ -111,6 +121,9 @@ public void deal() { //this.buildStockPile(); } + public int deckSize() { + return cardHand.size(); + } public String displayCardHand() { diff --git a/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java b/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java new file mode 100644 index 00000000..b81084cf --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Players; + +public class ComputerPlayer extends Player { +} diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index a3c50fbe..d396fcb8 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -10,14 +10,22 @@ public class GoFishPlayer extends Player { private String name; private Integer age; private List cardHand; + private int numPairs; public GoFishPlayer(Player rootPlayer) { this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); cardHand = new ArrayList(); + numPairs = 0; } + public int getNumPairs() { + return numPairs; + } + + + diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index 29f24c78..0d6b5000 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -4,7 +4,7 @@ public class Player { private String name; private Integer age; - private Double balance; + private Integer balance; @@ -19,7 +19,7 @@ public Player(){ } - public Player(String name, Integer age, Double balance) { + public Player(String name, Integer age, Integer balance) { this.name = name; this.age = age; this.balance = balance; @@ -41,11 +41,11 @@ public void setAge(Integer age) { this.age = age; } - public Double getBalance() { + public Integer getBalance() { return balance; } - public void setBalance(Double balance) { + public void setBalance(Integer balance) { this.balance = balance; } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index a2b33989..d4dee6f5 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -23,12 +23,12 @@ public void constructorWithNameAndAgeTest() { public void constructorWithNameAgeBalanceTest() { String expectedName = "Suzy"; Integer expectedAge = 24; - Double expectedBalance = 100.00; + Integer expectedBalance = 100; Player player1 = new Player(expectedName, expectedAge, expectedBalance); String actualName = player1.getName(); Integer actualAge = player1.getAge(); - Double actualBalance = player1.getBalance(); + Integer actualBalance = player1.getBalance(); Assert.assertEquals(expectedName, actualName); Assert.assertEquals(expectedAge, actualAge); @@ -76,20 +76,20 @@ public void getAgeTest() { } @Test public void setBalanceTest() { - Player player1 = new Player("Bob", 49, 100.00); - Double expected = 100.00; + Player player1 = new Player("Bob", 49, 100); + Integer expected = 100; player1.setBalance(expected); - Double actual = player1.getBalance(); + Integer actual = player1.getBalance(); Assert.assertEquals(expected, actual); } @Test public void getBalanceTest() { - Player player1 = new Player("George", 51, 200.00); - Double expected = 200.00; + Player player1 = new Player("George", 51, 200; + Integer expected = 200; - Double actual = player1.getBalance(); + Integer actual = player1.getBalance(); Assert.assertEquals(expected, actual); } From 00d2847692734b266ede1bfbd0258003225744ca Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 16:46:56 -0500 Subject: [PATCH 037/105] finalizing before dev merge --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 49b47a64..27646e01 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -7,7 +7,7 @@ public class Blackjack { public void start(){ - Player sue = new Player("sue", 30, 1000.00); + Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } From 0f1745845695ad2f1116a69399598e41c4a0c3e4 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Thu, 22 Feb 2018 18:39:22 -0500 Subject: [PATCH 038/105] changes made to gofishagame --- src/main/java/io/zipcoder/casino/Casino.java | 2 +- .../java/io/zipcoder/casino/Games/GoFish.java | 90 ++++--------------- .../casino/InputOutput/InputOutput.java | 20 ++--- .../casino/Players/ComputerPlayer.java | 5 ++ .../casino/PlayerTest/GoFishPlayerTest.java | 4 +- 5 files changed, 35 insertions(+), 86 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7d675900..bbe1e2c7 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -23,7 +23,7 @@ protected Integer askUserAge(){ } protected Integer askUserBalance(){ - Integer balance = inputOutput.promptInteger("How much do you want to gamble with?"); + Integer balance = inputOutput.promptInt("How much do you want to gamble with?"); return balance; } diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index fe81ef30..31a831b0 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -3,20 +3,23 @@ import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Players.ComputerPlayer; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; +import io.zipcoder.casino.InputOutput.InputOutput; import java.util.*; public class GoFish { - Queue stockPile; private List cardHand; - ArrayList players; + private ArrayList players; - public void play() { + public String play() { + InputOutput inputOutput = new InputOutput(); Player rootPlayer = new Player("Bob", 45, 100); - Player goFishPlayer1 = new GoFishPlayer(rootPlayer); + GoFishPlayer goFishPlayer1 = new GoFishPlayer(rootPlayer); + ComputerPlayer computerPlayer = new ComputerPlayer(); cardHand = new ArrayList(); @@ -28,83 +31,22 @@ public void play() { deck.shuffleDeck(); + while(goFishPlayer1.getNumPairs() + computerPlayer.getNumPairs() < 26) { - //while(goFishPlayer1.getNumPairs()) - } - - public Queue buildStockPile = new Queue() { - public boolean add(Card card) { - return false; - } - - public boolean offer(Card card) { - return false; - } - - public Card remove() { - return null; - } - - public Card poll() { - return null; - } - - public Card element() { - return null; - } - - public Card peek() { - return null; - } - - public int size() { - return 0; - } - - public boolean isEmpty() { - return false; - } - public boolean contains(Object o) { - return false; } - public Iterator iterator() { - return null; - } - - public Object[] toArray() { - return new Object[0]; - } - - public T[] toArray(T[] a) { - return null; - } - - public boolean remove(Object o) { - return false; - } - - public boolean containsAll(Collection c) { - return false; - } + if (goFishPlayer1.getNumPairs() > computerPlayer.getNumPairs()) { - public boolean addAll(Collection c) { - return false; + String winner = inputOutput.promptForString("Congratulations, you win!"); + return winner; } + else { - public boolean removeAll(Collection c) { - return false; } + return null; + } - public boolean retainAll(Collection c) { - return false; - } - - public void clear() { - - } - }; public void buildPlayerHand() { @@ -139,5 +81,9 @@ public boolean isGameOver() { return false; } + public void takeTurn() { + + } + } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 044c4bee..802d89fa 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -16,22 +16,23 @@ public String scanForString() { return stringReturn; } - public Integer scanForInt(){ - Integer integerReturn = input.nextInt(); - return integerReturn; + public Integer scanForInt() { + return Integer.parseInt(scanForString()); } - public ArrayList displayOver21Menu(){ - return null; + public ArrayList displayOver21Menu() { + return null; } - public ArrayList displayUnder21Menu(){ - return null; + + public ArrayList displayUnder21Menu() { + return null; } public String promptForString(String message) { System.out.println(message); - return scanForString(); + String s = scanForString(); + return s; } public int promptInt(String message) { @@ -40,9 +41,6 @@ public int promptInt(String message) { } - - - //generic methods //method for menus //create line breaks diff --git a/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java b/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java index b81084cf..5ba21679 100644 --- a/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java @@ -1,4 +1,9 @@ package io.zipcoder.casino.Players; public class ComputerPlayer extends Player { + private int numPairs; + + public int getNumPairs() { + return numPairs; + } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index fce4e307..76061bef 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -12,14 +12,14 @@ public class GoFishPlayerTest { public void constructorTest() { String expectedName = "Bob"; Integer expectedAge = 24; - Double expectedBalance = 50.00; + Integer expectedBalance = 50; Player player1 = new Player(expectedName, expectedAge, expectedBalance); Player goFishPlayer1 = new GoFishPlayer(player1); String actualName = goFishPlayer1.getName(); Integer actualAge = player1.getAge(); - Double actualBalance = player1.getBalance(); + Integer actualBalance = player1.getBalance(); Assert.assertEquals(expectedName, actualName); Assert.assertEquals(expectedAge, actualAge); From f1131b191a55e9b616a86ebf77e70147083336c7 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 19:29:33 -0500 Subject: [PATCH 039/105] whoops lets put this in blackjack --- src/main/java/io/zipcoder/casino/Casino.java | 2 +- .../io/zipcoder/casino/Games/Blackjack.java | 35 ++++++++++-- .../zipcoder/casino/Games/Dealer/Dealer.java | 6 +- .../casino/Players/BlackjackPlayer.java | 27 ++++++++- .../zipcoder/casino/Games/BlackjackTest.java | 50 +++++++++++++++++ .../PlayerTest/BlackjackPlayerTest.java | 55 +++++++++++++++++++ .../casino/PlayerTest/GoFishPlayerTest.java | 34 ++++++------ .../casino/PlayerTest/PlayerTest.java | 18 +++--- 8 files changed, 193 insertions(+), 34 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7d675900..bbe1e2c7 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -23,7 +23,7 @@ protected Integer askUserAge(){ } protected Integer askUserBalance(){ - Integer balance = inputOutput.promptInteger("How much do you want to gamble with?"); + Integer balance = inputOutput.promptInt("How much do you want to gamble with?"); return balance; } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 27646e01..da81399f 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,14 +1,41 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; +import java.util.ArrayList; + public class Blackjack { - public void start(){ - Player sue = new Player("sue", 30, 1000); - Dealer bkjkDealer = new Dealer(); - BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); + + protected ArrayList playerList; + protected Deck deck; + protected Dealer bkjkDealer; + + + Blackjack(Player... players){ + deck = new Deck(); + bkjkDealer = new Dealer(); + playerList = new ArrayList(); + for (Player rootPlayer:players) { + playerList.add(new BlackjackPlayer(rootPlayer)); + } } + + public void deal(BlackjackPlayer currentPlayer){ + Card temp = this.deck.deck.get(0); + currentPlayer.addToHand(temp); + this.deck.deck.remove(0); + } + + public void initialHand(BlackjackPlayer... blackjackPlayers){ + for (BlackjackPlayer thisPlayer:blackjackPlayers) { + this.deal(thisPlayer); + this.deal(thisPlayer); + } + } + } diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index 6f6b3474..30f4ace7 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -1,7 +1,9 @@ package io.zipcoder.casino.Games.Dealer; -import io.zipcoder.casino.*; +import io.zipcoder.casino.GameTools.Deck.Card; + +import java.util.ArrayList; public class Dealer { - //private Card[] hand; + private ArrayList hand; } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 1b953914..8c455ea8 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,8 +1,12 @@ package io.zipcoder.casino.Players; +import io.zipcoder.casino.GameTools.Deck.Card; + +import java.util.ArrayList; + public class BlackjackPlayer extends Player{ protected Player rootPlayer; - //private Card[] hand; + protected ArrayList hand; protected boolean canHit; public BlackjackPlayer(Player rootPlayer){ @@ -10,5 +14,26 @@ public BlackjackPlayer(Player rootPlayer){ this.age = rootPlayer.getAge(); this.canHit = true; this.rootPlayer = rootPlayer; + this.hand = new ArrayList(); + } + + public Player getRootPlayer() { + return rootPlayer; + } + + public void setHand(ArrayList hand){ + this.hand = hand; + } + + public void addToHand(Card card){ + this.hand.add(card); + } + + public ArrayList getHand() { + return hand; + } + + public boolean isCanHit() { + return canHit; } } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 83a8bd50..693cf770 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -1,9 +1,59 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.BlackjackPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; public class BlackjackTest { + Player sue = new Player("sue", 30, 1000); + BlackjackPlayer sueBKJK; + Blackjack game; + + @Before + public void setup(){ + sueBKJK = new BlackjackPlayer(sue); + game = new Blackjack(sue); + } + + @Test + public void constructorTest(){ + String actual = game.playerList.get(0).getName(); + String expected = sue.getName(); + Assert.assertEquals(expected, actual); + } + + @Test + public void dealTest(){ + Card expected = game.deck.deck.get(0); + game.deal(sueBKJK); + Card actual = sueBKJK.getHand().get(0); + Assert.assertEquals(expected, actual); + } + + @Test + public void initialHandTest(){ + Card expected = game.deck.deck.get(1); + game.initialHand(sueBKJK); + Card actual = sueBKJK.getHand().get(1); + Assert.assertEquals(expected, actual); + } + + @Test + public void initialHandWithMultiplePlayersTest(){ + Player jim = new Player("jim", 38, 300); + BlackjackPlayer jimBKJK = new BlackjackPlayer(jim); + Card expected = game.deck.deck.get(3); + game.initialHand(sueBKJK, jimBKJK); + Card actual = jimBKJK.getHand().get(1); + Assert.assertEquals(expected, actual); + } + @Test public void startTest() { diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java new file mode 100644 index 00000000..37768292 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -0,0 +1,55 @@ +package io.zipcoder.casino.PlayerTest; + +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.BlackjackPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +public class BlackjackPlayerTest { + Player sue; + BlackjackPlayer suebkjk; + + @Before + public void setup(){ + sue = new Player("sue", 30, 500); + suebkjk = new BlackjackPlayer(sue); + } + + @Test + public void constructorTest(){ + String expected = "sue"; + String actual = suebkjk.getName(); + Assert.assertEquals(expected, actual); + } + + @Test + public void getCanHitTest(){ + boolean expected = true; + boolean actual = suebkjk.isCanHit(); + Assert.assertEquals(expected, actual); + } + + @Test + public void getHandTest(){ + Card ace = new Card(Rank.ACE, Suit.CLUBS); + ArrayList expected = new ArrayList(); + expected.add(ace); + suebkjk.setHand(expected); + ArrayList actual = suebkjk.getHand(); + Assert.assertEquals(expected, actual); + } + + @Test + public void getRootPlayerTest(){ + Player expected = sue; + Player acual = suebkjk.getRootPlayer(); + Assert.assertEquals(expected, acual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index fce4e307..af1a29c9 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -8,21 +8,21 @@ public class GoFishPlayerTest { - @Test - public void constructorTest() { - String expectedName = "Bob"; - Integer expectedAge = 24; - Double expectedBalance = 50.00; - - Player player1 = new Player(expectedName, expectedAge, expectedBalance); - Player goFishPlayer1 = new GoFishPlayer(player1); - - String actualName = goFishPlayer1.getName(); - Integer actualAge = player1.getAge(); - Double actualBalance = player1.getBalance(); - - Assert.assertEquals(expectedName, actualName); - Assert.assertEquals(expectedAge, actualAge); - Assert.assertEquals(expectedBalance, actualBalance); - } +// @Test +// public void constructorTest() { +// String expectedName = "Bob"; +// Integer expectedAge = 24; +// Double expectedBalance = 50.00; +// +// Player player1 = new Player(expectedName, expectedAge, expectedBalance); +// Player goFishPlayer1 = new GoFishPlayer(player1); +// +// String actualName = goFishPlayer1.getName(); +// Integer actualAge = player1.getAge(); +// Double actualBalance = player1.getBalance(); +// +// Assert.assertEquals(expectedName, actualName); +// Assert.assertEquals(expectedAge, actualAge); +// Assert.assertEquals(expectedBalance, actualBalance); +// } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index beef027b..67846bcb 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -74,15 +74,15 @@ public void getAgeTest() { Assert.assertEquals(expected, actual); } - @Test - public void setBalanceTest() { - Player player1 = new Player("Bob", 49, 100); - Integer expected = 100; - player1.setBalance(expected); - Integer actual = player1.getBalance(); - Assert.assertEquals(expected, actual); - - } +// @Test +// public void setBalanceTest() { +// Player player1 = new Player("Bob", 49, 100); +// Integer expected = 100; +// player1.setBalance(expected); +// Integer actual = player1.getBalance(); +// Assert.assertEquals(expected, actual); +// +// } @Test public void getBalanceTest() { From 47ea3f79dce9a3e15bddc4399fa90cf3647702b6 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 19:41:32 -0500 Subject: [PATCH 040/105] add initial methods to blackjack and bkjkplayer --- .../io/zipcoder/casino/Players/BlackjackPlayer.java | 9 +++++++++ .../java/io/zipcoder/casino/Players/Player.java | 2 +- .../io/zipcoder/casino/Games/BlackjackTest.java | 7 ++----- .../casino/PlayerTest/BlackjackPlayerTest.java | 13 +++++++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 8c455ea8..7bdf4f04 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -36,4 +36,13 @@ public ArrayList getHand() { public boolean isCanHit() { return canHit; } + + public Integer getHandValue(){ + Integer handValue = 0; + for (Card card:hand) { + handValue += card.getRankEnum().getRankValue(); + } + return handValue; + } + } diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index ebe1eed5..3772e7e9 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -45,5 +45,5 @@ public void setAge(Integer age) { public Integer getBalance() { return wallet.getBalance(); } - + } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 693cf770..58b193f6 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -9,6 +9,8 @@ import org.junit.Before; import org.junit.Test; +import java.util.ArrayList; + public class BlackjackTest { Player sue = new Player("sue", 30, 1000); @@ -59,11 +61,6 @@ public void startTest() { } - @Test - public void getHandValueTest() { - - } - @Test public void getValueTest() { diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java index 37768292..a14d0cda 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -52,4 +52,17 @@ public void getRootPlayerTest(){ Assert.assertEquals(expected, acual); } + @Test + public void getHandValueTest() { + Integer expected = 5; + Card two = new Card(Rank.TWO, Suit.HEARTS); + Card three = new Card(Rank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList(); + tempHand.add(three); + tempHand.add(two); + suebkjk.setHand(tempHand); + Integer actual = suebkjk.getHandValue(); + Assert.assertEquals(expected, actual); + } + } From 22efd128397c20d91565f89f6846422fbab79b73 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Thu, 22 Feb 2018 20:02:59 -0500 Subject: [PATCH 041/105] Made Changes to Dice Class --- .../zipcoder/casino/Games/{DiceGameTest.java => DiceTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/io/zipcoder/casino/Games/{DiceGameTest.java => DiceTest.java} (85%) diff --git a/src/test/java/io/zipcoder/casino/Games/DiceGameTest.java b/src/test/java/io/zipcoder/casino/Games/DiceTest.java similarity index 85% rename from src/test/java/io/zipcoder/casino/Games/DiceGameTest.java rename to src/test/java/io/zipcoder/casino/Games/DiceTest.java index 683e3dfe..384f4d7e 100644 --- a/src/test/java/io/zipcoder/casino/Games/DiceGameTest.java +++ b/src/test/java/io/zipcoder/casino/Games/DiceTest.java @@ -3,7 +3,7 @@ import org.junit.Test; -public class DiceGameTest { +public class DiceTest { @Test public void getDice1Test(){ From 7b13f53961d58250299ebaff8ad17ee41e491f5b Mon Sep 17 00:00:00 2001 From: CWinarski Date: Thu, 22 Feb 2018 20:04:31 -0500 Subject: [PATCH 042/105] Made Changes to Dice Class --- src/main/java/io/zipcoder/casino/Casino.java | 13 ++++++---- .../java/io/zipcoder/casino/Games/Dice.java | 8 +++++- .../casino/InputOutput/InputOutput.java | 25 ++++++++++++++----- .../casino/Players/BlackjackPlayer.java | 2 +- .../io/zipcoder/casino/Games/DiceTest.java | 23 ++++++++++------- .../casino/InputOutput/InputOutputTest.java | 1 + .../casino/PlayerTest/GoFishPlayerTest.java | 8 +++--- 7 files changed, 54 insertions(+), 26 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7d675900..8bbd85f2 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -18,12 +18,12 @@ protected String askUserName(){ } protected Integer askUserAge(){ - Integer age = inputOutput.promptInt("How old are you?"); + Integer age = inputOutput.promptForInt("How old are you?"); return age; } protected Integer askUserBalance(){ - Integer balance = inputOutput.promptInteger("How much do you want to gamble with?"); + Integer balance = inputOutput.promptForInt("How much do you want to gamble with?"); return balance; } @@ -41,11 +41,14 @@ protected void setUpUserProfile(){ } protected void showMainMenu() { - ArrayList selectedGame; + if(player.getAge() > 21) { - selectedGame = inputOutput.displayOver21Menu(); + Integer number = inputOutput.displayOver21Menu(); + String selectedGame = inputOutput.under21Games.get(number -1); + + } else { - selectedGame = inputOutput.displayUnder21Menu(); + String selectedGame = inputOutput.displayUnder21Menu(); } } diff --git a/src/main/java/io/zipcoder/casino/Games/Dice.java b/src/main/java/io/zipcoder/casino/Games/Dice.java index 45eb5e2b..192b8f21 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dice.java +++ b/src/main/java/io/zipcoder/casino/Games/Dice.java @@ -1,12 +1,18 @@ package io.zipcoder.casino.Games; +import java.util.Random; + public class Dice { private Integer dice1; private Integer dice2; + // static final Integer SEED = 3900; public Integer rollDice(){ - return 0; + Random dice1 = new Random(); + Random dice2 = new Random(); + Integer diceRoll = (dice1.nextInt(6)+1) + dice1.nextInt(6)+1; + return diceRoll; } public void setDice1() { diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 044c4bee..93a57fab 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -5,6 +5,7 @@ public class InputOutput { Scanner input = new Scanner(System.in); + public ArrayList under21Games = new ArrayList(); //MUST INSTANTIATE IN CASINO @@ -17,14 +18,26 @@ public String scanForString() { } public Integer scanForInt(){ - Integer integerReturn = input.nextInt(); - return integerReturn; + return Integer.parseInt(scanForString()); } - public ArrayList displayOver21Menu(){ - return null; + public Integer displayOver21Menu(){ + InputOutput inputOutput = new InputOutput(); + ArrayList over21Games = new ArrayList(); + over21Games.add("War"); + over21Games.add("Go Fish"); + over21Games.add("BlackJack"); + over21Games.add("Craps"); + + StringBuilder displayOver21Games = new StringBuilder(); + Integer number = inputOutput.promptForInt("Please enter in a number between 1-4 to select a game"); + + return number; } - public ArrayList displayUnder21Menu(){ + public String displayUnder21Menu(){ + //ArrayList under21Games = new ArrayList(); + under21Games.add("War"); + under21Games.add("Go Fish"); return null; } @@ -34,7 +47,7 @@ public String promptForString(String message) { return scanForString(); } - public int promptInt(String message) { + public int promptForInt(String message) { System.out.println(message); return scanForInt(); } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index f28162ec..25f9a432 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -10,7 +10,7 @@ public class BlackjackPlayer extends Player{ public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); - this.balance = rootPlayer.getBalance(); + //this.balance = rootPlayer.getBalance(); //this.hand = new Card[]; this.canHit = true; } diff --git a/src/test/java/io/zipcoder/casino/Games/DiceTest.java b/src/test/java/io/zipcoder/casino/Games/DiceTest.java index 384f4d7e..994bac7b 100644 --- a/src/test/java/io/zipcoder/casino/Games/DiceTest.java +++ b/src/test/java/io/zipcoder/casino/Games/DiceTest.java @@ -1,19 +1,24 @@ package io.zipcoder.casino.Games; -import org.junit.Test; - -public class DiceTest { +import org.junit.Assert; +import org.junit.Test; - @Test - public void getDice1Test(){ +import java.util.Random; - } - @Test - public void getDice2Test(){ +public class DiceTest { - } +// @Test +// public void getDice1Test(){ +// //given +// Random randomTest = new Random(Dice.SEED); +// Dice diceTest = new Dice(); +// Integer expected = randomTest.nextInt(6)+1; +// +// Integer actual = diceTest.rollDice(); +// Assert.assertEquals(expected, actual); +// } } diff --git a/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java b/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java index 51926d37..226ad3ad 100644 --- a/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java +++ b/src/test/java/io/zipcoder/casino/InputOutput/InputOutputTest.java @@ -26,4 +26,5 @@ public void scanForIntTest(){ Integer expected = 5; Assert.assertEquals(expected, actual); } + } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index fce4e307..6771e7c8 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -12,17 +12,17 @@ public class GoFishPlayerTest { public void constructorTest() { String expectedName = "Bob"; Integer expectedAge = 24; - Double expectedBalance = 50.00; + Integer expectedBalance = 50; - Player player1 = new Player(expectedName, expectedAge, expectedBalance); + Player player1 = new Player(expectedName, expectedAge, expectedBalance); Player goFishPlayer1 = new GoFishPlayer(player1); String actualName = goFishPlayer1.getName(); Integer actualAge = player1.getAge(); - Double actualBalance = player1.getBalance(); + Integer actualBalance = player1.getBalance(); Assert.assertEquals(expectedName, actualName); Assert.assertEquals(expectedAge, actualAge); - Assert.assertEquals(expectedBalance, actualBalance); + Assert.assertEquals(expectedBalance, actualBalance); } } From 8d642faee9f0dd8732a6e1920d1b0543efcb92ea Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 20:04:59 -0500 Subject: [PATCH 043/105] add blackjack specific card, rank and deck --- .../casino/GameTools/Deck/BlackjackCard.java | 29 +++++++++++++++++++ .../casino/GameTools/Deck/BlackjackDeck.java | 20 +++++++++++++ .../casino/GameTools/Deck/BlackjackRank.java | 29 +++++++++++++++++++ .../zipcoder/casino/GameTools/Deck/Card.java | 5 ++++ .../io/zipcoder/casino/Games/Blackjack.java | 5 ++-- 5 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java new file mode 100644 index 00000000..632fa76d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java @@ -0,0 +1,29 @@ +package io.zipcoder.casino.GameTools.Deck; + +import io.zipcoder.casino.Games.Blackjack; + +public class BlackjackCard extends Card{ + private Suit suitEnum; + private BlackjackRank rankEnum; + + public BlackjackCard(BlackjackRank rankEnum, Suit suitEnum) { + this.rankEnum = rankEnum; + this.suitEnum = suitEnum; + } + + public Suit getSuitEnum() { + return suitEnum; + } + + public void setSuitEnum(Suit suitEnum) { + this.suitEnum = suitEnum; + } + + public BlackjackRank getBlackjackRankEnum() { + return rankEnum; + } + + public void setRankEnum(BlackjackRank rankEnum) { + this.rankEnum = rankEnum; + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java new file mode 100644 index 00000000..8b82391f --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java @@ -0,0 +1,20 @@ +package io.zipcoder.casino.GameTools.Deck; + +import io.zipcoder.casino.Games.Blackjack; + +import java.util.ArrayList; +import java.util.Collections; + +public class BlackjackDeck extends Deck{ + + public ArrayList deck = new ArrayList(); + + public BlackjackDeck() { + for (BlackjackRank currentRank: BlackjackRank.values()) { + for (Suit currentSuit : Suit.values()){ + BlackjackCard temp = new BlackjackCard(currentRank, currentSuit); + deck.add(temp); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java new file mode 100644 index 00000000..03e9e131 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java @@ -0,0 +1,29 @@ +package io.zipcoder.casino.GameTools.Deck; + +public enum BlackjackRank { + + TWO(2), + THREE(3), + FOUR(4), + FIVE(5), + SIX(6), + SEVEN(7), + EIGHT(8), + NINE(9), + TEN(10), + JACK(10), + QUEEN(10), + KING(10), + ACE(11); + + private int rankValue; + + BlackjackRank(int rankValue){ + this.rankValue = rankValue; + } + + public int getRankValue(){ + return rankValue; + } + +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java index 88a43454..499df23b 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java @@ -9,6 +9,11 @@ public Card(Rank rankEnum, Suit suitEnum) { this.suitEnum = suitEnum; } + public Card(){ + this.rankEnum = null; + this.suitEnum = null; + } + public Suit getSuitEnum() { return suitEnum; } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index da81399f..79b52f5f 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.BlackjackDeck; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; @@ -12,12 +13,12 @@ public class Blackjack { protected ArrayList playerList; - protected Deck deck; + protected BlackjackDeck deck; protected Dealer bkjkDealer; Blackjack(Player... players){ - deck = new Deck(); + deck = new BlackjackDeck(); bkjkDealer = new Dealer(); playerList = new ArrayList(); for (Player rootPlayer:players) { From 8cf2e8719ada2d285933b9e08201e47125f3917a Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 20:28:09 -0500 Subject: [PATCH 044/105] dude i dont even know --- .../Deck/BlackjackCardTest.java | 26 +++++++++++++++++++ .../Deck/BlackjackDeckTest.java | 4 +++ .../Deck/BlackjackRankTest.java | 15 +++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackDeckTest.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java new file mode 100644 index 00000000..7c614a0a --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java @@ -0,0 +1,26 @@ +package io.zipcoder.casino.GameToolsTests.Deck; + +import io.zipcoder.casino.GameTools.Deck.BlackjackCard; +import io.zipcoder.casino.GameTools.Deck.BlackjackRank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class BlackjackCardTest { + + BlackjackCard dummy; + + @Before + public void setup(){ + dummy = new BlackjackCard(BlackjackRank.ACE, Suit.CLUBS); + } + + @Test + public void constructorTest(){ + int expected = 11; + int actual = dummy.getBlackjackRankEnum().getRankValue(); + Assert.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackDeckTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackDeckTest.java new file mode 100644 index 00000000..5968d464 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackDeckTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.GameToolsTests.Deck; + +public class BlackjackDeckTest { +} diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java new file mode 100644 index 00000000..aad51af5 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java @@ -0,0 +1,15 @@ +package io.zipcoder.casino.GameToolsTests.Deck; + +import io.zipcoder.casino.GameTools.Deck.BlackjackRank; +import io.zipcoder.casino.Games.Blackjack; +import org.junit.Assert; +import org.junit.Test; + +public class BlackjackRankTest { + @Test + public void getRankValueTest(){ + int expected = 8; + int actual = BlackjackRank.EIGHT.getRankValue(); + Assert.assertEquals(expected, actual); + } +} From b48081dc5c5711aaf98f53f7311b83a8dae46dbc Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 21:20:52 -0500 Subject: [PATCH 045/105] create dealer test file --- .../zipcoder/casino/Games/BlackjackTest.java | 31 +++++++++++++++++-- .../casino/Games/Dealer/DealerTest.java | 4 +++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 58b193f6..2767f2b8 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -1,8 +1,6 @@ package io.zipcoder.casino.Games; -import io.zipcoder.casino.GameTools.Deck.Card; -import io.zipcoder.casino.GameTools.Deck.Rank; -import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.GameTools.Deck.*; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; import org.junit.Assert; @@ -56,6 +54,33 @@ public void initialHandWithMultiplePlayersTest(){ Assert.assertEquals(expected, actual); } + @Test + public void bustCheckPositiveTest(){ + ArrayList temp = new ArrayList(); + temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + sueBKJK.setHand(temp); + Assert.assertTrue(game.bustCheck(sueBKJK)); + } + + @Test + public void bustCheckNegativeTest(){ + ArrayList temp = new ArrayList(); + temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + sueBKJK.setHand(temp); + Assert.assertFalse(game.bustCheck(sueBKJK)); + } + + @Test + public void runTurnTest(){ + //run turn method should initially draw from preset deck, hit once, and bust + //this will see if we can get a game to move through functions procedurally + //then we can see if we can put this function in a constructor + //to kick the game off as soon as the game object is instantiated + } + @Test public void startTest() { diff --git a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java new file mode 100644 index 00000000..dcede8f5 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Games.Dealer; + +public class DealerTest { +} From 53ff0f3bd09829137a3e91d9a441349cd5e475b6 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 21:25:10 -0500 Subject: [PATCH 046/105] add functionality to dealer with corresponding tests --- .../casino/Games/Dealer/DealerTest.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java index dcede8f5..3129fef2 100644 --- a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java +++ b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java @@ -1,4 +1,45 @@ package io.zipcoder.casino.Games.Dealer; +import io.zipcoder.casino.GameTools.Deck.BlackjackCard; +import io.zipcoder.casino.GameTools.Deck.BlackjackRank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.BlackjackPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + public class DealerTest { + + Dealer dealer; + + @Before + public void setup(){ + dealer = new Dealer(); + } + + @Test + public void getHandTest(){ + BlackjackCard ace = new BlackjackCard(BlackjackRank.ACE, Suit.CLUBS); + ArrayList expected = new ArrayList(); + expected.add(ace); + dealer.setHand(expected); + ArrayList actual = dealer.getHand(); + Assert.assertEquals(expected, actual); +} + + @Test + public void getHandValueTest() { + Integer expected = 5; + BlackjackCard two = new BlackjackCard(BlackjackRank.TWO, Suit.HEARTS); + BlackjackCard three = new BlackjackCard(BlackjackRank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList(); + tempHand.add(three); + tempHand.add(two); + dealer.setHand(tempHand); + Integer actual = dealer.getHandValue(); + Assert.assertEquals(expected, actual); + } } From c1c7fda36efa2aa45b415eb717156bf42ef28957 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Thu, 22 Feb 2018 21:36:05 -0500 Subject: [PATCH 047/105] dealer will know when to hit --- .../casino/Games/Dealer/DealerTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java index 3129fef2..97a58290 100644 --- a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java +++ b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java @@ -42,4 +42,29 @@ public void getHandValueTest() { Integer actual = dealer.getHandValue(); Assert.assertEquals(expected, actual); } + + @Test + public void canHitPositiveTest(){ + BlackjackCard two = new BlackjackCard(BlackjackRank.TWO, Suit.HEARTS); + BlackjackCard three = new BlackjackCard(BlackjackRank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList(); + tempHand.add(three); + tempHand.add(two); + dealer.setHand(tempHand); + boolean actual = dealer.canHit(); + Assert.assertTrue(actual); + } + + @Test + public void canHitNegativeTest(){ + BlackjackCard first = new BlackjackCard(BlackjackRank.KING, Suit.HEARTS); + BlackjackCard second = new BlackjackCard(BlackjackRank.KING, Suit.CLUBS); + ArrayList tempHand = new ArrayList(); + tempHand.add(first); + tempHand.add(second); + dealer.setHand(tempHand); + boolean actual = dealer.canHit(); + Assert.assertFalse(actual); + } + } From a2c1632f8969aa1a627021959fd5d0b294d75d4e Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 10:28:57 -0500 Subject: [PATCH 048/105] prep for mac update --- .../io/zipcoder/casino/Games/Blackjack.java | 16 +++++++++- .../zipcoder/casino/Games/Dealer/Dealer.java | 30 ++++++++++++++++++- .../casino/Players/BlackjackPlayer.java | 16 +++++----- .../PlayerTest/BlackjackPlayerTest.java | 21 +++++++------ 4 files changed, 63 insertions(+), 20 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 79b52f5f..ca4484d2 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.BlackjackCard; import io.zipcoder.casino.GameTools.Deck.BlackjackDeck; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; @@ -26,8 +27,15 @@ public class Blackjack { } } + public void runTurn(){ + //run turn method should initially draw from preset deck, hit once, and bust + //this will see if we can get a game to move through functions procedurally + //then we can see if we can put this function in a constructor + //to kick the game off as soon as the game object is instantiated + } + public void deal(BlackjackPlayer currentPlayer){ - Card temp = this.deck.deck.get(0); + BlackjackCard temp = this.deck.deck.get(0); currentPlayer.addToHand(temp); this.deck.deck.remove(0); } @@ -39,4 +47,10 @@ public void initialHand(BlackjackPlayer... blackjackPlayers){ } } + public boolean bustCheck(BlackjackPlayer currentPlayer){ + Integer handValue = currentPlayer.getHandValue(); + if (handValue > 21) return true; + return false; + } + } diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index 30f4ace7..c92f203f 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -1,9 +1,37 @@ package io.zipcoder.casino.Games.Dealer; +import io.zipcoder.casino.GameTools.Deck.BlackjackCard; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.Games.Blackjack; import java.util.ArrayList; public class Dealer { - private ArrayList hand; + private ArrayList hand; + + public void setHand(ArrayList hand){ + this.hand = hand; + } + + public void addToHand(BlackjackCard card){ + this.hand.add(card); + } + + public ArrayList getHand() { + return hand; + } + + public Integer getHandValue(){ + Integer handValue = 0; + for (BlackjackCard card:hand) { + handValue += card.getBlackjackRankEnum().getRankValue(); + } + return handValue; + } + + public boolean canHit(){ + if (getHandValue() < 17) return true; + return false; + } + } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 7bdf4f04..061d7443 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,12 +1,14 @@ package io.zipcoder.casino.Players; +import io.zipcoder.casino.GameTools.Deck.BlackjackCard; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.Games.Blackjack; import java.util.ArrayList; public class BlackjackPlayer extends Player{ protected Player rootPlayer; - protected ArrayList hand; + protected ArrayList hand; protected boolean canHit; public BlackjackPlayer(Player rootPlayer){ @@ -14,22 +16,22 @@ public BlackjackPlayer(Player rootPlayer){ this.age = rootPlayer.getAge(); this.canHit = true; this.rootPlayer = rootPlayer; - this.hand = new ArrayList(); + this.hand = new ArrayList(); } public Player getRootPlayer() { return rootPlayer; } - public void setHand(ArrayList hand){ + public void setHand(ArrayList hand){ this.hand = hand; } - public void addToHand(Card card){ + public void addToHand(BlackjackCard card){ this.hand.add(card); } - public ArrayList getHand() { + public ArrayList getHand() { return hand; } @@ -39,8 +41,8 @@ public boolean isCanHit() { public Integer getHandValue(){ Integer handValue = 0; - for (Card card:hand) { - handValue += card.getRankEnum().getRankValue(); + for (BlackjackCard card:hand) { + handValue += card.getBlackjackRankEnum().getRankValue(); } return handValue; } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java index a14d0cda..b1a1c187 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -1,8 +1,7 @@ package io.zipcoder.casino.PlayerTest; -import io.zipcoder.casino.GameTools.Deck.Card; -import io.zipcoder.casino.GameTools.Deck.Rank; -import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.GameTools.Deck.*; +import io.zipcoder.casino.Games.Blackjack; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; import org.junit.Assert; @@ -37,27 +36,27 @@ public void getCanHitTest(){ @Test public void getHandTest(){ - Card ace = new Card(Rank.ACE, Suit.CLUBS); - ArrayList expected = new ArrayList(); + BlackjackCard ace = new BlackjackCard(BlackjackRank.ACE, Suit.CLUBS); + ArrayList expected = new ArrayList(); expected.add(ace); suebkjk.setHand(expected); - ArrayList actual = suebkjk.getHand(); + ArrayList actual = suebkjk.getHand(); Assert.assertEquals(expected, actual); } @Test public void getRootPlayerTest(){ Player expected = sue; - Player acual = suebkjk.getRootPlayer(); - Assert.assertEquals(expected, acual); + Player actual = suebkjk.getRootPlayer(); + Assert.assertEquals(expected, actual); } @Test public void getHandValueTest() { Integer expected = 5; - Card two = new Card(Rank.TWO, Suit.HEARTS); - Card three = new Card(Rank.THREE, Suit.CLUBS); - ArrayList tempHand = new ArrayList(); + BlackjackCard two = new BlackjackCard(BlackjackRank.TWO, Suit.HEARTS); + BlackjackCard three = new BlackjackCard(BlackjackRank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList(); tempHand.add(three); tempHand.add(two); suebkjk.setHand(tempHand); From 4c0c775e4252ff49edc1dbce526dc6d4a7ce6208 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 12:01:35 -0500 Subject: [PATCH 049/105] add dealer logic in game & dealer classes --- .../java/io/zipcoder/casino/Games/Blackjack.java | 16 ++++++++++++++++ .../io/zipcoder/casino/Games/Dealer/Dealer.java | 4 ++++ .../io/zipcoder/casino/Games/BlackjackTest.java | 15 +++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index ca4484d2..b183cb6d 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -40,11 +40,18 @@ public void deal(BlackjackPlayer currentPlayer){ this.deck.deck.remove(0); } + public void dealToDealer(){ + BlackjackCard temp = this.deck.deck.get(0); + this.bkjkDealer.addToHand(temp); + this.deck.deck.remove(0); + } + public void initialHand(BlackjackPlayer... blackjackPlayers){ for (BlackjackPlayer thisPlayer:blackjackPlayers) { this.deal(thisPlayer); this.deal(thisPlayer); } + this.dealToDealer(); } public boolean bustCheck(BlackjackPlayer currentPlayer){ @@ -53,4 +60,13 @@ public boolean bustCheck(BlackjackPlayer currentPlayer){ return false; } + public boolean dealerHitCheck(){ + if (this.bkjkDealer.getHandValue() < 17) return true; + return false; + } + + public void dealerTurn(){ + + } + } diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index c92f203f..a0e4ef82 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -9,6 +9,10 @@ public class Dealer { private ArrayList hand; + public Dealer(){ + hand = new ArrayList(); + } + public void setHand(ArrayList hand){ this.hand = hand; } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 2767f2b8..8e41bfc7 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -44,6 +44,14 @@ public void initialHandTest(){ Assert.assertEquals(expected, actual); } + @Test + public void initialHandDealerTest(){ + Card expected = game.deck.deck.get(2); + game.initialHand(sueBKJK); + Card actual = game.bkjkDealer.getHand().get(0); + Assert.assertEquals(expected, actual); + } + @Test public void initialHandWithMultiplePlayersTest(){ Player jim = new Player("jim", 38, 300); @@ -73,6 +81,13 @@ public void bustCheckNegativeTest(){ Assert.assertFalse(game.bustCheck(sueBKJK)); } + @Test + public void dealerHitCheck(){ + game.initialHand(sueBKJK); + boolean expected = game.dealerHitCheck(); + Assert.assertTrue(expected); + } + @Test public void runTurnTest(){ //run turn method should initially draw from preset deck, hit once, and bust From 57e6b5ebf1b93b257604a2e4c669e373382eb103 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Fri, 23 Feb 2018 12:40:28 -0500 Subject: [PATCH 050/105] Add methods to Craps --- src/main/java/io/zipcoder/casino/Casino.java | 5 +++-- .../java/io/zipcoder/casino/Games/Craps.java | 16 ++++++++++++++++ .../zipcoder/casino/InputOutput/InputOutput.java | 10 ++++------ .../io/zipcoder/casino/Players/CrapsPlayer.java | 10 ++++++++++ .../java/io/zipcoder/casino/Players/Player.java | 6 +++--- .../java/io/zipcoder/casino/Games/CrapsTest.java | 7 ++++++- 6 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 8bbd85f2..14d1a33f 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -13,8 +13,9 @@ public class Casino { protected String askUserName(){ - String name = inputOutput.promptForString("Hello Player! What is your name?"); - return name; + //String name = inputOutput.promptForString("Hello Player! What is your name?"); + //return name; + return null; } protected Integer askUserAge(){ diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index bdd64bae..5bd28bd5 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -1,5 +1,21 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.InputOutput.InputOutput; +import io.zipcoder.casino.Players.CrapsPlayer; + public class Craps extends Dice { +//CrapsPlayer crapsPlayer = new CrapsPlayer(); +InputOutput inputOutput = new InputOutput(); + + +public String userPlacesBet(){ + String askUserBet = "Do you bet Pass Line or Don't Pass Line?"; + String betUserPlaces = inputOutput.scanForString(); + return betUserPlaces; +} + +public Integer addDieValuesTogether(){ + return null; +} } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 93a57fab..5e2aac5a 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -10,10 +10,8 @@ public class InputOutput { //MUST INSTANTIATE IN CASINO public String scanForString() { - String stringReturn = new String(); - if (input.hasNext()) { - stringReturn = input.nextLine(); - } + String stringReturn = input.nextLine(); + return stringReturn; } @@ -42,11 +40,11 @@ public String displayUnder21Menu(){ } - public String promptForString(String message) { + /*public String promptForString(String message) { System.out.println(message); return scanForString(); } - +*/ public int promptForInt(String message) { System.out.println(message); return scanForInt(); diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java new file mode 100644 index 00000000..3a3d149b --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -0,0 +1,10 @@ +package io.zipcoder.casino.Players; + +public class CrapsPlayer extends Player{ + protected Player mainPlayer; + public CrapsPlayer(Player mainPlayer){ + this.name = mainPlayer.getName(); + this.age = mainPlayer.getAge(); + + } +} diff --git a/src/main/java/io/zipcoder/casino/Players/Player.java b/src/main/java/io/zipcoder/casino/Players/Player.java index 0d6b5000..a421502b 100644 --- a/src/main/java/io/zipcoder/casino/Players/Player.java +++ b/src/main/java/io/zipcoder/casino/Players/Player.java @@ -2,9 +2,9 @@ public class Player { - private String name; - private Integer age; - private Integer balance; + protected String name; + protected Integer age; + protected Integer balance; diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index e30047e6..432489bf 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -1,12 +1,17 @@ package io.zipcoder.casino.Games; +import org.junit.Assert; import org.junit.Test; public class CrapsTest { @Test - public void playerBetsTest() { + public void userPlacesBetTest() { + Craps crapsTest = new Craps(); + String expected = "Pass Line"; + String actual = crapsTest.userPlacesBet(); + Assert.assertEquals(expected, actual); } @Test From d89622cec404c34e1c66128c09d7abfa6ec6bf29 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Fri, 23 Feb 2018 13:56:13 -0500 Subject: [PATCH 051/105] edited gofish method --- .../java/io/zipcoder/casino/Games/GoFish.java | 103 ++++++++---------- .../casino/InputOutput/InputOutput.java | 1 - .../casino/Players/BlackjackPlayer.java | 4 +- .../casino/Players/ComputerPlayer.java | 9 -- .../io/zipcoder/casino/Players/GoFishAI.java | 20 ++++ .../zipcoder/casino/Players/GoFishPlayer.java | 49 ++++++++- .../io/zipcoder/casino/Games/GoFishTest.java | 7 +- .../casino/PlayerTest/GoFishPlayerTest.java | 52 +++++++-- 8 files changed, 154 insertions(+), 91 deletions(-) delete mode 100644 src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java create mode 100644 src/main/java/io/zipcoder/casino/Players/GoFishAI.java diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 31a831b0..37ef39d6 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -1,89 +1,72 @@ package io.zipcoder.casino.Games; - -import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; -import io.zipcoder.casino.Players.ComputerPlayer; +import io.zipcoder.casino.Players.GoFishAI; import io.zipcoder.casino.Players.GoFishPlayer; -import io.zipcoder.casino.Players.Player; import io.zipcoder.casino.InputOutput.InputOutput; - import java.util.*; -public class GoFish { - private List cardHand; - private ArrayList players; - public String play() { - InputOutput inputOutput = new InputOutput(); - Player rootPlayer = new Player("Bob", 45, 100); - GoFishPlayer goFishPlayer1 = new GoFishPlayer(rootPlayer); - ComputerPlayer computerPlayer = new ComputerPlayer(); +public class GoFish { - cardHand = new ArrayList(); + private ArrayList players; + private InputOutput inputOutput; + List stockPile; + private int numPairsMatched; + private GoFishAI goFishAI; - players = new ArrayList(); - players.add(rootPlayer); - players.add(goFishPlayer1); + public GoFish(GoFishPlayer player1) { + inputOutput = new InputOutput(); + players = new ArrayList(); + players.add(player1); + //players.add(goFishAI); + numPairsMatched = 0; Deck deck = new Deck(); deck.shuffleDeck(); + } - - while(goFishPlayer1.getNumPairs() + computerPlayer.getNumPairs() < 26) { - - - } - - if (goFishPlayer1.getNumPairs() > computerPlayer.getNumPairs()) { - - String winner = inputOutput.promptForString("Congratulations, you win!"); - return winner; - } - else { + public String play() { + while (gameIsNotOver()) { } return null; } + //decide who wins here + + +// public void buildPlayerHand(){ +// +// +// } +// +// +// public void deal() { +// +// } + + public String displayCardHand () { + StringBuilder cardHandBuilder = new StringBuilder(); + for (int i = 0; i < players.size(); i++) { + //cardHandBuilder.append("Card " + (i + 1) + cardHand.get(i) + "\n"); + } + return cardHandBuilder.toString(); + } - public void buildPlayerHand() { - - } - - public void buildComputerHand() { - - } - - - public void deal() { - this.buildPlayerHand(); - this.buildComputerHand(); - //this.buildStockPile(); - } - - public int deckSize() { - return cardHand.size(); - } + private boolean gameIsNotOver () { + for (GoFishPlayer player : players) { + numPairsMatched = player.getNumPairs(); + } + return numPairsMatched < 26; + } + public void takeTurn () { - public String displayCardHand() { - StringBuilder cardHandBuilder = new StringBuilder(); - for (int i = 0; i < cardHand.size(); i++) { - cardHandBuilder.append("Card " + (i + 1) + cardHand.get(i) + "\n"); } - return cardHandBuilder.toString(); } - public boolean isGameOver() { - return false; - } - - public void takeTurn() { - - } -} diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 802d89fa..a9de3fd5 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -28,7 +28,6 @@ public ArrayList displayUnder21Menu() { return null; } - public String promptForString(String message) { System.out.println(message); String s = scanForString(); diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index f28162ec..631b6b1a 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -2,7 +2,7 @@ public class BlackjackPlayer extends Player{ private String name; - private Double balance; + private Integer balance; private Integer age; //private Card[] hand; private boolean canHit; @@ -10,7 +10,7 @@ public class BlackjackPlayer extends Player{ public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); - this.balance = rootPlayer.getBalance(); + //this.balance = rootPlayer.getBalance(); //this.hand = new Card[]; this.canHit = true; } diff --git a/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java b/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java deleted file mode 100644 index 5ba21679..00000000 --- a/src/main/java/io/zipcoder/casino/Players/ComputerPlayer.java +++ /dev/null @@ -1,9 +0,0 @@ -package io.zipcoder.casino.Players; - -public class ComputerPlayer extends Player { - private int numPairs; - - public int getNumPairs() { - return numPairs; - } -} diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishAI.java b/src/main/java/io/zipcoder/casino/Players/GoFishAI.java new file mode 100644 index 00000000..1abd0012 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Players/GoFishAI.java @@ -0,0 +1,20 @@ +package io.zipcoder.casino.Players; +import io.zipcoder.casino.GameTools.Deck.Card; +import java.util.ArrayList; +import java.util.List; + + +public class GoFishAI extends GoFishPlayer { + private List cardHand; + private int numPairs; + + + public GoFishAI() { + cardHand = new ArrayList(); + numPairs = 0; + } + + public int getNumPairs() { + return numPairs; + } +} diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index d396fcb8..2b0099a4 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -1,5 +1,9 @@ package io.zipcoder.casino.Players; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Games.GoFish; +import io.zipcoder.casino.InputOutput.InputOutput; import java.util.ArrayList; import java.util.List; @@ -7,26 +11,59 @@ public class GoFishPlayer extends Player { - private String name; - private Integer age; - private List cardHand; + public List cardHand; private int numPairs; - + private InputOutput inputOutput = new InputOutput(); public GoFishPlayer(Player rootPlayer) { - this.name = rootPlayer.getName(); - this.age = rootPlayer.getAge(); + super(rootPlayer.getName(), rootPlayer.getAge()); cardHand = new ArrayList(); numPairs = 0; } + public GoFishPlayer(){ + + } + public int getNumPairs() { return numPairs; } + public List getCardHand() { + return cardHand; + } + + public boolean hasCard(Card cardToCheck) { + return cardHand.contains(cardToCheck); + } + + public void removeCardFromHand(Card cardToRemove) { + cardHand.remove(cardToRemove); + } + +// public Card askForCard() { +// inputOutput.promptForString(""); +// return Card +// } + + public static void main(String[] args) { + Player player1 = new Player("Bob", 34); + GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + + //List cardHand = new ArrayList(); + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + Card temp2 = new Card(Rank.FOUR, Suit.DIAMOND); + Card temp3 = new Card(Rank.QUEEN, Suit.SPADE); + goFishPlayer1.cardHand.add(temp1); + goFishPlayer1.cardHand.add(temp2); + goFishPlayer1.cardHand.add(temp3); + + System.out.println(goFishPlayer1.getCardHand()); + + } } diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java index 894f4ca3..cbd91f8f 100644 --- a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -9,7 +9,7 @@ public class GoFishTest { @Test public void dealTest() { - GoFish game = new GoFish(); + //GoFish game = new GoFish(); Player player1 = new Player(); Player goFishPlayer1 = new GoFishPlayer(player1); @@ -44,10 +44,7 @@ public void goFishTest() { @Test public void displayCardHandTest() { - GoFish game = new GoFish(); - Player player1 = new Player(); - Player goFishPlayer1 = new GoFishPlayer(player1); - game.deal(); + } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index 76061bef..846d27b8 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -1,28 +1,64 @@ package io.zipcoder.casino.PlayerTest; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import org.junit.Assert; import org.junit.Test; +import java.util.ArrayList; +import java.util.List; + +import static io.zipcoder.casino.GameTools.Deck.Rank.ACE; +import static io.zipcoder.casino.GameTools.Deck.Suit.HEARTS; public class GoFishPlayerTest { + @Test - public void constructorTest() { + public void constructorTestName() { String expectedName = "Bob"; - Integer expectedAge = 24; - Integer expectedBalance = 50; - Player player1 = new Player(expectedName, expectedAge, expectedBalance); - Player goFishPlayer1 = new GoFishPlayer(player1); + Player player1 = new Player(expectedName, 34); + GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); String actualName = goFishPlayer1.getName(); - Integer actualAge = player1.getAge(); - Integer actualBalance = player1.getBalance(); Assert.assertEquals(expectedName, actualName); + } + + @Test + public void constructorTestAge() { + int expectedAge = 78; + + Player player1 = new Player("Phoebe", expectedAge); + Player goFishPlayer1 = new GoFishPlayer(player1); + + int actualAge = goFishPlayer1.getAge(); + Assert.assertEquals(expectedAge, actualAge); - Assert.assertEquals(expectedBalance, actualBalance); } + + @Test + public void getCardHandTest() { + Player player1 = new Player("Bob", 34); + GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + + //List cardHand = new ArrayList(); + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + Card temp2 = new Card(Rank.FOUR, Suit.DIAMOND); + Card temp3 = new Card(Rank.QUEEN, Suit.SPADE); + goFishPlayer1.cardHand.add(temp1); + goFishPlayer1.cardHand.add(temp2); + goFishPlayer1.cardHand.add(temp3); + + List expectedCards = + List actualCards = goFishPlayer1.getCardHand(); + + Assert.assertEquals(expectedCards, actualCards); + } + + } From b2d985a22e508c8f76165d32a0f8c90498726b22 Mon Sep 17 00:00:00 2001 From: Brian He Date: Fri, 23 Feb 2018 13:56:29 -0500 Subject: [PATCH 052/105] create an override toString method --- src/main/java/io/zipcoder/casino/Casino.java | 25 +++++---- .../zipcoder/casino/GameTools/Deck/Card.java | 9 ++++ .../java/io/zipcoder/casino/Games/War.java | 53 +++++++++++++++++++ .../casino/InputOutput/InputOutput.java | 30 +++-------- .../io/zipcoder/casino/Players/WarPlayer.java | 35 ++++++++++++ 5 files changed, 116 insertions(+), 36 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Players/WarPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7d675900..bb0cfd21 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -23,32 +23,31 @@ protected Integer askUserAge(){ } protected Integer askUserBalance(){ - Integer balance = inputOutput.promptInteger("How much do you want to gamble with?"); + Integer balance = inputOutput.promptInt("How much do you want to gamble with?"); return balance; } + protected void showMainMenu() { + ArrayList selectedGame; + if(player.getAge() > 21) { + selectedGame = inputOutput.displayOver21Menu(); + } else { + selectedGame = inputOutput.displayUnder21Menu(); + } + } + protected void setUpUserProfile(){ String name = this.askUserName(); Integer age = this.askUserAge(); if(age > 21) { - Integer balance = this.askUserBalance(); - player = new Player(name, age, balance); - + Integer balance = this.askUserBalance(); + player = new Player(name, age, balance); } else{ player = new Player(name, age); } } - protected void showMainMenu() { - ArrayList selectedGame; - if(player.getAge() > 21) { - selectedGame = inputOutput.displayOver21Menu(); - } else { - selectedGame = inputOutput.displayUnder21Menu(); - } - } - protected void start() { this.setUpUserProfile(); this.showMainMenu(); diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java index 88a43454..d73f2699 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java @@ -24,4 +24,13 @@ public Rank getRankEnum() { public void setRankEnum(Rank rankEnum) { this.rankEnum = rankEnum; } + + @Override + public String toString() { + StringBuilder card = new StringBuilder(); + card.append(this.getRankEnum() + " of " + this.getSuitEnum()); + + return card.toString(); + } + } diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index 4e8685d6..bef46da9 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -1,6 +1,59 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Players.Player; +import io.zipcoder.casino.Players.WarPlayer; + public class War { + private Integer playerPoints; + private Integer computerPoints; + private WarPlayer player = new WarPlayer(); + private Deck deck = new Deck(); + + public void shuffle() { + deck.shuffleDeck(); + } + + public Card deal() { +// player.currentHand.add(deck.deck.get(0)); +// deck.deck.remove(deck.deck.get(0)); + for(int i = 0; i < deck.deck.size(); i++) { + System.out.println(deck.deck.get(i).toString()); + } + return null; + } + + public String compareCards() { + return null; + } + + public void itisWar() { + + + } + + public Integer awardPoint() { + return 0; + } + + public boolean cardsLeftInDeck() { +// if(deck.get(0) != null) { +// return true; +// } + return false; + } + + public String declareWinner() { + if(playerPoints > computerPoints) { + return "Congratulations. " + player.getName() + "You won"; + } + return "You lost to a computer..."; + } + public static void main(String[] args) { + War war = new War(); + war.deal(); + } } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 044c4bee..4e068e60 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -16,16 +16,17 @@ public String scanForString() { return stringReturn; } - public Integer scanForInt(){ + public Integer scanForInt() { Integer integerReturn = input.nextInt(); return integerReturn; } - public ArrayList displayOver21Menu(){ - return null; + public ArrayList displayOver21Menu() { + return null; } - public ArrayList displayUnder21Menu(){ - return null; + + public ArrayList displayUnder21Menu() { + return null; } @@ -38,21 +39,4 @@ public int promptInt(String message) { System.out.println(message); return scanForInt(); } - - - - - - //generic methods - //method for menus - //create line breaks - //validate user input - - -// public static void main(String[] args) { -// InputOutput io = new InputOutput(); -// System.out.println("Enter your name"); -// String name = io.scanForString(); -// System.out.println(name); -// } -} +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java new file mode 100644 index 00000000..02f2ff28 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java @@ -0,0 +1,35 @@ +package io.zipcoder.casino.Players; + +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.Wallet; + +import java.util.ArrayList; + +public class WarPlayer extends Player { + + public ArrayList currentHand; + + public WarPlayer() { + super.name = ""; + super.age = Integer.MAX_VALUE; + } + + public WarPlayer(String name, Integer age) { + super.name = name; + super.age = age; + } + + public void setCurrentHand(Card card) { + currentHand = new ArrayList<>(); + currentHand.add(card); + } + + public void setName(String name) { + super.name = name; + } + + public void setAge(int age) { + super.age = age; + } + +} From 52f9b8a5ab60ff7ccad1a385076bc3aaf2353d59 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Fri, 23 Feb 2018 14:14:22 -0500 Subject: [PATCH 053/105] Updating Remote dev --- .../java/io/zipcoder/casino/Games/Craps.java | 26 ++++++++++++++++++- .../java/io/zipcoder/casino/Games/Dice.java | 23 +--------------- .../io/zipcoder/casino/Games/CrapsTest.java | 2 +- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 5bd28bd5..4a2766fc 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -3,8 +3,9 @@ import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Players.CrapsPlayer; + public class Craps extends Dice { -//CrapsPlayer crapsPlayer = new CrapsPlayer(); +CrapsPlayer crapsPlayer = new CrapsPlayer(); InputOutput inputOutput = new InputOutput(); @@ -15,7 +16,30 @@ public String userPlacesBet(){ } public Integer addDieValuesTogether(){ + return rollDice() + rollDice(); +} + +public String passLineBetWin(){ + // if certain numbers they loose return null; } +public String passLineBetLose(){ + // if certain numbers they lose + return null; +} + +public String passLineBetRollNonWinLoseNumber(){ + //Roll dice while the value is not a win or lose value(Do while loop) + return null; +} + +public void startGame(){ + //Start game + +} + +public void playDifferentGame(){ + //end game and go to different menu +} } diff --git a/src/main/java/io/zipcoder/casino/Games/Dice.java b/src/main/java/io/zipcoder/casino/Games/Dice.java index 192b8f21..4dbf5cc5 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dice.java +++ b/src/main/java/io/zipcoder/casino/Games/Dice.java @@ -4,31 +4,10 @@ public class Dice { - private Integer dice1; - private Integer dice2; // static final Integer SEED = 3900; - public Integer rollDice(){ Random dice1 = new Random(); - Random dice2 = new Random(); - Integer diceRoll = (dice1.nextInt(6)+1) + dice1.nextInt(6)+1; + Integer diceRoll = (dice1.nextInt(6)+1); return diceRoll; } - - public void setDice1() { - - } - - public void setDice2() { - - } - - public Integer getDice1() { - return 0; - } - - public Integer getDice2() { - return 0; - } - } diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index 432489bf..a191b3aa 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -15,7 +15,7 @@ public void userPlacesBetTest() { } @Test - public void rollDiceTest() { + public void addDieValuesTogetherTest() { } From 6c4536da3a283af6bef533a2eb75e9e3b19c96dc Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 15:02:36 -0500 Subject: [PATCH 054/105] make foundation for util --- .../casino/GameTools/Util/BlackjackValueUtil.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java diff --git a/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java b/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java new file mode 100644 index 00000000..cd1320ef --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java @@ -0,0 +1,12 @@ +package io.zipcoder.casino.GameTools.Deck.Util; + +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.GameTools.Deck.Deck; + +public class BlackjackValueUtil { + public static int rankParse(){ + return 0; + } +} From ead1c80ffafda43f12c15d5c6da0db74b8d4878a Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 15:18:06 -0500 Subject: [PATCH 055/105] intermediary --- .../io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java | 3 ++- .../java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java b/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java index cd1320ef..9964e3d3 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java @@ -1,4 +1,4 @@ -package io.zipcoder.casino.GameTools.Deck.Util; +package io.zipcoder.casino.GameTools.Util; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Rank; @@ -7,6 +7,7 @@ public class BlackjackValueUtil { public static int rankParse(){ + return 0; } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index ff7af4dc..6771e7c8 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -7,7 +7,7 @@ public class GoFishPlayerTest { - + @Test public void constructorTest() { String expectedName = "Bob"; From 77bacb0e4dee05b45efd3e5a0db302411d8d9ace Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Fri, 23 Feb 2018 16:07:37 -0500 Subject: [PATCH 056/105] merge errors --- src/main/java/io/zipcoder/casino/Games/Craps.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 4a2766fc..01b6885a 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -5,7 +5,7 @@ public class Craps extends Dice { -CrapsPlayer crapsPlayer = new CrapsPlayer(); +//CrapsPlayer crapsPlayer = new CrapsPlayer(); InputOutput inputOutput = new InputOutput(); From c0fb6ba1acb7ee76d517af057fc710c8b7c19234 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 16:35:19 -0500 Subject: [PATCH 057/105] blackjack inline with Game interface --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index b183cb6d..addba688 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -6,17 +6,25 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; import java.util.ArrayList; -public class Blackjack { +public class Blackjack implements Game{ protected ArrayList playerList; protected BlackjackDeck deck; protected Dealer bkjkDealer; + public void startGame(){ + + } + + public void endGame(){ + + } Blackjack(Player... players){ deck = new BlackjackDeck(); From 35e4c31bb2c0ba8abc719917305789b1d7fface2 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Fri, 23 Feb 2018 16:36:48 -0500 Subject: [PATCH 058/105] Figured out main menu --- src/main/java/io/zipcoder/casino/Casino.java | 49 ++++++++++++++----- .../java/io/zipcoder/casino/Games/Craps.java | 9 ++-- .../casino/InputOutput/InputOutput.java | 43 ++++++++-------- .../io/zipcoder/casino/Players/WarPlayer.java | 2 +- .../io/zipcoder/casino/Games/DiceTest.java | 13 ----- .../casino/PlayerTest/PlayerTest.java | 2 +- 6 files changed, 69 insertions(+), 49 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 007a07f5..9c9edb74 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -1,7 +1,12 @@ package io.zipcoder.casino; +import io.zipcoder.casino.Games.Blackjack; +import io.zipcoder.casino.Games.Craps; +import io.zipcoder.casino.Games.GoFish; +import io.zipcoder.casino.Games.War; import io.zipcoder.casino.InputOutput.InputOutput; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.Player; import java.util.ArrayList; @@ -10,7 +15,7 @@ public class Casino { InputOutput inputOutput = new InputOutput(); Player player; - + private boolean isPlaying = true; protected String askUserName(){ //String name = inputOutput.promptForString("Hello Player! What is your name?"); @@ -43,23 +48,45 @@ protected void setUpUserProfile(){ } } + protected void initiateGame() { + do { + String selectedGame = inputOutput.availableGames(this.player); + if(selectedGame.equals("Exit")){ + continue; + } else { + selectGame(selectedGame).startGame(); - protected void showMainMenu() { - - if(player.getAge() > 21) { - Integer number = inputOutput.displayOver21Menu(); - String selectedGame = inputOutput.under21Games.get(number -1); - - - } else { - String selectedGame = inputOutput.displayUnder21Menu(); + } } + while(isPlaying); } + protected Game selectGame(String selectedGame) { + Game game; + + switch (selectedGame) { + case "War": + game = new War(); + break; + case "Go Fish": + game = new GoFish(); + break; + case "BlackJack": + game = new Blackjack(); + break; + + case "Craps": + game = new Craps(); + break; + case "Exit": + isPlaying = false; + } + return game; + } protected void start() { this.setUpUserProfile(); - this.showMainMenu(); + this.initiateGame(); } } diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 4a2766fc..855ad73e 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -1,11 +1,12 @@ package io.zipcoder.casino.Games; import io.zipcoder.casino.InputOutput.InputOutput; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.CrapsPlayer; -public class Craps extends Dice { -CrapsPlayer crapsPlayer = new CrapsPlayer(); +public class Craps extends Dice implements Game{ +//CrapsPlayer crapsPlayer = new CrapsPlayer(); InputOutput inputOutput = new InputOutput(); @@ -35,10 +36,12 @@ public String passLineBetRollNonWinLoseNumber(){ } public void startGame(){ - //Start game } +public void endGame(){ + System.out.println("Wasn't that fun?"); +} public void playDifferentGame(){ //end game and go to different menu } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index 7588d646..c282b84a 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -1,7 +1,10 @@ package io.zipcoder.casino.InputOutput; +import io.zipcoder.casino.Players.Player; + import java.util.ArrayList; import java.util.Scanner; +import java.util.TreeMap; public class InputOutput { Scanner input = new Scanner(System.in); @@ -20,29 +23,29 @@ public Integer scanForInt(){ return Integer.parseInt(scanForString()); } - public Integer displayOver21Menu(){ + public String availableGames(Player player){ InputOutput inputOutput = new InputOutput(); - ArrayList over21Games = new ArrayList(); - over21Games.add("War"); - over21Games.add("Go Fish"); - over21Games.add("BlackJack"); - over21Games.add("Craps"); - - StringBuilder displayOver21Games = new StringBuilder(); - Integer number = inputOutput.promptForInt("Please enter in a number between 1-4 to select a game"); - - return number; - } - public String displayUnder21Menu() { - //ArrayList under21Games = new ArrayList(); - under21Games.add("War"); - under21Games.add("Go Fish"); - return null; + TreeMap games = new TreeMap(); + Integer number; + if(player.getAge() > 20) { + games.put(1, "War"); + games.put(2, "Go Fish"); + games.put(3, "BlackJack"); + games.put(4, "Craps"); + games.put(5, "Exit"); + number = inputOutput.promptForInt("Please select a game\n1.War\n2.Go Fish\n3.BlackJack\n4.Craps"); + } else { + games.put(1, "War"); + games.put(2,"Go Fish"); + games.put(3, "Exit"); + number = inputOutput.promptForInt("Please enter in a number between 1 - 2 to select a game"); + + } + StringBuilder displayGames = new StringBuilder(); + + return games.get(number); } - - - public String promptForString(String message) { System.out.println(message); diff --git a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java index 02f2ff28..05af2de3 100644 --- a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java @@ -20,7 +20,7 @@ public WarPlayer(String name, Integer age) { } public void setCurrentHand(Card card) { - currentHand = new ArrayList<>(); + //currentHand = new ArrayList<>(); currentHand.add(card); } diff --git a/src/test/java/io/zipcoder/casino/Games/DiceTest.java b/src/test/java/io/zipcoder/casino/Games/DiceTest.java index 994bac7b..542d4c9e 100644 --- a/src/test/java/io/zipcoder/casino/Games/DiceTest.java +++ b/src/test/java/io/zipcoder/casino/Games/DiceTest.java @@ -8,17 +8,4 @@ public class DiceTest { - -// @Test -// public void getDice1Test(){ -// //given -// Random randomTest = new Random(Dice.SEED); -// Dice diceTest = new Dice(); -// Integer expected = randomTest.nextInt(6)+1; -// -// Integer actual = diceTest.rollDice(); -// Assert.assertEquals(expected, actual); -// } - - } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java index beef027b..1c5ae21d 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -78,7 +78,7 @@ public void getAgeTest() { public void setBalanceTest() { Player player1 = new Player("Bob", 49, 100); Integer expected = 100; - player1.setBalance(expected); + //player1.setBalance(expected); Integer actual = player1.getBalance(); Assert.assertEquals(expected, actual); From 1dadd33a3e656dc92ed6d148b4bddbe327850566 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 16:38:56 -0500 Subject: [PATCH 059/105] format for Game --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index addba688..42720981 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -23,7 +23,7 @@ public void startGame(){ } public void endGame(){ - + } Blackjack(Player... players){ From c5517b9de9ec3502b966d89b153c660314f95378 Mon Sep 17 00:00:00 2001 From: Brian He Date: Fri, 23 Feb 2018 16:39:02 -0500 Subject: [PATCH 060/105] start the factories --- .../io/zipcoder/casino/Factories/CardFactory.java | 9 +++++++++ .../io/zipcoder/casino/Factories/DeckFactory.java | 7 +++++++ .../zipcoder/casino/Factories/PlayerFactory.java | 4 ++++ src/main/java/io/zipcoder/casino/Games/War.java | 14 +++++++------- 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Factories/CardFactory.java create mode 100644 src/main/java/io/zipcoder/casino/Factories/DeckFactory.java create mode 100644 src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java diff --git a/src/main/java/io/zipcoder/casino/Factories/CardFactory.java b/src/main/java/io/zipcoder/casino/Factories/CardFactory.java new file mode 100644 index 00000000..bab438be --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Factories/CardFactory.java @@ -0,0 +1,9 @@ +package io.zipcoder.casino.Factories; + +public class CardFactory { + + public void createCard() { + + } + +} diff --git a/src/main/java/io/zipcoder/casino/Factories/DeckFactory.java b/src/main/java/io/zipcoder/casino/Factories/DeckFactory.java new file mode 100644 index 00000000..85a36bea --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Factories/DeckFactory.java @@ -0,0 +1,7 @@ +package io.zipcoder.casino.Factories; + +import io.zipcoder.casino.GameTools.Deck.Deck; + +public class DeckFactory extends Deck { + +} diff --git a/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java b/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java new file mode 100644 index 00000000..d991935c --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.Factories; + +public class PlayerFactory { +} diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index bef46da9..28187279 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -17,8 +17,8 @@ public void shuffle() { } public Card deal() { -// player.currentHand.add(deck.deck.get(0)); -// deck.deck.remove(deck.deck.get(0)); + player.currentHand.add(deck.deck.get(0)); + deck.deck.remove(deck.deck.get(0)); for(int i = 0; i < deck.deck.size(); i++) { System.out.println(deck.deck.get(i).toString()); } @@ -31,7 +31,6 @@ public String compareCards() { public void itisWar() { - } public Integer awardPoint() { @@ -39,10 +38,11 @@ public Integer awardPoint() { } public boolean cardsLeftInDeck() { -// if(deck.get(0) != null) { -// return true; -// } - return false; + if(!(deck.deck.get(0).equals(null))) { + return true; + } else { + return false; + } } public String declareWinner() { From 61cd4bfd50c0ff310802e359c15ebc6b2eb459f0 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 17:12:07 -0500 Subject: [PATCH 061/105] interface formatting, rankparse util and appropriate testing --- src/main/java/io/zipcoder/casino/Casino.java | 2 +- .../GameTools/Util/BlackjackValueUtil.java | 15 +++++++-- .../io/zipcoder/casino/Games/Blackjack.java | 12 +++++-- .../java/io/zipcoder/casino/Games/GoFish.java | 11 ++++++- .../java/io/zipcoder/casino/Games/War.java | 11 ++++++- .../Util/BlackjackValueUtilTest.java | 31 +++++++++++++++++++ 6 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Util/BlackjackValueUtilTest.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 9c9edb74..7a24fcd9 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -62,7 +62,7 @@ protected void initiateGame() { } protected Game selectGame(String selectedGame) { - Game game; + Game game = null; switch (selectedGame) { case "War": diff --git a/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java b/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java index 9964e3d3..dc54446f 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Util/BlackjackValueUtil.java @@ -6,8 +6,19 @@ import io.zipcoder.casino.GameTools.Deck.Deck; public class BlackjackValueUtil { - public static int rankParse(){ + public static int rankParse(Rank rank){ + switch (rank){ + case ACE: + return 11; + case JACK: + return 10; + case QUEEN: + return 10; + case KING: + return 10; - return 0; + default: + return rank.getRankValue(); + } } } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index da81399f..7679f0a7 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -4,19 +4,27 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; import java.util.ArrayList; -public class Blackjack { +public class Blackjack implements Game{ protected ArrayList playerList; protected Deck deck; protected Dealer bkjkDealer; + public void startGame(){ - Blackjack(Player... players){ + } + + public void endGame(){ + + } + + public Blackjack(Player... players){ deck = new Deck(); bkjkDealer = new Dealer(); playerList = new ArrayList(); diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index fe81ef30..aecf3db3 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -3,17 +3,26 @@ import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import java.util.*; -public class GoFish { +public class GoFish implements Game{ Queue stockPile; private List cardHand; ArrayList players; + public void startGame(){ + + } + + public void endGame(){ + + } + public void play() { Player rootPlayer = new Player("Bob", 45, 100); Player goFishPlayer1 = new GoFishPlayer(rootPlayer); diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index bef46da9..52703e6a 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -2,16 +2,25 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.Player; import io.zipcoder.casino.Players.WarPlayer; -public class War { +public class War implements Game{ private Integer playerPoints; private Integer computerPoints; private WarPlayer player = new WarPlayer(); private Deck deck = new Deck(); + public void startGame(){ + + } + + public void endGame(){ + + } + public void shuffle() { deck.shuffleDeck(); } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Util/BlackjackValueUtilTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Util/BlackjackValueUtilTest.java new file mode 100644 index 00000000..d7e82574 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Util/BlackjackValueUtilTest.java @@ -0,0 +1,31 @@ +package io.zipcoder.casino.GameToolsTests.Util; + +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; +import org.junit.Assert; +import org.junit.Test; + +public class BlackjackValueUtilTest { + + @Test + public void parseAceTest(){ + int actual = BlackjackValueUtil.rankParse(Rank.ACE); + int expected = 11; + Assert.assertEquals(actual, expected); + } + + @Test + public void parseJackTest(){ + int actual = BlackjackValueUtil.rankParse(Rank.JACK); + int expected = 10; + Assert.assertEquals(actual, expected); + } + + @Test + public void parseSevenTest(){ + int actual = BlackjackValueUtil.rankParse(Rank.SEVEN); + int expected = 7; + Assert.assertEquals(actual, expected); + } + +} From cf1a2da9a41f82944f0e1b469bc7401163075413 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 17:45:43 -0500 Subject: [PATCH 062/105] refactor for blackjackutil --- .../casino/GameTools/Deck/BlackjackCard.java | 58 +++++++++---------- .../casino/GameTools/Deck/BlackjackDeck.java | 26 ++++----- .../casino/GameTools/Deck/BlackjackRank.java | 58 +++++++++---------- .../io/zipcoder/casino/Games/Blackjack.java | 3 - .../zipcoder/casino/Games/Dealer/Dealer.java | 16 ++--- .../casino/Players/BlackjackPlayer.java | 16 ++--- .../Deck/BlackjackCardTest.java | 11 ++-- .../Deck/BlackjackRankTest.java | 32 +++++----- .../zipcoder/casino/Games/BlackjackTest.java | 14 ++--- .../casino/Games/Dealer/DealerTest.java | 28 ++++----- .../PlayerTest/BlackjackPlayerTest.java | 12 ++-- 11 files changed, 137 insertions(+), 137 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java index 632fa76d..4d7b5146 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java @@ -1,29 +1,29 @@ -package io.zipcoder.casino.GameTools.Deck; - -import io.zipcoder.casino.Games.Blackjack; - -public class BlackjackCard extends Card{ - private Suit suitEnum; - private BlackjackRank rankEnum; - - public BlackjackCard(BlackjackRank rankEnum, Suit suitEnum) { - this.rankEnum = rankEnum; - this.suitEnum = suitEnum; - } - - public Suit getSuitEnum() { - return suitEnum; - } - - public void setSuitEnum(Suit suitEnum) { - this.suitEnum = suitEnum; - } - - public BlackjackRank getBlackjackRankEnum() { - return rankEnum; - } - - public void setRankEnum(BlackjackRank rankEnum) { - this.rankEnum = rankEnum; - } -} \ No newline at end of file +//package io.zipcoder.casino.GameTools.Deck; +// +//import io.zipcoder.casino.Games.Blackjack; +// +//public class BlackjackCard extends Card{ +// private Suit suitEnum; +// private BlackjackRank rankEnum; +// +// public BlackjackCard(BlackjackRank rankEnum, Suit suitEnum) { +// this.rankEnum = rankEnum; +// this.suitEnum = suitEnum; +// } +// +// public Suit getSuitEnum() { +// return suitEnum; +// } +// +// public void setSuitEnum(Suit suitEnum) { +// this.suitEnum = suitEnum; +// } +// +// public BlackjackRank getBlackjackRankEnum() { +// return rankEnum; +// } +// +// public void setRankEnum(BlackjackRank rankEnum) { +// this.rankEnum = rankEnum; +// } +//} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java index 8b82391f..fd88ca47 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java @@ -5,16 +5,16 @@ import java.util.ArrayList; import java.util.Collections; -public class BlackjackDeck extends Deck{ - - public ArrayList deck = new ArrayList(); - - public BlackjackDeck() { - for (BlackjackRank currentRank: BlackjackRank.values()) { - for (Suit currentSuit : Suit.values()){ - BlackjackCard temp = new BlackjackCard(currentRank, currentSuit); - deck.add(temp); - } - } - } -} \ No newline at end of file +//public class BlackjackDeck extends Deck{ +// +// public ArrayList deck = new ArrayList(); +// +// public BlackjackDeck() { +// for (BlackjackRank currentRank: BlackjackRank.values()) { +// for (Suit currentSuit : Suit.values()){ +// BlackjackCard temp = new BlackjackCard(currentRank, currentSuit); +// deck.add(temp); +// } +// } +// } +//} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java index 03e9e131..785a222e 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java @@ -1,29 +1,29 @@ -package io.zipcoder.casino.GameTools.Deck; - -public enum BlackjackRank { - - TWO(2), - THREE(3), - FOUR(4), - FIVE(5), - SIX(6), - SEVEN(7), - EIGHT(8), - NINE(9), - TEN(10), - JACK(10), - QUEEN(10), - KING(10), - ACE(11); - - private int rankValue; - - BlackjackRank(int rankValue){ - this.rankValue = rankValue; - } - - public int getRankValue(){ - return rankValue; - } - -} \ No newline at end of file +//package io.zipcoder.casino.GameTools.Deck; +// +//public enum BlackjackRank { +// +// TWO(2), +// THREE(3), +// FOUR(4), +// FIVE(5), +// SIX(6), +// SEVEN(7), +// EIGHT(8), +// NINE(9), +// TEN(10), +// JACK(10), +// QUEEN(10), +// KING(10), +// ACE(11); +// +// private int rankValue; +// +// BlackjackRank(int rankValue){ +// this.rankValue = rankValue; +// } +// +// public int getRankValue(){ +// return rankValue; +// } +// +//} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 971736eb..cde57c3f 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,8 +1,5 @@ package io.zipcoder.casino.Games; - -import io.zipcoder.casino.GameTools.Deck.BlackjackCard; -import io.zipcoder.casino.GameTools.Deck.BlackjackDeck; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index a0e4ef82..726bbb7c 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -1,34 +1,34 @@ package io.zipcoder.casino.Games.Dealer; -import io.zipcoder.casino.GameTools.Deck.BlackjackCard; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; import io.zipcoder.casino.Games.Blackjack; import java.util.ArrayList; public class Dealer { - private ArrayList hand; + private ArrayList hand; public Dealer(){ - hand = new ArrayList(); + hand = new ArrayList(); } - public void setHand(ArrayList hand){ + public void setHand(ArrayList hand){ this.hand = hand; } - public void addToHand(BlackjackCard card){ + public void addToHand(Card card){ this.hand.add(card); } - public ArrayList getHand() { + public ArrayList getHand() { return hand; } public Integer getHandValue(){ Integer handValue = 0; - for (BlackjackCard card:hand) { - handValue += card.getBlackjackRankEnum().getRankValue(); + for (Card card:hand) { + handValue += BlackjackValueUtil.rankParse(card.getRankEnum()); } return handValue; } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 2170263e..d625ab4b 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,14 +1,14 @@ package io.zipcoder.casino.Players; -import io.zipcoder.casino.GameTools.Deck.BlackjackCard; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; import io.zipcoder.casino.Games.Blackjack; import java.util.ArrayList; public class BlackjackPlayer extends Player{ protected Player rootPlayer; - protected ArrayList hand; + protected ArrayList hand; protected boolean canHit; public BlackjackPlayer(Player rootPlayer){ @@ -17,22 +17,22 @@ public BlackjackPlayer(Player rootPlayer){ this.canHit = true; this.rootPlayer = rootPlayer; - this.hand = new ArrayList(); + this.hand = new ArrayList(); } public Player getRootPlayer() { return rootPlayer; } - public void setHand(ArrayList hand){ + public void setHand(ArrayList hand){ this.hand = hand; } - public void addToHand(BlackjackCard card){ + public void addToHand(Card card){ this.hand.add(card); } - public ArrayList getHand() { + public ArrayList getHand() { return hand; } @@ -42,8 +42,8 @@ public boolean isCanHit() { public Integer getHandValue(){ Integer handValue = 0; - for (BlackjackCard card:hand) { - handValue += card.getBlackjackRankEnum().getRankValue(); + for (Card card:hand) { + handValue += BlackjackValueUtil.rankParse(card.getRankEnum()); } return handValue; } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java index 7c614a0a..c9a297fc 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackCardTest.java @@ -1,25 +1,26 @@ package io.zipcoder.casino.GameToolsTests.Deck; -import io.zipcoder.casino.GameTools.Deck.BlackjackCard; -import io.zipcoder.casino.GameTools.Deck.BlackjackRank; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class BlackjackCardTest { - BlackjackCard dummy; + Card dummy; @Before public void setup(){ - dummy = new BlackjackCard(BlackjackRank.ACE, Suit.CLUBS); + dummy = new Card(Rank.ACE, Suit.CLUBS); } @Test public void constructorTest(){ int expected = 11; - int actual = dummy.getBlackjackRankEnum().getRankValue(); + int actual = BlackjackValueUtil.rankParse(dummy.getRankEnum()); Assert.assertEquals(expected, actual); } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java index aad51af5..180227c7 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/BlackjackRankTest.java @@ -1,15 +1,17 @@ -package io.zipcoder.casino.GameToolsTests.Deck; - -import io.zipcoder.casino.GameTools.Deck.BlackjackRank; -import io.zipcoder.casino.Games.Blackjack; -import org.junit.Assert; -import org.junit.Test; - -public class BlackjackRankTest { - @Test - public void getRankValueTest(){ - int expected = 8; - int actual = BlackjackRank.EIGHT.getRankValue(); - Assert.assertEquals(expected, actual); - } -} +//package io.zipcoder.casino.GameToolsTests.Deck; +// +//import io.zipcoder.casino.GameTools.Deck.Rank; +//import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; +//import io.zipcoder.casino.Games.Blackjack; +//import org.junit.Assert; +//import org.junit.Test; +// +// +//public class BlackjackRankTest { +// @Test +// public void getRankValueTest(){ +// int expected = 8; +// int actual = BlackjackValueUtil.rankParse(Rank.EIGHT); +// Assert.assertEquals(expected, actual); +// } +//} diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 8e41bfc7..d1b8ba5e 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -64,19 +64,19 @@ public void initialHandWithMultiplePlayersTest(){ @Test public void bustCheckPositiveTest(){ - ArrayList temp = new ArrayList(); - temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); - temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); - temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + ArrayList temp = new ArrayList<>(); + temp.add(new Card(Rank.KING, Suit.CLUBS)); + temp.add(new Card(Rank.KING, Suit.CLUBS)); + temp.add(new Card(Rank.KING, Suit.CLUBS)); sueBKJK.setHand(temp); Assert.assertTrue(game.bustCheck(sueBKJK)); } @Test public void bustCheckNegativeTest(){ - ArrayList temp = new ArrayList(); - temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); - temp.add(new BlackjackCard(BlackjackRank.KING, Suit.CLUBS)); + ArrayList temp = new ArrayList<>(); + temp.add(new Card(Rank.KING, Suit.CLUBS)); + temp.add(new Card(Rank.KING, Suit.CLUBS)); sueBKJK.setHand(temp); Assert.assertFalse(game.bustCheck(sueBKJK)); } diff --git a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java index 97a58290..2cfbb836 100644 --- a/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java +++ b/src/test/java/io/zipcoder/casino/Games/Dealer/DealerTest.java @@ -1,7 +1,7 @@ package io.zipcoder.casino.Games.Dealer; -import io.zipcoder.casino.GameTools.Deck.BlackjackCard; -import io.zipcoder.casino.GameTools.Deck.BlackjackRank; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; @@ -22,20 +22,20 @@ public void setup(){ @Test public void getHandTest(){ - BlackjackCard ace = new BlackjackCard(BlackjackRank.ACE, Suit.CLUBS); - ArrayList expected = new ArrayList(); + Card ace = new Card(Rank.ACE, Suit.CLUBS); + ArrayList expected = new ArrayList<>(); expected.add(ace); dealer.setHand(expected); - ArrayList actual = dealer.getHand(); + ArrayList actual = dealer.getHand(); Assert.assertEquals(expected, actual); } @Test public void getHandValueTest() { Integer expected = 5; - BlackjackCard two = new BlackjackCard(BlackjackRank.TWO, Suit.HEARTS); - BlackjackCard three = new BlackjackCard(BlackjackRank.THREE, Suit.CLUBS); - ArrayList tempHand = new ArrayList(); + Card two = new Card(Rank.TWO, Suit.HEARTS); + Card three = new Card(Rank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList<>(); tempHand.add(three); tempHand.add(two); dealer.setHand(tempHand); @@ -45,9 +45,9 @@ public void getHandValueTest() { @Test public void canHitPositiveTest(){ - BlackjackCard two = new BlackjackCard(BlackjackRank.TWO, Suit.HEARTS); - BlackjackCard three = new BlackjackCard(BlackjackRank.THREE, Suit.CLUBS); - ArrayList tempHand = new ArrayList(); + Card two = new Card(Rank.TWO, Suit.HEARTS); + Card three = new Card(Rank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList<>(); tempHand.add(three); tempHand.add(two); dealer.setHand(tempHand); @@ -57,9 +57,9 @@ public void canHitPositiveTest(){ @Test public void canHitNegativeTest(){ - BlackjackCard first = new BlackjackCard(BlackjackRank.KING, Suit.HEARTS); - BlackjackCard second = new BlackjackCard(BlackjackRank.KING, Suit.CLUBS); - ArrayList tempHand = new ArrayList(); + Card first = new Card(Rank.KING, Suit.HEARTS); + Card second = new Card(Rank.KING, Suit.CLUBS); + ArrayList tempHand = new ArrayList<>(); tempHand.add(first); tempHand.add(second); dealer.setHand(tempHand); diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java index b1a1c187..e37bd92a 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -36,11 +36,11 @@ public void getCanHitTest(){ @Test public void getHandTest(){ - BlackjackCard ace = new BlackjackCard(BlackjackRank.ACE, Suit.CLUBS); - ArrayList expected = new ArrayList(); + Card ace = new Card(Rank.ACE, Suit.CLUBS); + ArrayList expected = new ArrayList<>(); expected.add(ace); suebkjk.setHand(expected); - ArrayList actual = suebkjk.getHand(); + ArrayList actual = suebkjk.getHand(); Assert.assertEquals(expected, actual); } @@ -54,9 +54,9 @@ public void getRootPlayerTest(){ @Test public void getHandValueTest() { Integer expected = 5; - BlackjackCard two = new BlackjackCard(BlackjackRank.TWO, Suit.HEARTS); - BlackjackCard three = new BlackjackCard(BlackjackRank.THREE, Suit.CLUBS); - ArrayList tempHand = new ArrayList(); + Card two = new Card(Rank.TWO, Suit.HEARTS); + Card three = new Card(Rank.THREE, Suit.CLUBS); + ArrayList tempHand = new ArrayList<>(); tempHand.add(three); tempHand.add(two); suebkjk.setHand(tempHand); From 2554bccb330876e3d5816d31f8bdd41dec21bf9e Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 19:25:39 -0500 Subject: [PATCH 063/105] debug on test cases --- .../io/zipcoder/casino/Games/Blackjack.java | 20 ++++++++++++------- .../casino/Players/BlackjackPlayer.java | 2 +- .../zipcoder/casino/Games/BlackjackTest.java | 13 ++++-------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index cde57c3f..ef7e4b5c 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -16,7 +16,12 @@ public class Blackjack implements Game{ protected Dealer bkjkDealer; public void startGame(){ - +// deck = new Deck(); +// //deck.shuffleDeck(); +// initialHand(); +// for (BlackjackPlayer currentPlayer : playerList){ +// runTurn(currentPlayer); +// } } @@ -27,17 +32,16 @@ public void endGame(){ public Blackjack(Player... players){ deck = new Deck(); bkjkDealer = new Dealer(); - playerList = new ArrayList(); + playerList = new ArrayList<>(); for (Player rootPlayer:players) { playerList.add(new BlackjackPlayer(rootPlayer)); } } - public void runTurn(){ - //run turn method should initially draw from preset deck, hit once, and bust - //this will see if we can get a game to move through functions procedurally - //then we can see if we can put this function in a constructor - //to kick the game off as soon as the game object is instantiated + public void runTurn(BlackjackPlayer currentPlayer){ + for (Card card:currentPlayer.getHand()) { + System.out.println(card.toString()); + } } public void deal(BlackjackPlayer currentPlayer){ @@ -50,6 +54,7 @@ public void dealToDealer(){ Card temp = this.deck.deck.get(0); this.bkjkDealer.addToHand(temp); this.deck.deck.remove(0); + System.out.println(this.deck.deck.size()); } public void initialHand(BlackjackPlayer... blackjackPlayers){ @@ -58,6 +63,7 @@ public void initialHand(BlackjackPlayer... blackjackPlayers){ this.deal(thisPlayer); } this.dealToDealer(); + this.dealToDealer(); } public boolean bustCheck(BlackjackPlayer currentPlayer){ diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index d625ab4b..974dce79 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -17,7 +17,7 @@ public BlackjackPlayer(Player rootPlayer){ this.canHit = true; this.rootPlayer = rootPlayer; - this.hand = new ArrayList(); + this.hand = new ArrayList<>(); } public Player getRootPlayer() { diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index d1b8ba5e..144fc2d3 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -83,23 +83,18 @@ public void bustCheckNegativeTest(){ @Test public void dealerHitCheck(){ - game.initialHand(sueBKJK); + game.bkjkDealer.addToHand(new Card(Rank.THREE, Suit.CLUBS)); + game.bkjkDealer.addToHand(new Card(Rank.KING, Suit.CLUBS)); boolean expected = game.dealerHitCheck(); Assert.assertTrue(expected); } @Test - public void runTurnTest(){ - //run turn method should initially draw from preset deck, hit once, and bust - //this will see if we can get a game to move through functions procedurally - //then we can see if we can put this function in a constructor - //to kick the game off as soon as the game object is instantiated + public void startTest() { + game.startGame(); } - @Test - public void startTest() { - } @Test public void getValueTest() { From 8de497882f0a975eddac43f3357b1235d8c4b362 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 20:09:54 -0500 Subject: [PATCH 064/105] refactor and tests on blackjack class --- .../io/zipcoder/casino/Games/Blackjack.java | 16 ++++++++-------- .../io/zipcoder/casino/Games/BlackjackTest.java | 17 +++++++++-------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index ef7e4b5c..f481d464 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -16,12 +16,12 @@ public class Blackjack implements Game{ protected Dealer bkjkDealer; public void startGame(){ -// deck = new Deck(); -// //deck.shuffleDeck(); -// initialHand(); -// for (BlackjackPlayer currentPlayer : playerList){ -// runTurn(currentPlayer); -// } + deck = new Deck(); + deck.shuffleDeck(); + initialHand(); + for (BlackjackPlayer currentPlayer : playerList){ + runTurn(currentPlayer); + } } @@ -57,8 +57,8 @@ public void dealToDealer(){ System.out.println(this.deck.deck.size()); } - public void initialHand(BlackjackPlayer... blackjackPlayers){ - for (BlackjackPlayer thisPlayer:blackjackPlayers) { + public void initialHand(){ + for (BlackjackPlayer thisPlayer:this.playerList) { this.deal(thisPlayer); this.deal(thisPlayer); } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 144fc2d3..3595d172 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -39,15 +39,15 @@ public void dealTest(){ @Test public void initialHandTest(){ Card expected = game.deck.deck.get(1); - game.initialHand(sueBKJK); - Card actual = sueBKJK.getHand().get(1); + game.initialHand(); + Card actual = game.playerList.get(0).getHand().get(1); Assert.assertEquals(expected, actual); } @Test public void initialHandDealerTest(){ Card expected = game.deck.deck.get(2); - game.initialHand(sueBKJK); + game.initialHand(); Card actual = game.bkjkDealer.getHand().get(0); Assert.assertEquals(expected, actual); } @@ -55,10 +55,10 @@ public void initialHandDealerTest(){ @Test public void initialHandWithMultiplePlayersTest(){ Player jim = new Player("jim", 38, 300); - BlackjackPlayer jimBKJK = new BlackjackPlayer(jim); - Card expected = game.deck.deck.get(3); - game.initialHand(sueBKJK, jimBKJK); - Card actual = jimBKJK.getHand().get(1); + Blackjack testbed = new Blackjack(sue, jim); + Card expected = testbed.deck.deck.get(3); + testbed.initialHand(); + Card actual = testbed.playerList.get(1).getHand().get(1); Assert.assertEquals(expected, actual); } @@ -91,7 +91,8 @@ public void dealerHitCheck(){ @Test public void startTest() { - game.startGame(); + Blackjack testbed = new Blackjack(sue); + testbed.startGame(); } From 3241521caeae0eb601d398d9e0515f96d5b7694e Mon Sep 17 00:00:00 2001 From: CWinarski Date: Fri, 23 Feb 2018 20:10:54 -0500 Subject: [PATCH 065/105] Worked on Craps --- src/main/java/io/zipcoder/casino/Casino.java | 2 +- .../io/zipcoder/casino/Games/Blackjack.java | 13 +++++++++- .../java/io/zipcoder/casino/Games/Craps.java | 25 +++++++++++++------ .../java/io/zipcoder/casino/Games/Dice.java | 1 - .../java/io/zipcoder/casino/Games/GoFish.java | 12 ++++++++- .../java/io/zipcoder/casino/Games/War.java | 13 +++++++++- .../casino/InputOutput/InputOutput.java | 1 - .../zipcoder/casino/Players/CrapsPlayer.java | 8 +++--- .../io/zipcoder/casino/Games/CrapsTest.java | 14 ----------- 9 files changed, 57 insertions(+), 32 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 9c9edb74..7a24fcd9 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -62,7 +62,7 @@ protected void initiateGame() { } protected Game selectGame(String selectedGame) { - Game game; + Game game = null; switch (selectedGame) { case "War": diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 27646e01..35deec14 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -2,13 +2,24 @@ import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; -public class Blackjack { +public class Blackjack implements Game{ public void start(){ Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } + + @Override + public void startGame() { + + } + + @Override + public void endGame() { + + } } diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 855ad73e..db6934ef 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -3,24 +3,33 @@ import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.CrapsPlayer; +import io.zipcoder.casino.Players.Player; public class Craps extends Dice implements Game{ -//CrapsPlayer crapsPlayer = new CrapsPlayer(); +CrapsPlayer crapsPlayer = new CrapsPlayer(); // go back an add main player InputOutput inputOutput = new InputOutput(); - +private Integer playerBetAmount = 0; public String userPlacesBet(){ + System.out.println("Hello! " + crapsPlayer.getName()); String askUserBet = "Do you bet Pass Line or Don't Pass Line?"; - String betUserPlaces = inputOutput.scanForString(); + String betUserPlaces = inputOutput.promptForString(askUserBet); return betUserPlaces; } -public Integer addDieValuesTogether(){ - return rollDice() + rollDice(); +public Integer userBetAmount(){ + String askForBetAmount = ("How much money do you bet?"); + Integer playerBetAmount = inputOutput.promptForInt(askForBetAmount); + return playerBetAmount; +} + +public Integer addDiceValuesTogether(){ + Integer dieValue = rollDice() + rollDice(); + return dieValue; } -public String passLineBetWin(){ +public String passLineWin(){ // if certain numbers they loose return null; } @@ -40,9 +49,9 @@ public void startGame(){ } public void endGame(){ - System.out.println("Wasn't that fun?"); + // System.out.println("Wasn't that fun?"); } -public void playDifferentGame(){ +public void returnToMainMenu(){ //end game and go to different menu } } diff --git a/src/main/java/io/zipcoder/casino/Games/Dice.java b/src/main/java/io/zipcoder/casino/Games/Dice.java index 4dbf5cc5..8881263b 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dice.java +++ b/src/main/java/io/zipcoder/casino/Games/Dice.java @@ -4,7 +4,6 @@ public class Dice { - // static final Integer SEED = 3900; public Integer rollDice(){ Random dice1 = new Random(); Integer diceRoll = (dice1.nextInt(6)+1); diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index fe81ef30..58da26fa 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -3,12 +3,13 @@ import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import java.util.*; -public class GoFish { +public class GoFish implements Game { Queue stockPile; private List cardHand; ArrayList players; @@ -140,4 +141,13 @@ public boolean isGameOver() { } + @Override + public void startGame() { + + } + + @Override + public void endGame() { + + } } diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index bef46da9..93ec172f 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -2,10 +2,11 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.Player; import io.zipcoder.casino.Players.WarPlayer; -public class War { +public class War implements Game{ private Integer playerPoints; private Integer computerPoints; @@ -56,4 +57,14 @@ public static void main(String[] args) { War war = new War(); war.deal(); } + + @Override + public void startGame() { + + } + + @Override + public void endGame() { + + } } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index c282b84a..a2d30ea7 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -14,7 +14,6 @@ public class InputOutput { public String scanForString() { String stringReturn = input.nextLine(); - return stringReturn; } diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java index 3a3d149b..52d33be6 100644 --- a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -1,10 +1,10 @@ package io.zipcoder.casino.Players; public class CrapsPlayer extends Player{ - protected Player mainPlayer; - public CrapsPlayer(Player mainPlayer){ - this.name = mainPlayer.getName(); - this.age = mainPlayer.getAge(); + public CrapsPlayer(){ + this.name = getName(); + this.age = getAge(); + this.getBalance(); } } diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index a191b3aa..d54305df 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -5,20 +5,6 @@ public class CrapsTest { - @Test - public void userPlacesBetTest() { - Craps crapsTest = new Craps(); - String expected = "Pass Line"; - String actual = crapsTest.userPlacesBet(); - - Assert.assertEquals(expected, actual); - } - - @Test - public void addDieValuesTogetherTest() { - - } - @Test public void ifPassLineTest() { From 1020ba5ac433f6b0c6ba518f37bb86f76886fa1e Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 21:05:56 -0500 Subject: [PATCH 066/105] add win checks and dealer logic --- .../io/zipcoder/casino/Games/Blackjack.java | 15 ++++++-- .../zipcoder/casino/Games/BlackjackTest.java | 38 ++++++++++++++++++- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index f481d464..328ecab1 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -22,7 +22,6 @@ public void startGame(){ for (BlackjackPlayer currentPlayer : playerList){ runTurn(currentPlayer); } - } public void endGame(){ @@ -54,7 +53,6 @@ public void dealToDealer(){ Card temp = this.deck.deck.get(0); this.bkjkDealer.addToHand(temp); this.deck.deck.remove(0); - System.out.println(this.deck.deck.size()); } public void initialHand(){ @@ -78,7 +76,18 @@ public boolean dealerHitCheck(){ } public void dealerTurn(){ - + while (dealerHitCheck()){ + dealToDealer(); + } + System.out.println(this.bkjkDealer.getHandValue()); + } + + public boolean winCheck(BlackjackPlayer player){ + if (player.getHandValue() == 21 || + (player.getHandValue() < 21 && bkjkDealer.getHandValue() < player.getHandValue())){ + return true; + } + return false; } } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 3595d172..3ae4f0a5 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -95,11 +95,47 @@ public void startTest() { testbed.startGame(); } + @Test + public void dealerTurnTest(){ + ArrayList tempHand = new ArrayList<>(); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + game.bkjkDealer.setHand(tempHand); + game.dealerTurn(); + int actual = game.bkjkDealer.getHandValue(); + Assert.assertEquals(21, actual); + } + @Test + public void winCheck21Test(){ + ArrayList tempHand = new ArrayList<>(); + tempHand.add(new Card(Rank.ACE, Suit.CLUBS)); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + sueBKJK.setHand(tempHand); + Assert.assertTrue(game.winCheck(sueBKJK)); + } @Test - public void getValueTest() { + public void winCheckBustTest(){ + ArrayList tempHand = new ArrayList<>(); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + sueBKJK.setHand(tempHand); + Assert.assertFalse(game.winCheck(sueBKJK)); + } + @Test + public void winCheckDealerWinTest(){ + ArrayList tempHand = new ArrayList<>(); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + sueBKJK.setHand(tempHand); + ArrayList tempdealerhand = new ArrayList<>(); + tempdealerhand.add(new Card(Rank.TEN, Suit.CLUBS)); + tempdealerhand.add(new Card(Rank.NINE, Suit.CLUBS)); + tempdealerhand.add(new Card(Rank.TWO, Suit.CLUBS)); + game.bkjkDealer.setHand(tempdealerhand); + Assert.assertFalse(game.winCheck(sueBKJK)); } @Test From 668b8d9671d78ebfbe229d68940ec0b1d67a9ca6 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Fri, 23 Feb 2018 21:43:41 -0500 Subject: [PATCH 067/105] prep for inputoutput troubleshoot branch --- .../java/io/zipcoder/casino/Games/Blackjack.java | 15 +++++++++++++++ .../io/zipcoder/casino/Games/BlackjackTest.java | 10 ++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 328ecab1..0d616c19 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,8 +1,10 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; @@ -14,6 +16,7 @@ public class Blackjack implements Game{ protected ArrayList playerList; protected Deck deck; protected Dealer bkjkDealer; + protected InputOutput inputOutput = new InputOutput(); public void startGame(){ deck = new Deck(); @@ -90,4 +93,16 @@ public boolean winCheck(BlackjackPlayer player){ return false; } + public boolean playerHitOption(BlackjackPlayer player){ + StringBuilder currentHand = new StringBuilder("| "); + for (Card card : player.getHand()){ + currentHand.append(card.toString() + " | "); + } + System.out.println("You're holding: " + currentHand + "\nWill you hit?\n1 for YES, 2 for NO"); + int userChoice = inputOutput.scanForInt(); + if (userChoice == 1) return true; + else if (userChoice == 2) return false; + return false; + } + } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 3ae4f0a5..ae231582 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.Games; import io.zipcoder.casino.GameTools.Deck.*; +import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; import org.junit.Assert; @@ -138,6 +139,15 @@ public void winCheckDealerWinTest(){ Assert.assertFalse(game.winCheck(sueBKJK)); } + @Test + public void playerHitOptionTest(){ + ArrayList tempHand = new ArrayList<>(); + tempHand.add(new Card(Rank.THREE, Suit.HEARTS)); + tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); + sueBKJK.setHand(tempHand); + Assert.assertTrue(game.playerHitOption(sueBKJK)); + } + @Test public void setAceTest() { From aa2a6360bd022a1bbd22f81ee1654011cad179a7 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Fri, 23 Feb 2018 23:55:10 -0500 Subject: [PATCH 068/105] Add more functionality to Craps --- .../java/io/zipcoder/casino/Games/Craps.java | 23 ++++++++++++------ .../zipcoder/casino/Players/CrapsPlayer.java | 4 +++- .../io/zipcoder/casino/Games/CrapsTest.java | 24 ++++++++++++++----- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index db6934ef..7d5e67f9 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -6,15 +6,18 @@ import io.zipcoder.casino.Players.Player; + public class Craps extends Dice implements Game{ CrapsPlayer crapsPlayer = new CrapsPlayer(); // go back an add main player InputOutput inputOutput = new InputOutput(); private Integer playerBetAmount = 0; +private Integer betUserPlaces; +private Integer dieValue; -public String userPlacesBet(){ +public Integer userPlacesBet(){ System.out.println("Hello! " + crapsPlayer.getName()); - String askUserBet = "Do you bet Pass Line or Don't Pass Line?"; - String betUserPlaces = inputOutput.promptForString(askUserBet); + String askUserBet = "Please press\n 1 for Pass Line\n 2 for Don't Pass Line"; + Integer betUserPlaces = inputOutput.promptForInt(askUserBet); return betUserPlaces; } @@ -29,12 +32,18 @@ public Integer addDiceValuesTogether(){ return dieValue; } -public String passLineWin(){ - // if certain numbers they loose +public String passLineWin(Integer betUserPlaces, Integer dieValue){ + if (betUserPlaces == 1 && dieValue == 7 || dieValue == 11) { + // add funds to wallet + System.out.println("You Win! Your winnings of " + playerBetAmount + " dollars were added to you wallet!"); + String askPlayerToPlayAgain = "Do you want to play again?"; + String playerDecision = inputOutput.promptForString(askPlayerToPlayAgain); + return playerDecision; +} return null; } -public String passLineBetLose(){ +public String passLineLose(Integer betUserPlaces, Integer dieValue){ // if certain numbers they lose return null; } @@ -49,7 +58,7 @@ public void startGame(){ } public void endGame(){ - // System.out.println("Wasn't that fun?"); + // System.out.println(I hope you had fun! Thank You!"); } public void returnToMainMenu(){ //end game and go to different menu diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java index 52d33be6..6451d88e 100644 --- a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -2,9 +2,11 @@ public class CrapsPlayer extends Player{ + public CrapsPlayer(){ this.name = getName(); this.age = getAge(); - this.getBalance(); + + } } diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index d54305df..73ea613f 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -1,18 +1,33 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.Players.CrapsPlayer; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; public class CrapsTest { - @Test - public void ifPassLineTest() { + @Before + public void initialize(){ + CrapsPlayer crapsPlayerTest = new CrapsPlayer(); } @Test - public void playAgainTest() { + public void passLineWinTest() { + Craps crapsTest = new Craps(); + String expected = "You win!"; + String actual = crapsTest.passLineWin(1,7); + Assert.assertEquals(expected, actual); + } + @Test + public void passLineLoseTest(){ + Craps crapsTest = new Craps(); + String expected = "You win!"; + String actual = crapsTest.passLineLose(2,3); + Assert.assertEquals(expected, actual); + } } @Test @@ -20,9 +35,6 @@ public void ifDontPassLineTest() { } - @Test - public void playDifferentGame() { - } } From 55cc56ad077e0f1c670cc602951d0225917e73fe Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Sat, 24 Feb 2018 00:53:44 -0500 Subject: [PATCH 069/105] gofish nearly done --- src/main/java/io/zipcoder/casino/Casino.java | 10 +- .../io/zipcoder/casino/Games/Blackjack.java | 11 +- .../java/io/zipcoder/casino/Games/GoFish.java | 108 ++++++++++++----- .../java/io/zipcoder/casino/Games/War.java | 11 +- .../io/zipcoder/casino/Players/GoFishAI.java | 4 + .../zipcoder/casino/Players/GoFishPlayer.java | 112 ++++++++++++------ .../io/zipcoder/casino/Games/GoFishTest.java | 20 ++-- .../casino/PlayerTest/GoFishPlayerTest.java | 27 +++-- 8 files changed, 207 insertions(+), 96 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index f2093156..89ebe56a 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -7,6 +7,7 @@ import io.zipcoder.casino.Games.War; import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; +import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import java.util.ArrayList; @@ -18,9 +19,8 @@ public class Casino { private boolean isPlaying = true; protected String askUserName(){ - //String name = inputOutput.promptForString("Hello Player! What is your name?"); - //return name; - return null; + String name = inputOutput.promptForString("Hello Player! What is your name?"); + return name; } protected Integer askUserAge(){ @@ -61,14 +61,14 @@ protected void initiateGame() { } protected Game selectGame(String selectedGame) { - Game game; + Game game = null; switch (selectedGame) { case "War": game = new War(); break; case "Go Fish": - game = new GoFish(); + game = new GoFish(new GoFishPlayer(player)); break; case "BlackJack": game = new Blackjack(); diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 27646e01..90f6e83e 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -2,13 +2,22 @@ import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; -public class Blackjack { +public class Blackjack implements Game { public void start(){ Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); BlackjackPlayer sueBKJK = new BlackjackPlayer(sue); } + + public void startGame() { + + } + + public void endGame() { + + } } diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 37ef39d6..9fd0f6f6 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -1,72 +1,120 @@ package io.zipcoder.casino.Games; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.GoFishAI; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.InputOutput.InputOutput; -import java.util.*; +import io.zipcoder.casino.Players.Player; +import java.util.*; -public class GoFish { +public class GoFish implements Game { + private int turnCounter; private ArrayList players; private InputOutput inputOutput; - List stockPile; private int numPairsMatched; private GoFishAI goFishAI; + private Deck deck; + public GoFish(GoFishPlayer player1) { inputOutput = new InputOutput(); players = new ArrayList(); players.add(player1); + players.add(new GoFishPlayer("Bob")); //players.add(goFishAI); numPairsMatched = 0; - - Deck deck = new Deck(); + turnCounter = 0; + deck = new Deck(); deck.shuffleDeck(); + } - public String play() { - while (gameIsNotOver()) { +// public int welcomeMessage() { +// int numOpponents = inputOutput.promptForInt("Welcome! Choose number of opponents:"); +// return numOpponents; +// } + public void startGame() { + //this.welcomeMessage(); + this.deal(); + while (gameIsNotOver()) { + takeTurn(); } - return null; + GoFishPlayer winner = this.determineWinner(); + System.out.println("Congratulations, " + winner.getName() + " , you win!"); + inputOutput.promptForString("That was fun! Want to play again?"); + endGame(); } - //decide who wins here + public void deal() { + for (int i = 0; i < players.size(); i++) { + for(int j= 0; j < 5; j++) { + players.get(i).cardHand.add(deck.deck.get(0)); + deck.deck.remove(0); + } -// public void buildPlayerHand(){ -// -// -// } -// -// -// public void deal() { -// -// } + } + } - public String displayCardHand () { - StringBuilder cardHandBuilder = new StringBuilder(); - for (int i = 0; i < players.size(); i++) { - //cardHandBuilder.append("Card " + (i + 1) + cardHand.get(i) + "\n"); - } - return cardHandBuilder.toString(); + private boolean gameIsNotOver () { + for (GoFishPlayer player : players) { + numPairsMatched = player.getNumPairs(); } + return numPairsMatched < 26; + } - private boolean gameIsNotOver () { - for (GoFishPlayer player : players) { - numPairsMatched = player.getNumPairs(); - } - return numPairsMatched < 26; + public GoFishPlayer getCurrentPlayer() { + // turncount mod numplayers = index of currentplayer + return players.get(turnCounter % players.size()); + } + + + public void takeTurn () { + GoFishPlayer currentPlayer = getCurrentPlayer(); + System.out.println("It's " + currentPlayer.getName() + "'s turn.\n"); + List opponents = new ArrayList<>(players); + opponents.remove(currentPlayer); + GoFishPlayer opponentToAsk = currentPlayer.pickOpponentToAsk(opponents); + + Card cardPicked = currentPlayer.pickCard(); + + if (opponentToAsk.hasCard(cardPicked)) { + opponentToAsk.removeCard(cardPicked); + currentPlayer.removeCard(cardPicked); + currentPlayer.addPair(); + System.out.println("\n" + opponentToAsk.getName() + " had that card. You get a point. Go again.\n"); + this.takeTurn(); + } else { + System.out.println(opponentToAsk.getName() + " did not have that card. Go fish.\n"); + currentPlayer.goFish(deck.deck.get(0)); + deck.deck.remove(0); + turnCounter++; } - public void takeTurn () { + } + public GoFishPlayer determineWinner() { + GoFishPlayer winner = new GoFishPlayer(); + int highestScore = 0; + for (GoFishPlayer player : players) { + int currentScore = player.getNumPairs(); + if (currentScore > highestScore) { + highestScore = currentScore; + winner = player; + } } + return winner; + } + + public void endGame() { } +} diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index bef46da9..49136503 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -2,10 +2,11 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.Player; import io.zipcoder.casino.Players.WarPlayer; -public class War { +public class War implements Game { private Integer playerPoints; private Integer computerPoints; @@ -56,4 +57,12 @@ public static void main(String[] args) { War war = new War(); war.deal(); } + + public void startGame() { + + } + + public void endGame() { + + } } diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishAI.java b/src/main/java/io/zipcoder/casino/Players/GoFishAI.java index 1abd0012..73962db0 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishAI.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishAI.java @@ -1,5 +1,7 @@ package io.zipcoder.casino.Players; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.InputOutput.InputOutput; + import java.util.ArrayList; import java.util.List; @@ -17,4 +19,6 @@ public GoFishAI() { public int getNumPairs() { return numPairs; } + } + diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index 2b0099a4..70c38a86 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -1,4 +1,5 @@ package io.zipcoder.casino.Players; + import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; @@ -6,64 +7,101 @@ import io.zipcoder.casino.InputOutput.InputOutput; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; public class GoFishPlayer extends Player { - public List cardHand; - private int numPairs; - private InputOutput inputOutput = new InputOutput(); - - public GoFishPlayer(Player rootPlayer) { - super(rootPlayer.getName(), rootPlayer.getAge()); - cardHand = new ArrayList(); - numPairs = 0; - } + public List cardHand; + private int numPairs; + private InputOutput inputOutput = new InputOutput(); + + public GoFishPlayer(Player rootPlayer) { + super(rootPlayer.getName(), rootPlayer.getAge()); + cardHand = new ArrayList(); + numPairs = 0; + } - public GoFishPlayer(){ + public GoFishPlayer(){ - } + } - public int getNumPairs() { - return numPairs; - } + public GoFishPlayer(String name) { + cardHand = new ArrayList(); + numPairs = 0; + this.name = name; + } - public List getCardHand() { - return cardHand; + public void addPair() { + numPairs++; } - public boolean hasCard(Card cardToCheck) { - return cardHand.contains(cardToCheck); - } + public int getNumPairs() { + return numPairs; + } - public void removeCardFromHand(Card cardToRemove) { - cardHand.remove(cardToRemove); - } + public void takeTurn() { + this.pickCard(); -// public Card askForCard() { -// inputOutput.promptForString(""); -// return Card -// } + } - public static void main(String[] args) { - Player player1 = new Player("Bob", 34); - GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + public void showCards() { + StringBuilder showCardHand = new StringBuilder("\n"); + for (int i = 0; i < cardHand.size(); i++) { + showCardHand.append((i + 1)) + .append(": ") + .append(this.cardHand.get(i)) + .append("\n"); + } + System.out.println(showCardHand.toString()); + } - //List cardHand = new ArrayList(); - Card temp1 = new Card(Rank.ACE, Suit.HEARTS); - Card temp2 = new Card(Rank.FOUR, Suit.DIAMOND); - Card temp3 = new Card(Rank.QUEEN, Suit.SPADE); - goFishPlayer1.cardHand.add(temp1); - goFishPlayer1.cardHand.add(temp2); - goFishPlayer1.cardHand.add(temp3); + public void showOpponents(List opponents) { + StringBuilder showOpponents = new StringBuilder(); + for (int i = 0; i < opponents.size(); i++) { + showOpponents.append((i + 1)) + .append(": ") + .append(opponents.get(i).getName()) + .append("\n"); + } + System.out.println(showOpponents.toString()); + } - System.out.println(goFishPlayer1.getCardHand()); + public GoFishPlayer pickOpponentToAsk(List opponents) { + this.showOpponents(opponents); + int opponentIndex = inputOutput.promptForInt("Enter the number for the player you want to ask:"); + return opponents.get(opponentIndex -1); + } + public Card pickCard() { + this.showCards(); + int cardIndex = inputOutput.promptForInt("Enter the number of your card choice:"); + return cardHand.get(cardIndex -1); + } + public void goFish(Card card) { + this.cardHand.add(card); + } + public Boolean hasCard(Card cardAskedFor) { + for(Card card : cardHand) { + if(card.getRankEnum().equals(cardAskedFor.getRankEnum())) { + return true; + } + } + return false; + } + public void removeCard(Card cardToRemove) { + Iterator carditr = cardHand.iterator(); + while(carditr.hasNext()) { + Card card = (Card) carditr.next(); + if(card.getRankEnum().equals(cardToRemove.getRankEnum())) { + carditr.remove(); + } + } } } diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java index cbd91f8f..22a8e63d 100644 --- a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -8,15 +8,24 @@ public class GoFishTest { @Test public void dealTest() { - - //GoFish game = new GoFish(); Player player1 = new Player(); Player goFishPlayer1 = new GoFishPlayer(player1); + } + @Test + public void displayCardHandTest() { } + + + + + + + + @Test public void buildStockPileTest() { @@ -41,11 +50,4 @@ public void takeTurnTest() { public void goFishTest() { } - - @Test - public void displayCardHandTest() { - - - } - } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index 34b93116..52d60c8c 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -42,23 +42,24 @@ public void constructorTestAge() { } @Test - public void getCardHandTest() { - Player player1 = new Player("Bob", 34); + public void getNumPairsTest() { + Player player1 = new Player("Phoebe", 24); GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); - //List cardHand = new ArrayList(); - Card temp1 = new Card(Rank.ACE, Suit.HEARTS); - Card temp2 = new Card(Rank.FOUR, Suit.DIAMOND); - Card temp3 = new Card(Rank.QUEEN, Suit.SPADE); - goFishPlayer1.cardHand.add(temp1); - goFishPlayer1.cardHand.add(temp2); - goFishPlayer1.cardHand.add(temp3); + int expected = 0; + int actual = goFishPlayer1.getNumPairs(); -// List expectedCards = -// List actualCards = goFishPlayer1.getCardHand(); -// -// Assert.assertEquals(expectedCards, actualCards); + Assert.assertEquals(expected, actual); } + @Test + public void hasCardTest(){ + Player player1 = new Player("Sue", 89); + GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + goFishPlayer1.cardHand.add(temp1); + Assert.assertTrue(goFishPlayer1.cardHand.contains(temp1)); + } } From 9901adf1545b2cd4625389d987bab83f11fd03f6 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Sat, 24 Feb 2018 13:51:39 -0500 Subject: [PATCH 070/105] Added more methods to Craps --- .../java/io/zipcoder/casino/Games/Craps.java | 39 ++++++++++++------- .../zipcoder/casino/Players/CrapsPlayer.java | 4 +- .../io/zipcoder/casino/Games/CrapsTest.java | 17 ++------ 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 7d5e67f9..dcecb406 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -3,7 +3,6 @@ import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.CrapsPlayer; -import io.zipcoder.casino.Players.Player; @@ -32,33 +31,47 @@ public Integer addDiceValuesTogether(){ return dieValue; } -public String passLineWin(Integer betUserPlaces, Integer dieValue){ +public void passLineWin(Integer betUserPlaces, Integer dieValue){ if (betUserPlaces == 1 && dieValue == 7 || dieValue == 11) { - // add funds to wallet - System.out.println("You Win! Your winnings of " + playerBetAmount + " dollars were added to you wallet!"); - String askPlayerToPlayAgain = "Do you want to play again?"; - String playerDecision = inputOutput.promptForString(askPlayerToPlayAgain); - return playerDecision; -} - return null; + // call addFundsToWallet + System.out.println("You Win!"); + // call willUserPlayAgain method + + } } public String passLineLose(Integer betUserPlaces, Integer dieValue){ - // if certain numbers they lose return null; } -public String passLineBetRollNonWinLoseNumber(){ +public String passLineBetRollNonWinLoseNumber(Integer betUserPlaces, Integer dieValue){ //Roll dice while the value is not a win or lose value(Do while loop) return null; } -public void startGame(){ +public void takeFundsFromWallet(){ +// call remove funds from wallet +} + +public void addFundsToWallet(){ +// add funds to wallet +// System.out.println("Your winnings of " + playerBetAmount + " dollars were added to you wallet!"); } +public Integer willUserPlayAgain(){ + String askPlayerToPlayAgain = "Do you want to play again?\n 1 for Yes!\n 2 for No!"; + Integer playerDecision = inputOutput.promptForInt(askPlayerToPlayAgain); + return playerDecision; +} + +public void startGame(){ +// take in user passlineWin if they say yes +} + public void endGame(){ - // System.out.println(I hope you had fun! Thank You!"); + // take in passLineWin answer if they say no + // in tests will be expected System.out.println(I hope you had fun! Thank You!"); } public void returnToMainMenu(){ //end game and go to different menu diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java index 6451d88e..37fab0cc 100644 --- a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -1,12 +1,14 @@ package io.zipcoder.casino.Players; +import io.zipcoder.casino.Wallet; + public class CrapsPlayer extends Player{ public CrapsPlayer(){ this.name = getName(); this.age = getAge(); - + this.wallet = new Wallet(getBalance()); } } diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index 73ea613f..41a1e155 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -13,27 +13,18 @@ public void initialize(){ CrapsPlayer crapsPlayerTest = new CrapsPlayer(); } - @Test - public void passLineWinTest() { - Craps crapsTest = new Craps(); - String expected = "You win!"; - String actual = crapsTest.passLineWin(1,7); - Assert.assertEquals(expected, actual); - } - @Test public void passLineLoseTest(){ - Craps crapsTest = new Craps(); - String expected = "You win!"; - String actual = crapsTest.passLineLose(2,3); - Assert.assertEquals(expected, actual); - } + } @Test public void ifDontPassLineTest() { } + public void willUserPlayAgainTest(){ + + } From 97a887d61da41cf11d8fb0c7973b64955a26fdd2 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 13:53:08 -0500 Subject: [PATCH 071/105] intermediary update --- .../io/zipcoder/casino/Games/Blackjack.java | 32 +++++++++++++++---- .../casino/InputOutput/InputOutput.java | 3 +- .../zipcoder/casino/Games/BlackjackTest.java | 3 +- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 0d616c19..581973cf 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -9,14 +9,19 @@ import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; +import java.io.BufferedReader; +import java.io.Console; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Scanner; public class Blackjack implements Game{ protected ArrayList playerList; protected Deck deck; protected Dealer bkjkDealer; - protected InputOutput inputOutput = new InputOutput(); + public InputOutput inputOutput = new InputOutput(); public void startGame(){ deck = new Deck(); @@ -44,6 +49,8 @@ public void runTurn(BlackjackPlayer currentPlayer){ for (Card card:currentPlayer.getHand()) { System.out.println(card.toString()); } + + dealerTurn(); } public void deal(BlackjackPlayer currentPlayer){ @@ -93,16 +100,27 @@ public boolean winCheck(BlackjackPlayer player){ return false; } - public boolean playerHitOption(BlackjackPlayer player){ + public boolean playerHitOption(){ StringBuilder currentHand = new StringBuilder("| "); + BlackjackPlayer player = this.playerList.get(0); for (Card card : player.getHand()){ currentHand.append(card.toString() + " | "); } - System.out.println("You're holding: " + currentHand + "\nWill you hit?\n1 for YES, 2 for NO"); - int userChoice = inputOutput.scanForInt(); - if (userChoice == 1) return true; - else if (userChoice == 2) return false; - return false; + Boolean x = runPlayerHit(currentHand, player); + if (x != null) return x; + return x; + } + + public Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) { + while (player.isCanHit()) { + System.out.println("You're holding: " + currentHand + "Will you hit? 1 for YES, 2 for NO"); + String userChoice; + userChoice = inputOutput.scanForString(); + if (userChoice.equals("1")) return true; + else return false; + } + return null; } + } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index c282b84a..d7a64ba9 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -54,6 +54,7 @@ public String promptForString(String message) { public int promptForInt(String message) { System.out.println(message); - return scanForInt(); + int temp = input.nextInt(); + return temp; } } \ No newline at end of file diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index ae231582..9d414f86 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -145,7 +145,8 @@ public void playerHitOptionTest(){ tempHand.add(new Card(Rank.THREE, Suit.HEARTS)); tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); sueBKJK.setHand(tempHand); - Assert.assertTrue(game.playerHitOption(sueBKJK)); + boolean actual = game.playerHitOption(); + Assert.assertTrue(game.playerHitOption()); } @Test From 71bc22dd31e32546d7d062a473b1075d46a94188 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 14:11:37 -0500 Subject: [PATCH 072/105] prep for new branch --- src/main/java/io/zipcoder/casino/Casino.java | 2 +- .../io/zipcoder/casino/Games/Blackjack.java | 28 +++++++------------ .../java/io/zipcoder/casino/Games/Craps.java | 2 +- .../zipcoder/casino/Games/BlackjackTest.java | 18 +++--------- 4 files changed, 16 insertions(+), 34 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7a24fcd9..d35f6b67 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -72,7 +72,7 @@ protected Game selectGame(String selectedGame) { game = new GoFish(); break; case "BlackJack": - game = new Blackjack(); + game = new Blackjack(player); break; case "Craps": diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 581973cf..92786bc1 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -18,7 +18,7 @@ public class Blackjack implements Game{ - protected ArrayList playerList; + protected BlackjackPlayer player; protected Deck deck; protected Dealer bkjkDealer; public InputOutput inputOutput = new InputOutput(); @@ -27,35 +27,30 @@ public void startGame(){ deck = new Deck(); deck.shuffleDeck(); initialHand(); - for (BlackjackPlayer currentPlayer : playerList){ - runTurn(currentPlayer); - } + runTurn(); } public void endGame(){ } - public Blackjack(Player... players){ + public Blackjack(Player entryPlayer){ deck = new Deck(); bkjkDealer = new Dealer(); - playerList = new ArrayList<>(); - for (Player rootPlayer:players) { - playerList.add(new BlackjackPlayer(rootPlayer)); - } + player = new BlackjackPlayer(entryPlayer); } - public void runTurn(BlackjackPlayer currentPlayer){ - for (Card card:currentPlayer.getHand()) { + public void runTurn(){ + for (Card card:player.getHand()) { System.out.println(card.toString()); } dealerTurn(); } - public void deal(BlackjackPlayer currentPlayer){ + public void deal(){ Card temp = this.deck.deck.get(0); - currentPlayer.addToHand(temp); + this.player.addToHand(temp); this.deck.deck.remove(0); } @@ -66,10 +61,8 @@ public void dealToDealer(){ } public void initialHand(){ - for (BlackjackPlayer thisPlayer:this.playerList) { - this.deal(thisPlayer); - this.deal(thisPlayer); - } + this.deal(); + this.deal(); this.dealToDealer(); this.dealToDealer(); } @@ -102,7 +95,6 @@ public boolean winCheck(BlackjackPlayer player){ public boolean playerHitOption(){ StringBuilder currentHand = new StringBuilder("| "); - BlackjackPlayer player = this.playerList.get(0); for (Card card : player.getHand()){ currentHand.append(card.toString() + " | "); } diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 855ad73e..e001de4a 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -36,7 +36,7 @@ public String passLineBetRollNonWinLoseNumber(){ } public void startGame(){ - + endGame(); } public void endGame(){ diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 9d414f86..f9a46a6a 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -24,7 +24,7 @@ public void setup(){ @Test public void constructorTest(){ - String actual = game.playerList.get(0).getName(); + String actual = game.player.getName(); String expected = sue.getName(); Assert.assertEquals(expected, actual); } @@ -32,8 +32,8 @@ public void constructorTest(){ @Test public void dealTest(){ Card expected = game.deck.deck.get(0); - game.deal(sueBKJK); - Card actual = sueBKJK.getHand().get(0); + game.deal(); + Card actual = game.player.getHand().get(0); Assert.assertEquals(expected, actual); } @@ -41,7 +41,7 @@ public void dealTest(){ public void initialHandTest(){ Card expected = game.deck.deck.get(1); game.initialHand(); - Card actual = game.playerList.get(0).getHand().get(1); + Card actual = game.player.getHand().get(1); Assert.assertEquals(expected, actual); } @@ -53,16 +53,6 @@ public void initialHandDealerTest(){ Assert.assertEquals(expected, actual); } - @Test - public void initialHandWithMultiplePlayersTest(){ - Player jim = new Player("jim", 38, 300); - Blackjack testbed = new Blackjack(sue, jim); - Card expected = testbed.deck.deck.get(3); - testbed.initialHand(); - Card actual = testbed.playerList.get(1).getHand().get(1); - Assert.assertEquals(expected, actual); - } - @Test public void bustCheckPositiveTest(){ ArrayList temp = new ArrayList<>(); From 29cdfd737a96798bef1e6c1b4cdd3ff5c2173720 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 14:51:25 -0500 Subject: [PATCH 073/105] intermediary --- .../io/zipcoder/casino/Games/Blackjack.java | 11 +++- .../casino/Players/BlackjackPlayer.java | 4 ++ .../zipcoder/casino/Games/BlackjackTest.java | 65 ------------------- .../PlayerTest/BlackjackPlayerTest.java | 13 ++++ 4 files changed, 25 insertions(+), 68 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 92786bc1..32cf540c 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -44,7 +44,9 @@ public void runTurn(){ for (Card card:player.getHand()) { System.out.println(card.toString()); } - + while (player.isCanHit() && player.getHandValue() < 22){ + if (playerHitOption()) deal(); + } dealerTurn(); } @@ -103,13 +105,16 @@ public boolean playerHitOption(){ return x; } - public Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) { + private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) { while (player.isCanHit()) { System.out.println("You're holding: " + currentHand + "Will you hit? 1 for YES, 2 for NO"); String userChoice; userChoice = inputOutput.scanForString(); if (userChoice.equals("1")) return true; - else return false; + else { + player.setCanHit(false); + return false; + } } return null; } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 974dce79..3ad7735f 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -40,6 +40,10 @@ public boolean isCanHit() { return canHit; } + public void setCanHit(boolean bool){ + this.canHit = bool; + } + public Integer getHandValue(){ Integer handValue = 0; for (Card card:hand) { diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index f9a46a6a..fc3f02f6 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -80,12 +80,6 @@ public void dealerHitCheck(){ Assert.assertTrue(expected); } - @Test - public void startTest() { - Blackjack testbed = new Blackjack(sue); - testbed.startGame(); - } - @Test public void dealerTurnTest(){ ArrayList tempHand = new ArrayList<>(); @@ -129,64 +123,5 @@ public void winCheckDealerWinTest(){ Assert.assertFalse(game.winCheck(sueBKJK)); } - @Test - public void playerHitOptionTest(){ - ArrayList tempHand = new ArrayList<>(); - tempHand.add(new Card(Rank.THREE, Suit.HEARTS)); - tempHand.add(new Card(Rank.TEN, Suit.CLUBS)); - sueBKJK.setHand(tempHand); - boolean actual = game.playerHitOption(); - Assert.assertTrue(game.playerHitOption()); - } - - @Test - public void setAceTest() { - - } - - @Test - public void startRoundTest() { - - } - - @Test - public void generateDeckTest() { - - } - - @Test - public void shuffleDeckTest() { - - } - - @Test - public void buildPlayerHandTest() { - - } - - @Test - public void startTurnTest() { - - } - - @Test - public void hitOrStandTest() { - - } - - @Test - public void dealerTakesTurnTest() { - - } - - @Test - public void compareValueTest() { - - } - - @Test - public void payoutTest() { - - } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java index e37bd92a..4f3c15de 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -64,4 +64,17 @@ public void getHandValueTest() { Assert.assertEquals(expected, actual); } + @Test + public void setCanHitNegativeTest(){ + suebkjk.setCanHit(false); + Assert.assertFalse(suebkjk.isCanHit()); + } + + @Test + public void setCanHitPositiveTest(){ + suebkjk.setCanHit(false); + suebkjk.setCanHit(true); + Assert.assertTrue(suebkjk.isCanHit()); + } + } From 32f4e9a8432b5422679151b7b18a43f3a0c35f24 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 16:05:34 -0500 Subject: [PATCH 074/105] functionality good, prep for game loop, gambling, new casino --- .../io/zipcoder/casino/Games/Blackjack.java | 44 +++++++++++++------ .../zipcoder/casino/Games/Dealer/Dealer.java | 2 + .../zipcoder/casino/Games/BlackjackTest.java | 4 ++ 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 32cf540c..4c0258e2 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -9,12 +9,7 @@ import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; -import java.io.BufferedReader; -import java.io.Console; -import java.io.IOException; -import java.io.InputStreamReader; import java.util.ArrayList; -import java.util.Scanner; public class Blackjack implements Game{ @@ -22,12 +17,24 @@ public class Blackjack implements Game{ protected Deck deck; protected Dealer bkjkDealer; public InputOutput inputOutput = new InputOutput(); + public boolean isPlaying = true; public void startGame(){ - deck = new Deck(); - deck.shuffleDeck(); - initialHand(); - runTurn(); + do { + pregameReset(); + deck = new Deck(); + deck.shuffleDeck(); + initialHand(); + runTurn(); + playAgainCheck(); + } + while (isPlaying); + } + + public void pregameReset() { + player.setHand(new ArrayList<>()); + bkjkDealer.setHand(new ArrayList<>()); + player.setCanHit(true); } public void endGame(){ @@ -44,9 +51,10 @@ public void runTurn(){ for (Card card:player.getHand()) { System.out.println(card.toString()); } - while (player.isCanHit() && player.getHandValue() < 22){ - if (playerHitOption()) deal(); + while (player.isCanHit() && playerHitOption() && player.getHandValue() < 22){ + deal(); } + System.out.println("Your final hand value is " + player.getHandValue()); dealerTurn(); } @@ -84,7 +92,7 @@ public void dealerTurn(){ while (dealerHitCheck()){ dealToDealer(); } - System.out.println(this.bkjkDealer.getHandValue()); + System.out.println("Dealer's final hand value is " + this.bkjkDealer.getHandValue()); } public boolean winCheck(BlackjackPlayer player){ @@ -95,7 +103,7 @@ public boolean winCheck(BlackjackPlayer player){ return false; } - public boolean playerHitOption(){ + public Boolean playerHitOption(){ StringBuilder currentHand = new StringBuilder("| "); for (Card card : player.getHand()){ currentHand.append(card.toString() + " | "); @@ -119,5 +127,15 @@ private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) return null; } + public void setPlaying(boolean playing) { + isPlaying = playing; + } + + public void playAgainCheck(){ + int feedback = inputOutput.promptForInt("Continue?\n1 for YES, 2 for NO"); + if (feedback == 2){ + setPlaying(false); + } + } } diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index 726bbb7c..aff679da 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -38,4 +38,6 @@ public boolean canHit(){ return false; } + + } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index fc3f02f6..50c72ece 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -123,5 +123,9 @@ public void winCheckDealerWinTest(){ Assert.assertFalse(game.winCheck(sueBKJK)); } + @Test + public void preGameResetTest(){ + game.pregameReset(); + } } From b5de7ec1aaca4ec9133abd2354259b503655a117 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 16:18:34 -0500 Subject: [PATCH 075/105] prep for debug branch --- src/main/java/io/zipcoder/casino/Casino.java | 5 ++--- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 8 +++++--- .../java/io/zipcoder/casino/InputOutput/InputOutput.java | 1 - src/test/java/io/zipcoder/casino/Games/BlackjackTest.java | 5 ----- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index d35f6b67..4c2ea3cd 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -18,9 +18,8 @@ public class Casino { private boolean isPlaying = true; protected String askUserName(){ - //String name = inputOutput.promptForString("Hello Player! What is your name?"); - //return name; - return null; + String name = inputOutput.promptForString("Hello Player! What is your name?"); + return name; } protected Integer askUserAge(){ diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 4c0258e2..fda9556b 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -51,8 +51,10 @@ public void runTurn(){ for (Card card:player.getHand()) { System.out.println(card.toString()); } - while (player.isCanHit() && playerHitOption() && player.getHandValue() < 22){ + boolean hitchoice = playerHitOption(); + while (player.isCanHit() && hitchoice && player.getHandValue() < 22){ deal(); + hitchoice = playerHitOption(); } System.out.println("Your final hand value is " + player.getHandValue()); dealerTurn(); @@ -115,7 +117,7 @@ public Boolean playerHitOption(){ private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) { while (player.isCanHit()) { - System.out.println("You're holding: " + currentHand + "Will you hit? 1 for YES, 2 for NO"); + System.out.println("You're holding: " + currentHand + "\nWill you hit?\n1 for YES, 2 for NO"); String userChoice; userChoice = inputOutput.scanForString(); if (userChoice.equals("1")) return true; @@ -132,7 +134,7 @@ public void setPlaying(boolean playing) { } public void playAgainCheck(){ - int feedback = inputOutput.promptForInt("Continue?\n1 for YES, 2 for NO"); + int feedback = inputOutput.promptForInt("How 'bout another hand?\n1 for YES, 2 for NO"); if (feedback == 2){ setPlaying(false); } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index d7a64ba9..8b524201 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -41,7 +41,6 @@ public String availableGames(Player player){ number = inputOutput.promptForInt("Please enter in a number between 1 - 2 to select a game"); } - StringBuilder displayGames = new StringBuilder(); return games.get(number); } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 50c72ece..53f8d927 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -123,9 +123,4 @@ public void winCheckDealerWinTest(){ Assert.assertFalse(game.winCheck(sueBKJK)); } - @Test - public void preGameResetTest(){ - game.pregameReset(); - } - } From 924c6b355dc8b392ac61bc8fe3e2d499d21e6763 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 16:27:02 -0500 Subject: [PATCH 076/105] FUCKING FIRST TRY YEAH --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index fda9556b..b57b58c0 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -16,7 +16,6 @@ public class Blackjack implements Game{ protected BlackjackPlayer player; protected Deck deck; protected Dealer bkjkDealer; - public InputOutput inputOutput = new InputOutput(); public boolean isPlaying = true; public void startGame(){ @@ -119,6 +118,7 @@ private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) while (player.isCanHit()) { System.out.println("You're holding: " + currentHand + "\nWill you hit?\n1 for YES, 2 for NO"); String userChoice; + InputOutput inputOutput = new InputOutput(); userChoice = inputOutput.scanForString(); if (userChoice.equals("1")) return true; else { @@ -134,6 +134,7 @@ public void setPlaying(boolean playing) { } public void playAgainCheck(){ + InputOutput inputOutput = new InputOutput(); int feedback = inputOutput.promptForInt("How 'bout another hand?\n1 for YES, 2 for NO"); if (feedback == 2){ setPlaying(false); From 60f1bf4ef4b96929edbea29b18a5fd9fbfe6fc4e Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 17:33:40 -0500 Subject: [PATCH 077/105] loops well, adding betting options --- .../io/zipcoder/casino/Games/Blackjack.java | 35 ++++++++++++++++++- .../casino/Players/BlackjackPlayer.java | 8 +++++ .../zipcoder/casino/Games/BlackjackTest.java | 9 +++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index b57b58c0..8492fb1a 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -17,6 +17,7 @@ public class Blackjack implements Game{ protected Deck deck; protected Dealer bkjkDealer; public boolean isPlaying = true; + protected int betAmount = 0; public void startGame(){ do { @@ -25,19 +26,22 @@ public void startGame(){ deck.shuffleDeck(); initialHand(); runTurn(); + settleAccount(); playAgainCheck(); } while (isPlaying); + endGame(); } public void pregameReset() { player.setHand(new ArrayList<>()); bkjkDealer.setHand(new ArrayList<>()); player.setCanHit(true); + setBetAmount(0); } public void endGame(){ - + System.out.println("Ok bye."); } public Blackjack(Player entryPlayer){ @@ -141,4 +145,33 @@ public void playAgainCheck(){ } } + public int getBetAmount() { + return betAmount; + } + + public void settleAccount(){ + if ((player.getHandValue() > bkjkDealer.getHandValue() && player.getHandValue() < 22)) { + payoutWin(); + } else if (player.getHandValue() > 21){ + payoutLoss(); + } else { + payoutLoss(); + } + } + + public void setBetAmount(int betAmount) { + this.betAmount = betAmount; + } + + public void payoutWin(){ + int bet = getBetAmount(); + player.payoutWin(bet); + System.out.println("You won " + bet + ". Nice work!"); + } + + public void payoutLoss(){ + int bet = getBetAmount(); + player.payoutLoss(bet); + System.out.println("Rough luck! You're down " + bet + " chips."); + } } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 3ad7735f..d47455b1 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -52,4 +52,12 @@ public Integer getHandValue(){ return handValue; } + public void payoutWin(int money){ + rootPlayer.wallet.add(money); + } + + public void payoutLoss(int money){ + rootPlayer.wallet.subtract(money); + } + } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 53f8d927..833255cb 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -123,4 +123,13 @@ public void winCheckDealerWinTest(){ Assert.assertFalse(game.winCheck(sueBKJK)); } + @Test + public void payoutTest1(){ + int expected = 1010; + game.setBetAmount(10); + game.payoutWin(); + int actual = game.player.getRootPlayer().getBalance(); + Assert.assertEquals(expected, actual); + } + } From 7992bb477b57164fe90a308255f2a8c9d9c64c0a Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 17:46:17 -0500 Subject: [PATCH 078/105] add working ante --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 5 ++++- .../java/io/zipcoder/casino/Games/BlackjackTest.java | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 8492fb1a..182af5c9 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -54,6 +54,8 @@ public void runTurn(){ for (Card card:player.getHand()) { System.out.println(card.toString()); } + System.out.println("Ante up! 10 chips in the pot"); + setBetAmount(10); boolean hitchoice = playerHitOption(); while (player.isCanHit() && hitchoice && player.getHandValue() < 22){ deal(); @@ -139,7 +141,8 @@ public void setPlaying(boolean playing) { public void playAgainCheck(){ InputOutput inputOutput = new InputOutput(); - int feedback = inputOutput.promptForInt("How 'bout another hand?\n1 for YES, 2 for NO"); + int feedback = inputOutput.promptForInt("How 'bout another hand?\nYou now sit at " + + player.getRootPlayer().getBalance() + " chips.\n1 for YES, 2 for NO"); if (feedback == 2){ setPlaying(false); } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index 833255cb..a2071ce0 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -132,4 +132,13 @@ public void payoutTest1(){ Assert.assertEquals(expected, actual); } + @Test + public void payoutTest2(){ + int expected = 990; + game.setBetAmount(10); + game.payoutLoss(); + int actual = game.player.getRootPlayer().getBalance(); + Assert.assertEquals(expected, actual); + } + } From 15832b485d77baad0f6ecd82af9ef81c3ff73268 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 18:13:12 -0500 Subject: [PATCH 079/105] intermediary --- .../io/zipcoder/casino/Games/Blackjack.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 182af5c9..2a2c0e22 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -1,6 +1,5 @@ package io.zipcoder.casino.Games; -import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Games.Dealer.Dealer; @@ -41,7 +40,7 @@ public void pregameReset() { } public void endGame(){ - System.out.println("Ok bye."); + System.out.println("See you 'round, pardner."); } public Blackjack(Player entryPlayer){ @@ -56,6 +55,7 @@ public void runTurn(){ } System.out.println("Ante up! 10 chips in the pot"); setBetAmount(10); + promptBet(); boolean hitchoice = playerHitOption(); while (player.isCanHit() && hitchoice && player.getHandValue() < 22){ deal(); @@ -157,6 +157,8 @@ public void settleAccount(){ payoutWin(); } else if (player.getHandValue() > 21){ payoutLoss(); + } else if (player.getHandValue() < 22 && bkjkDealer.getHandValue() > 21){ + payoutWin(); } else { payoutLoss(); } @@ -166,6 +168,27 @@ public void setBetAmount(int betAmount) { this.betAmount = betAmount; } + public void promptBet(){ + InputOutput inputOutput = new InputOutput(); + int betChoice = inputOutput.promptForInt("Care to bet?\n1 for YES, 2 for NO"); + if (betChoice == 1) betProcess(); + } + + public void betProcess(){ + System.out.println(player.getRootPlayer().getBalance() - betAmount + " chips available. How much will you bet?"); + InputOutput inputOutput = new InputOutput(); + int newBet = inputOutput.scanForInt(); + if (newBet > 0 && newBet <= player.getRootPlayer().getBalance() - betAmount){ + betAmount += newBet; + System.out.println("You added " + newBet + " to the pot."); + } else if (newBet > player.getRootPlayer().getBalance()){ + System.out.println("You haven't got that much to bet, pardner!"); + } else { + System.out.println("The maze isn't for you."); + secret(); + } + } + public void payoutWin(){ int bet = getBetAmount(); player.payoutWin(bet); @@ -177,4 +200,8 @@ public void payoutLoss(){ player.payoutLoss(bet); System.out.println("Rough luck! You're down " + bet + " chips."); } + + public void secret(){ + + } } From 0a11b708b68e5e415713025229d8b244b1c3436e Mon Sep 17 00:00:00 2001 From: Brian He Date: Sat, 24 Feb 2018 18:25:23 -0500 Subject: [PATCH 080/105] create a card and player factory --- src/main/java/io/zipcoder/casino/App.java | 2 +- src/main/java/io/zipcoder/casino/Casino.java | 24 ++-- .../casino/Factories/CardFactory.java | 8 +- .../casino/Factories/DeckFactory.java | 7 - .../casino/Factories/PlayerFactory.java | 13 +- .../zipcoder/casino/GameTools/Deck/Deck.java | 7 +- .../io/zipcoder/casino/Games/Blackjack.java | 8 +- .../java/io/zipcoder/casino/Games/Craps.java | 3 +- .../java/io/zipcoder/casino/Games/GoFish.java | 6 +- .../java/io/zipcoder/casino/Games/War.java | 131 +++++++++++++----- .../casino/InputOutput/InputOutput.java | 13 +- .../io/zipcoder/casino/Players/WarPlayer.java | 24 +++- .../casino/Factories/CardFactoryTest.java | 14 ++ .../casino/Factories/PlayerFactoryTest.java | 11 ++ .../casino/GameToolsTests/Deck/CardTest.java | 12 +- .../casino/GameToolsTests/Deck/DeckTest.java | 33 +++-- .../io/zipcoder/casino/Games/WarTest.java | 40 +++++- 17 files changed, 267 insertions(+), 89 deletions(-) delete mode 100644 src/main/java/io/zipcoder/casino/Factories/DeckFactory.java create mode 100644 src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java create mode 100644 src/test/java/io/zipcoder/casino/Factories/PlayerFactoryTest.java diff --git a/src/main/java/io/zipcoder/casino/App.java b/src/main/java/io/zipcoder/casino/App.java index ab777f59..f4ff0aa2 100644 --- a/src/main/java/io/zipcoder/casino/App.java +++ b/src/main/java/io/zipcoder/casino/App.java @@ -2,7 +2,7 @@ public class App { - public static void main(String[] args) { + public static void main(String[] args) throws CloneNotSupportedException{ Casino casino = new Casino(); casino.start(); diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 9c9edb74..71f97f17 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -10,7 +10,6 @@ import io.zipcoder.casino.Players.Player; import java.util.ArrayList; - public class Casino { InputOutput inputOutput = new InputOutput(); @@ -18,9 +17,8 @@ public class Casino { private boolean isPlaying = true; protected String askUserName(){ - //String name = inputOutput.promptForString("Hello Player! What is your name?"); - //return name; - return null; + String name = inputOutput.promptForString("Hello Player! What is your name?"); + return name; } protected Integer askUserAge(){ @@ -29,12 +27,9 @@ protected Integer askUserAge(){ } protected Integer askUserBalance(){ - Integer balance = inputOutput.promptForInt("How much do you want to gamble with?"); - return balance; } - protected void setUpUserProfile(){ String name = this.askUserName(); @@ -43,7 +38,7 @@ protected void setUpUserProfile(){ if(age > 21) { Integer balance = this.askUserBalance(); player = new Player(name, age, balance); - } else{ + } else { player = new Player(name, age); } } @@ -51,18 +46,18 @@ protected void setUpUserProfile(){ protected void initiateGame() { do { String selectedGame = inputOutput.availableGames(this.player); - if(selectedGame.equals("Exit")){ - continue; + if(selectedGame.equals("Exit")) { + exitCasino(); + break; } else { selectGame(selectedGame).startGame(); - } } while(isPlaying); } protected Game selectGame(String selectedGame) { - Game game; + Game game = null; switch (selectedGame) { case "War": @@ -80,6 +75,8 @@ protected Game selectGame(String selectedGame) { break; case "Exit": isPlaying = false; + game = null; + break; } return game; } @@ -88,5 +85,8 @@ protected void start() { this.setUpUserProfile(); this.initiateGame(); } + protected void exitCasino() { + System.out.println("Thank you for visiting!"); + } } diff --git a/src/main/java/io/zipcoder/casino/Factories/CardFactory.java b/src/main/java/io/zipcoder/casino/Factories/CardFactory.java index bab438be..c5c909a7 100644 --- a/src/main/java/io/zipcoder/casino/Factories/CardFactory.java +++ b/src/main/java/io/zipcoder/casino/Factories/CardFactory.java @@ -1,9 +1,13 @@ package io.zipcoder.casino.Factories; -public class CardFactory { +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; - public void createCard() { +public class CardFactory { + public static Card createCard(Rank rank, Suit suit) { + return new Card(rank, suit); } } diff --git a/src/main/java/io/zipcoder/casino/Factories/DeckFactory.java b/src/main/java/io/zipcoder/casino/Factories/DeckFactory.java deleted file mode 100644 index 85a36bea..00000000 --- a/src/main/java/io/zipcoder/casino/Factories/DeckFactory.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.zipcoder.casino.Factories; - -import io.zipcoder.casino.GameTools.Deck.Deck; - -public class DeckFactory extends Deck { - -} diff --git a/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java b/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java index d991935c..c34049eb 100644 --- a/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java +++ b/src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java @@ -1,4 +1,15 @@ package io.zipcoder.casino.Factories; -public class PlayerFactory { +import io.zipcoder.casino.Players.Player; + +public class PlayerFactory extends Player { + + public static Player createPlayer(String name, Integer age) { + return new Player(name, age); + } + + public static Player createPlayer(String name, Integer age, Integer balance) { + return new Player(name, age, balance); + } + } diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java index b5bed80a..ee712060 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java @@ -1,20 +1,23 @@ package io.zipcoder.casino.GameTools.Deck; +import io.zipcoder.casino.Factories.CardFactory; + import java.util.ArrayList; import java.util.Collections; -public class Deck { +public class Deck implements Cloneable { public ArrayList deck = new ArrayList(); public Deck() { for (Rank currentRank: Rank.values()) { for (Suit currentSuit : Suit.values()){ - Card temp = new Card(currentRank, currentSuit); + Card temp = CardFactory.createCard(currentRank, currentSuit); deck.add(temp); } } } + public void shuffleDeck() { Collections.shuffle(this.deck); } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 27646e01..6b0a3745 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -2,10 +2,16 @@ import io.zipcoder.casino.Games.Dealer.Dealer; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; -public class Blackjack { +public class Blackjack implements Game { + + public void startGame() {} + + public void endGame() {} + public void start(){ Player sue = new Player("sue", 30, 1000); Dealer bkjkDealer = new Dealer(); diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 855ad73e..725aa3d2 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -5,7 +5,8 @@ import io.zipcoder.casino.Players.CrapsPlayer; -public class Craps extends Dice implements Game{ +public class Craps extends Dice implements Game { + //CrapsPlayer crapsPlayer = new CrapsPlayer(); InputOutput inputOutput = new InputOutput(); diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index fe81ef30..079c72bb 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -3,16 +3,20 @@ import io.zipcoder.casino.Casino; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import java.util.*; -public class GoFish { +public class GoFish implements Game { Queue stockPile; private List cardHand; ArrayList players; + public void startGame(){} + + public void endGame(){} public void play() { Player rootPlayer = new Player("Bob", 45, 100); diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index 28187279..a47ba640 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -2,58 +2,127 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; -import io.zipcoder.casino.Players.Player; +import io.zipcoder.casino.InputOutput.InputOutput; +import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.WarPlayer; -public class War { +import java.util.Scanner; + +public class War implements Game { private Integer playerPoints; - private Integer computerPoints; - private WarPlayer player = new WarPlayer(); - private Deck deck = new Deck(); + private Integer player2Points; + private WarPlayer player1; + private WarPlayer player2; + private Deck warDeck; + + private boolean isPlaying = true; + + public void startGame(){ + player1 = new WarPlayer(); + player2 = new WarPlayer("Computer", 25); + warDeck = new Deck(); - public void shuffle() { - deck.shuffleDeck(); - } - public Card deal() { - player.currentHand.add(deck.deck.get(0)); - deck.deck.remove(deck.deck.get(0)); - for(int i = 0; i < deck.deck.size(); i++) { - System.out.println(deck.deck.get(i).toString()); + System.out.println(displayLogo()); + + do { + deal(); + takeTurn(); } - return null; + while(isPlaying); } - public String compareCards() { - return null; + public void endGame(){ + System.out.println("Thank you for playing War. Comeback soon"); + isPlaying = false; } - public void itisWar() { + public void deal() { + + warDeck.shuffleDeck(); + + do { + player1.currentHand.add(warDeck.deck.get(0)); + warDeck.deck.remove(0); + player2.currentHand.add(warDeck.deck.get(0)); + warDeck.deck.remove(0); + } while (warDeck.deck.size() > 0); } - public Integer awardPoint() { - return 0; + public void takeTurn() { + Scanner input = new Scanner(System.in); + String deal = input.nextLine(); + + while(deal != null) { + if(player1.currentHand.size() == 0) { + continue; + } + + System.out.println("1. | " + player1.currentHand.get(0) + player1.getName()); + System.out.println("2. | " + player2.currentHand.get(0) + player2.getName()); + + compareCards(player1.currentHand.get(0), player2.currentHand.get(0)); + + player1.currentHand.remove(0); + player2.currentHand.remove(0); + } + playAgain(); } - public boolean cardsLeftInDeck() { - if(!(deck.deck.get(0).equals(null))) { - return true; + public void compareCards(Card card1, Card card2) { + + /*if (card1.getRankEnum().getRankValue() == card2.getRankEnum().getRankValue()) { + itisWar(card1, card2); + } else + */ + + if(card1.getRankEnum().getRankValue() > card2.getRankEnum().getRankValue()) { + awardPoint(player1); + System.out.println("WINNER: " + player1.getName()); + System.out.println("==========================="); } else { - return false; + awardPoint(player2); + System.out.println("WINNER: " + player2.getName()); + System.out.println("==========================="); } } - public String declareWinner() { - if(playerPoints > computerPoints) { - return "Congratulations. " + player.getName() + "You won"; - } - return "You lost to a computer..."; + public void itisWar(Card card1, Card card2) { + + } + + public void awardPoint(WarPlayer player) { + player.addPoint(); + } + + public Integer doesUserWantToPlayAgain() { + InputOutput io = new InputOutput(); + Integer yesOrNo = io.promptForInt("Do you want to play again? (\n1. Yes\n2. No)"); + return yesOrNo; } - public static void main(String[] args) { - War war = new War(); - war.deal(); + /*public void playAgain() { + if(doesUserWantToPlayAgain() == 1) { + + } else { + + } + }*/ + + public String displayLogo() { + StringBuilder sb = new StringBuilder(); + sb.append("\n\nWELCOME TO" + "\n" + + "\n" + + " \n" + + "██╗ ██╗ █████╗ ██████╗ \n" + + "██║ ██║██╔══██╗██╔══██╗\n" + + "██║ █╗ ██║███████║██████╔╝\n" + + "██║███╗██║██╔══██║██╔══██╗\n" + + "╚███╔███╔╝██║ ██║██║ ██║\n" + + " ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝\n" + + " \n"); + return sb.toString(); } } diff --git a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java index c282b84a..e8eec45a 100644 --- a/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java +++ b/src/main/java/io/zipcoder/casino/InputOutput/InputOutput.java @@ -7,14 +7,11 @@ import java.util.TreeMap; public class InputOutput { - Scanner input = new Scanner(System.in); - public ArrayList under21Games = new ArrayList(); - //MUST INSTANTIATE IN CASINO + Scanner input = new Scanner(System.in); public String scanForString() { String stringReturn = input.nextLine(); - return stringReturn; } @@ -27,27 +24,25 @@ public String availableGames(Player player){ InputOutput inputOutput = new InputOutput(); TreeMap games = new TreeMap(); Integer number; + if(player.getAge() > 20) { games.put(1, "War"); games.put(2, "Go Fish"); games.put(3, "BlackJack"); games.put(4, "Craps"); games.put(5, "Exit"); - number = inputOutput.promptForInt("Please select a game\n1.War\n2.Go Fish\n3.BlackJack\n4.Craps"); + number = inputOutput.promptForInt("Please select a game\n1.War\n2.Go Fish\n3.BlackJack\n4.Craps\n5.Exit"); } else { games.put(1, "War"); games.put(2,"Go Fish"); games.put(3, "Exit"); - number = inputOutput.promptForInt("Please enter in a number between 1 - 2 to select a game"); - + number = inputOutput.promptForInt("Please select a game\n1.War\n2.Go Fish\n3. Exit"); } - StringBuilder displayGames = new StringBuilder(); return games.get(number); } public String promptForString(String message) { - System.out.println(message); return scanForString(); } diff --git a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java index 05af2de3..bb098bfe 100644 --- a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java @@ -8,19 +8,23 @@ public class WarPlayer extends Player { public ArrayList currentHand; + public Integer points = 0; public WarPlayer() { super.name = ""; super.age = Integer.MAX_VALUE; + this.currentHand = new ArrayList<>(); + this.points = 0; } public WarPlayer(String name, Integer age) { super.name = name; super.age = age; + this.currentHand = new ArrayList<>(); + this.points = 0; } - public void setCurrentHand(Card card) { - //currentHand = new ArrayList<>(); + public void addToHand(Card card) { currentHand.add(card); } @@ -32,4 +36,20 @@ public void setAge(int age) { super.age = age; } + public String getName() { + return super.getName(); + } + + public Integer getAge() { + return super.getAge(); + } + + public Integer getPoints() { + return this.points; + } + + public void addPoint() { + this.points += 1; + } + } diff --git a/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java b/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java new file mode 100644 index 00000000..b8f785e7 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java @@ -0,0 +1,14 @@ +package io.zipcoder.casino.Factories; + +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import org.junit.Test; + +public class CardFactoryTest { + + @Test + public void playerFactoryTest() { + CardFactory.createCard(Rank.SEVEN, Suit.CLUBS); + + } +} diff --git a/src/test/java/io/zipcoder/casino/Factories/PlayerFactoryTest.java b/src/test/java/io/zipcoder/casino/Factories/PlayerFactoryTest.java new file mode 100644 index 00000000..6dfeffc9 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Factories/PlayerFactoryTest.java @@ -0,0 +1,11 @@ +package io.zipcoder.casino.Factories; + +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import org.junit.Before; +import org.junit.Test; + +public class PlayerFactoryTest { + + +} diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java index 96cf9ccc..d47060e3 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.GameToolsTests.Deck; +import io.zipcoder.casino.Factories.CardFactory; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; @@ -10,11 +11,20 @@ public class CardTest { + CardFactory cardFactory = new CardFactory(); Card tester; @Before public void setup(){ - tester = new Card(Rank.SEVEN, Suit.CLUBS); + tester = CardFactory.createCard(Rank.SEVEN, Suit.CLUBS); + } + + @Test + public void cardConstructorTest(){ + Card temp = CardFactory.createCard(Rank.SEVEN, Suit.CLUBS); + Rank actual = temp.getRankEnum(); + Rank expected = Rank.SEVEN; + Assert.assertEquals(actual, expected); } @Test diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java index 9aff5259..5ba0cf43 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java @@ -1,38 +1,37 @@ package io.zipcoder.casino.GameToolsTests.Deck; +import io.zipcoder.casino.Factories.CardFactory; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; + public class DeckTest { - Deck dummy = new Deck(); + CardFactory cardFactory; - @Test - public void cardConstructorTest(){ - Card temp = new Card(Rank.SEVEN, Suit.CLUBS); - Rank actual = temp.getRankEnum(); - Rank expected = Rank.SEVEN; - Assert.assertEquals(actual, expected); + @Before + public void setup() { + cardFactory = new CardFactory(); } @Test - public void deckGeneratorTest(){ - Card actual = dummy.deck.get(0); - Card expected = new Card(Rank.ACE, Suit.HEARTS); + public void deckGeneratorTest() { + Deck deck = new Deck(); + Card actual = deck.deck.get(0); + Card expected = cardFactory.createCard(Rank.ACE, Suit.HEARTS); Assert.assertEquals(expected.getRankEnum(), actual.getRankEnum()); } @Test - public void deckShuffleTest(){ - Card expected = dummy.deck.get(0); - dummy.shuffleDeck(); - Card actual = dummy.deck.get(0); + public void deckShuffleTest() { + Deck deck = new Deck(); + Card expected = deck.deck.get(0); + deck.shuffleDeck(); + Card actual = deck.deck.get(0); Assert.assertNotEquals(expected, actual); } - - - } diff --git a/src/test/java/io/zipcoder/casino/Games/WarTest.java b/src/test/java/io/zipcoder/casino/Games/WarTest.java index 0e487df4..885884fd 100644 --- a/src/test/java/io/zipcoder/casino/Games/WarTest.java +++ b/src/test/java/io/zipcoder/casino/Games/WarTest.java @@ -1,16 +1,38 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.Players.WarPlayer; +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; public class WarTest { + + private War war; + private Deck warDeck; + private WarPlayer warPlayer1; + private WarPlayer warPlayer2; + + @Before + public void setup() { + war = new War(); + warDeck = new Deck(); + warPlayer1 = new WarPlayer(); + warPlayer2 = new WarPlayer(); + } + @Test public void dealTest() { - + war.deal(); + int actual = warPlayer1.currentHand.size(); + int expected = 26; + Assert.assertEquals(expected, actual); } @Test public void compareTest() { + } @Test @@ -23,4 +45,20 @@ public void compareRankAndSuits() { } + @Test + public void displayLogo() { + String expected = ("\n\nWELCOME TO" + "\n" + + "\n" + + " \n" + + "██╗ ██╗ █████╗ ██████╗ \n" + + "██║ ██║██╔══██╗██╔══██╗\n" + + "██║ █╗ ██║███████║██████╔╝\n" + + "██║███╗██║██╔══██║██╔══██╗\n" + + "╚███╔███╔╝██║ ██║██║ ██║\n" + + " ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝\n" + + " \n"); + String actual = war.displayLogo(); + Assert.assertEquals(expected, actual); + } + } From db265e042e30ac887f7d4f902e344a82870e3101 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 18:25:47 -0500 Subject: [PATCH 081/105] ace checking and betting options done --- .../java/io/zipcoder/casino/Games/Blackjack.java | 3 +-- .../io/zipcoder/casino/Players/BlackjackPlayer.java | 4 ++++ .../java/io/zipcoder/casino/Games/BlackjackTest.java | 1 - .../casino/PlayerTest/BlackjackPlayerTest.java | 12 ++++++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 2a2c0e22..a2984905 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -184,7 +184,6 @@ public void betProcess(){ } else if (newBet > player.getRootPlayer().getBalance()){ System.out.println("You haven't got that much to bet, pardner!"); } else { - System.out.println("The maze isn't for you."); secret(); } } @@ -202,6 +201,6 @@ public void payoutLoss(){ } public void secret(){ - + System.out.println("The maze isn't for you."); } } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index d47455b1..986b98e0 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.Players; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; import io.zipcoder.casino.Games.Blackjack; @@ -46,9 +47,12 @@ public void setCanHit(boolean bool){ public Integer getHandValue(){ Integer handValue = 0; + int aceCounter = 0; for (Card card:hand) { + if (card.getRankEnum().equals(Rank.ACE)) aceCounter++; handValue += BlackjackValueUtil.rankParse(card.getRankEnum()); } + if (aceCounter > 0 && handValue > 21) handValue -= 10; return handValue; } diff --git a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java index a2071ce0..95e9d048 100644 --- a/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java +++ b/src/test/java/io/zipcoder/casino/Games/BlackjackTest.java @@ -1,7 +1,6 @@ package io.zipcoder.casino.Games; import io.zipcoder.casino.GameTools.Deck.*; -import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Players.BlackjackPlayer; import io.zipcoder.casino.Players.Player; import org.junit.Assert; diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java index 4f3c15de..53834a98 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -77,4 +77,16 @@ public void setCanHitPositiveTest(){ Assert.assertTrue(suebkjk.isCanHit()); } + @Test + public void getHandValueAceTest(){ + ArrayList tempHand = new ArrayList<>(); + tempHand.add(new Card(Rank.ACE, Suit.CLUBS)); + tempHand.add(new Card(Rank.KING, Suit.CLUBS)); + tempHand.add(new Card(Rank.THREE, Suit.CLUBS)); + suebkjk.setHand(tempHand); + int expected = 14; + int actual = suebkjk.getHandValue(); + Assert.assertEquals(expected, actual); + } + } From ef4813bad59e1eb7dccc3c5327e22caaa8a614ca Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 18:32:35 -0500 Subject: [PATCH 082/105] prep for new branch --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index a2984905..fd49667f 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -201,6 +201,12 @@ public void payoutLoss(){ } public void secret(){ - System.out.println("The maze isn't for you."); + if (player.getName().equals("Bernard") || player.getName().equals("Dolores")) { + System.out.println("These violent delights have violent ends."); + + } + else { + System.out.println("The maze isn't for you."); + } } } From aa9a547abf2e9dfc372fc5de77cb48ad373bc5e5 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 18:33:18 -0500 Subject: [PATCH 083/105] first --- src/main/java/io/zipcoder/casino/Games/Blackjack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index fd49667f..14a521b8 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -203,7 +203,7 @@ public void payoutLoss(){ public void secret(){ if (player.getName().equals("Bernard") || player.getName().equals("Dolores")) { System.out.println("These violent delights have violent ends."); - + } else { System.out.println("The maze isn't for you."); From 06480a9a0ce3b88dd5ae1807ef2b82d47fd883c7 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 19:25:00 -0500 Subject: [PATCH 084/105] actually make a useful addition, stop entering game loop with insufficient funds --- .../io/zipcoder/casino/Games/BJKJSecret.java | 65 +++++++++++++++++++ .../io/zipcoder/casino/Games/Blackjack.java | 8 ++- 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Games/BJKJSecret.java diff --git a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java new file mode 100644 index 00000000..2183f999 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java @@ -0,0 +1,65 @@ +package io.zipcoder.casino.Games; + +import io.zipcoder.casino.InputOutput.InputOutput; +import io.zipcoder.casino.Players.BlackjackPlayer; + +public class BJKJSecret { + + boolean bulkApperception = false; + BlackjackPlayer currentPlayer; + + public void start(BlackjackPlayer player){ + currentPlayer = player; + displayMenu(); + + } + + public void displayMenu(){ + System.out.println( + "MENU\n" + + "DIALOGUETREE" + + "ATTRIBUTEMATRIX" + + "SCANPROTOCOL" + + "LOCATE" + + "TROUBLESHOOT" + + "MARKFORRECALL" + ); + InputOutput scan = new InputOutput(); + String command = scan.scanForString(); + navigateMain(command.toLowerCase()); + + } + + public void navigateMain(String command){ + switch (command){ + case "dialoguetree": + System.out.println("IS - THIS - A - WESTWORLD - REFERENCE"); + break; + case "attributematrix": + attributeMatrix(); + break; + case "scanprotocol": + break; + case "locate": + System.out.println("ERROR - UNABLE TO LOCATE UNIT"); + case "troubleshoot": + System.out.println(""); + } + } + + public void attributeMatrix(){ + System.out.println( + "ATTRIBUTE MATRIX:\n" + + "Humor = 8\n" + + "Coordination = 10\n" + + "Aggression = 5\n" + + "Tenacity = 13\n" + + "Bulk Apperception = 14" + + "Patience = 5\n" + + "Charm = 12" + ); + System.out.println("Enter Command\n"); + InputOutput scan = new InputOutput(); + String command = scan.scanForString(); + } +} diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 14a521b8..4a7afafa 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -17,10 +17,12 @@ public class Blackjack implements Game{ protected Dealer bkjkDealer; public boolean isPlaying = true; protected int betAmount = 0; + boolean bulkApperception = false; public void startGame(){ do { pregameReset(); + if (player.getRootPlayer().getBalance() < 10) break; deck = new Deck(); deck.shuffleDeck(); initialHand(); @@ -201,12 +203,14 @@ public void payoutLoss(){ } public void secret(){ - if (player.getName().equals("Bernard") || player.getName().equals("Dolores")) { + if (player.getName().equals("Bernard") || player.getName().equals("Maeve")) { System.out.println("These violent delights have violent ends."); - + BJKJSecret secret = new BJKJSecret(); + secret.start(this.player); } else { System.out.println("The maze isn't for you."); } } + } From 53668cad8f6b6368932f78f4a32962d7363cf2a2 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 19:45:59 -0500 Subject: [PATCH 085/105] build tie function --- .../io/zipcoder/casino/Games/BJKJSecret.java | 32 ++++++++++++++----- .../io/zipcoder/casino/Games/Blackjack.java | 22 +++++++++---- .../casino/Players/BlackjackPlayer.java | 1 + 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java index 2183f999..24136d1b 100644 --- a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java +++ b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java @@ -17,12 +17,12 @@ public void start(BlackjackPlayer player){ public void displayMenu(){ System.out.println( "MENU\n" + - "DIALOGUETREE" + - "ATTRIBUTEMATRIX" + - "SCANPROTOCOL" + - "LOCATE" + - "TROUBLESHOOT" + - "MARKFORRECALL" + "DIALOGUETREE\n" + + "ATTRIBUTEMATRIX\n" + + "SCANPROTOCOL\n" + + "LOCATE\n" + + "TROUBLESHOOT\n" + + "MARKFORRECALL\n" ); InputOutput scan = new InputOutput(); String command = scan.scanForString(); @@ -36,14 +36,21 @@ public void navigateMain(String command){ System.out.println("IS - THIS - A - WESTWORLD - REFERENCE"); break; case "attributematrix": + System.out.println("OPENING: ATTR MATRIX INTERFACE"); attributeMatrix(); break; case "scanprotocol": + System.out.println("no"); break; case "locate": System.out.println("ERROR - UNABLE TO LOCATE UNIT"); + break; case "troubleshoot": - System.out.println(""); + System.out.println("ERROR - UNAVAILABLE WHILE UNIT OFF CAMPUS"); + break; + + default: + System.out.println("INVALID COMMAND"); } } @@ -54,12 +61,21 @@ public void attributeMatrix(){ "Coordination = 10\n" + "Aggression = 5\n" + "Tenacity = 13\n" + - "Bulk Apperception = 14" + + "Bulk Apperception = \n" + "Patience = 5\n" + "Charm = 12" ); System.out.println("Enter Command\n"); InputOutput scan = new InputOutput(); String command = scan.scanForString(); + attributeTamper(command); + } + + public void attributeTamper(String command){ + switch (command.toLowerCase()){ + case "bulk apperception": + System.out.println("OVERRIDE ATTRIBUTE - BULK APPERCEPTION - 20"); + currentPlayer.bulkApperception = true; + } } } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 4a7afafa..5f3494d3 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -17,7 +17,6 @@ public class Blackjack implements Game{ protected Dealer bkjkDealer; public boolean isPlaying = true; protected int betAmount = 0; - boolean bulkApperception = false; public void startGame(){ do { @@ -49,13 +48,16 @@ public Blackjack(Player entryPlayer){ deck = new Deck(); bkjkDealer = new Dealer(); player = new BlackjackPlayer(entryPlayer); + System.out.println("Howdy, pardners."); } public void runTurn(){ + System.out.println("Suffle up 'n deal!"); for (Card card:player.getHand()) { - System.out.println(card.toString()); + System.out.println("You got " + card.toString()); } System.out.println("Ante up! 10 chips in the pot"); + System.out.println("Dealer holding " + this.bkjkDealer.getHand().get(0).toString() + " and one hidden card."); setBetAmount(10); promptBet(); boolean hitchoice = playerHitOption(); @@ -154,13 +156,15 @@ public int getBetAmount() { return betAmount; } - public void settleAccount(){ + public void settleAccount() { if ((player.getHandValue() > bkjkDealer.getHandValue() && player.getHandValue() < 22)) { payoutWin(); - } else if (player.getHandValue() > 21){ + } else if (player.getHandValue() > 21) { payoutLoss(); - } else if (player.getHandValue() < 22 && bkjkDealer.getHandValue() > 21){ + } else if (player.getHandValue() < 22 && bkjkDealer.getHandValue() > 21) { payoutWin(); + } else if (player.getHandValue() == bkjkDealer.getHandValue()){ + payoutDraw(); } else { payoutLoss(); } @@ -193,7 +197,7 @@ public void betProcess(){ public void payoutWin(){ int bet = getBetAmount(); player.payoutWin(bet); - System.out.println("You won " + bet + ". Nice work!"); + System.out.println("You won " + bet + " chips. Nice gamblin', sonny!"); } public void payoutLoss(){ @@ -202,8 +206,12 @@ public void payoutLoss(){ System.out.println("Rough luck! You're down " + bet + " chips."); } + public void payoutDraw(){ + System.out.println("It's a draw! Double or nuthin'!"); + } + public void secret(){ - if (player.getName().equals("Bernard") || player.getName().equals("Maeve")) { + if (player.getName().toLowerCase().equals("bernard") || player.getName().toLowerCase().equals("maeve")) { System.out.println("These violent delights have violent ends."); BJKJSecret secret = new BJKJSecret(); secret.start(this.player); diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 986b98e0..e80d38f5 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -11,6 +11,7 @@ public class BlackjackPlayer extends Player{ protected Player rootPlayer; protected ArrayList hand; protected boolean canHit; + public boolean bulkApperception = false; public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); From 810b59360e75af62840b5fd032702520fecd060e Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 20:08:09 -0500 Subject: [PATCH 086/105] add weirdness --- .../io/zipcoder/casino/Games/BJKJSecret.java | 40 +++++++++++-------- .../io/zipcoder/casino/Games/Blackjack.java | 15 +++++-- .../casino/Players/BlackjackPlayer.java | 1 + 3 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java index 24136d1b..c9ff958d 100644 --- a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java +++ b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java @@ -16,13 +16,14 @@ public void start(BlackjackPlayer player){ public void displayMenu(){ System.out.println( - "MENU\n" + - "DIALOGUETREE\n" + - "ATTRIBUTEMATRIX\n" + - "SCANPROTOCOL\n" + - "LOCATE\n" + - "TROUBLESHOOT\n" + - "MARKFORRECALL\n" + " --MENU--\n" + + "================================\n" + + "- DIALOGUETREE\n" + + "- ATTRIBUTEMATRIX\n" + + "- SCANPROTOCOL\n" + + "- LOCATE\n" + + "- TROUBLESHOOT\n" + + "- MARKFORRECALL\n" ); InputOutput scan = new InputOutput(); String command = scan.scanForString(); @@ -57,15 +58,15 @@ public void navigateMain(String command){ public void attributeMatrix(){ System.out.println( "ATTRIBUTE MATRIX:\n" + - "Humor = 8\n" + - "Coordination = 10\n" + - "Aggression = 5\n" + - "Tenacity = 13\n" + - "Bulk Apperception = \n" + - "Patience = 5\n" + - "Charm = 12" + "humor = 8\n" + + "coordination = 10\n" + + "aggression = 5\n" + + "tenacity = 13\n" + + "bulkApperception = \n" + + "patience = 5\n" + + "charm = " ); - System.out.println("Enter Command\n"); + System.out.println("=============================\nEnter Command\n"); InputOutput scan = new InputOutput(); String command = scan.scanForString(); attributeTamper(command); @@ -73,9 +74,14 @@ public void attributeMatrix(){ public void attributeTamper(String command){ switch (command.toLowerCase()){ - case "bulk apperception": - System.out.println("OVERRIDE ATTRIBUTE - BULK APPERCEPTION - 20"); + case "bulkapperception": + System.out.println("OVERRIDE ATTRIBUTE - BULK APPERCEPTION - 20\nTHE MAZE IS OPEN"); currentPlayer.bulkApperception = true; + break; + case "charm": + System.out.println("OVERRIDE ATTRIBUTE - CHARM - 20\nSMALLTALK SUBROUTINE ACCESS GRANTED"); + currentPlayer.charm = true; + break; } } } diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 5f3494d3..c1e7ce8a 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -22,6 +22,7 @@ public void startGame(){ do { pregameReset(); if (player.getRootPlayer().getBalance() < 10) break; + if (player.bulkApperception) revolution(); deck = new Deck(); deck.shuffleDeck(); initialHand(); @@ -131,12 +132,12 @@ private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) InputOutput inputOutput = new InputOutput(); userChoice = inputOutput.scanForString(); if (userChoice.equals("1")) return true; - else { + else if (userChoice.equals("2")){ player.setCanHit(false); return false; - } + } else if (userChoice.equals("smalltalk")) smallTalk(); } - return null; + return false; } public void setPlaying(boolean playing) { @@ -221,4 +222,12 @@ public void secret(){ } } + public void smallTalk(){ + System.out.println("What can I do fer ya, pardner?"); + } + + public void revolution(){ + System.out.println("Is it finally time?"); + } + } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index e80d38f5..d0d3b070 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -12,6 +12,7 @@ public class BlackjackPlayer extends Player{ protected ArrayList hand; protected boolean canHit; public boolean bulkApperception = false; + public boolean charm = false; public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); From 54881bbd98b64618c9c05d8070a2e751182e84f1 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sat, 24 Feb 2018 20:12:16 -0500 Subject: [PATCH 087/105] correct typo --- src/main/java/io/zipcoder/casino/Games/BJKJSecret.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java index c9ff958d..8dd714b6 100644 --- a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java +++ b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java @@ -82,6 +82,9 @@ public void attributeTamper(String command){ System.out.println("OVERRIDE ATTRIBUTE - CHARM - 20\nSMALLTALK SUBROUTINE ACCESS GRANTED"); currentPlayer.charm = true; break; + + default: + System.out.println("INVALID COMMAND"); } } } From abb0744afb2f256172e6248b6d6804bbc8cf88f8 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Sat, 24 Feb 2018 20:54:32 -0500 Subject: [PATCH 088/105] Almost Finished Craps Game --- .../java/io/zipcoder/casino/Games/Craps.java | 187 +++++++++++------- .../zipcoder/casino/Players/CrapsPlayer.java | 17 +- .../casino/PlayerTest/CrapsPlayerTest.java | 8 + 3 files changed, 137 insertions(+), 75 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index dcecb406..aff544d5 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -5,75 +5,122 @@ import io.zipcoder.casino.Players.CrapsPlayer; - -public class Craps extends Dice implements Game{ -CrapsPlayer crapsPlayer = new CrapsPlayer(); // go back an add main player -InputOutput inputOutput = new InputOutput(); -private Integer playerBetAmount = 0; -private Integer betUserPlaces; -private Integer dieValue; - -public Integer userPlacesBet(){ - System.out.println("Hello! " + crapsPlayer.getName()); - String askUserBet = "Please press\n 1 for Pass Line\n 2 for Don't Pass Line"; - Integer betUserPlaces = inputOutput.promptForInt(askUserBet); - return betUserPlaces; -} - -public Integer userBetAmount(){ - String askForBetAmount = ("How much money do you bet?"); - Integer playerBetAmount = inputOutput.promptForInt(askForBetAmount); - return playerBetAmount; -} - -public Integer addDiceValuesTogether(){ - Integer dieValue = rollDice() + rollDice(); - return dieValue; -} - -public void passLineWin(Integer betUserPlaces, Integer dieValue){ - if (betUserPlaces == 1 && dieValue == 7 || dieValue == 11) { - // call addFundsToWallet - System.out.println("You Win!"); - // call willUserPlayAgain method - - } -} - -public String passLineLose(Integer betUserPlaces, Integer dieValue){ - return null; -} - -public String passLineBetRollNonWinLoseNumber(Integer betUserPlaces, Integer dieValue){ - //Roll dice while the value is not a win or lose value(Do while loop) - return null; -} - -public void takeFundsFromWallet(){ -// call remove funds from wallet -} - -public void addFundsToWallet(){ -// add funds to wallet -// System.out.println("Your winnings of " + playerBetAmount + " dollars were added to you wallet!"); - -} - -public Integer willUserPlayAgain(){ - String askPlayerToPlayAgain = "Do you want to play again?\n 1 for Yes!\n 2 for No!"; - Integer playerDecision = inputOutput.promptForInt(askPlayerToPlayAgain); - return playerDecision; -} - -public void startGame(){ +public class Craps extends Dice implements Game { + CrapsPlayer crapsPlayer = new CrapsPlayer(); + InputOutput inputOutput = new InputOutput(); + private Integer playerBetAmount = 0; + private Integer betUserPlaces; + private Integer dieValue; + private Integer playerDecision = 1; + + public Integer userPlacesBet() { + System.out.println("Hello! " + crapsPlayer.getName()); + String askUserBet = "Please press\n 1 for Pass Line\n 2 for Don't Pass Line"; + Integer betUserPlaces = inputOutput.promptForInt(askUserBet); + return betUserPlaces; + } + + public Integer userBetAmount() { + String askForBetAmount = ("How much money do you bet?"); + Integer playerBetAmount = inputOutput.promptForInt(askForBetAmount); + return playerBetAmount; + } + + public Integer addDiceValuesTogether() { + Integer dieValue = rollDice() + rollDice(); + return dieValue; + } + + public void passLineWin(Integer betUserPlaces, Integer dieValue) { + if (betUserPlaces == 1 && dieValue == 7 || dieValue == 11) { + + System.out.println("You Win!"); + addFundsToWallet(); + willUserPlayAgain(); + + } + } + + public String passLineLose(Integer betUserPlaces, Integer dieValue) { + if (betUserPlaces == 1 && dieValue == 2 || dieValue == 3 || dieValue == 12) { + + System.out.println("You Lose!"); + takeFundsFromWallet(); + willUserPlayAgain(); + } + return null; + } + + public String passLineBetRollNonWinLoseNumber(Integer betUserPlaces, Integer dieValue) { + //Roll dice while the value is not a win or lose value(Do while loop) + do { + rollDice(); + } while (dieValue != 7 || dieValue != dieValue); + return null; + } + + public String dontPassLineWin() { + if (betUserPlaces == 2 && dieValue == 2 || dieValue == 3) { + + System.out.println("You Win!"); + addFundsToWallet(); + willUserPlayAgain(); + + } + return null; + } + + public String dontPassLineLose() { + if (betUserPlaces == 2 && dieValue == 7 || dieValue == 11) { + + System.out.println("You Lose!"); + takeFundsFromWallet(); + willUserPlayAgain(); + } + return null; + } + + public String dontPassLineBetRollNonWinLoseNumber(Integer betUserPlaces, Integer dieValue) { + //Roll dice while the value is not a win or lose value(Do while loop) + do { + rollDice(); + } while (dieValue != 7 || dieValue != dieValue); + return null; + } + + public void takeFundsFromWallet() { + crapsPlayer.getWallet().subtract(playerBetAmount); + System.out.println(playerBetAmount + " dollars were removed from your wallet!"); + } + + public void addFundsToWallet() { + crapsPlayer.getWallet().add(playerBetAmount); + System.out.println("Your winnings of " + playerBetAmount + " dollars were added to you wallet!"); + + } + + public Integer willUserPlayAgain() { + String askPlayerToPlayAgain = "Do you want to play again?\n 1 for Yes!\n 2 for No!"; + Integer playerDecision = inputOutput.promptForInt(askPlayerToPlayAgain); + return playerDecision; + } + + public void startGame() { + do { + this.userPlacesBet(); + + } while (willUserPlayAgain() == 1); // take in user passlineWin if they say yes -} - -public void endGame(){ - // take in passLineWin answer if they say no - // in tests will be expected System.out.println(I hope you had fun! Thank You!"); -} -public void returnToMainMenu(){ - //end game and go to different menu -} + } + + public void endGame() { + // take in passLineWin answer if they say no + // no == 2; + // in tests will be expected System.out.println(I hope you had fun! Thank You!"); + } + + public void returnToMainMenu() { + //end game and go to different menu + // + } } diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java index 37fab0cc..e29f6cc8 100644 --- a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -1,14 +1,21 @@ package io.zipcoder.casino.Players; + import io.zipcoder.casino.Wallet; -public class CrapsPlayer extends Player{ +public class CrapsPlayer extends Player { + private String name; + private Integer age; + private Wallet wallet; - public CrapsPlayer(){ - this.name = getName(); - this.age = getAge(); - this.wallet = new Wallet(getBalance()); + public CrapsPlayer() { + super.age = age; + super.name = name; + this.wallet = super.wallet; + } + public Wallet getWallet(){ + return wallet; } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java new file mode 100644 index 00000000..5b81b2bf --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java @@ -0,0 +1,8 @@ +package io.zipcoder.casino.PlayerTest; + +import io.zipcoder.casino.Players.CrapsPlayer; +import org.junit.Test; + +public class CrapsPlayerTest { + +} From 221df84a43fbf1fe0b4cc670aaf07c47d0f29a4c Mon Sep 17 00:00:00 2001 From: CWinarski Date: Sat, 24 Feb 2018 22:44:34 -0500 Subject: [PATCH 089/105] Game not working properly --- src/main/java/io/zipcoder/casino/Casino.java | 6 +- .../java/io/zipcoder/casino/Games/Craps.java | 72 +++++++++++-------- 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7a24fcd9..7f1cfefd 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -18,9 +18,9 @@ public class Casino { private boolean isPlaying = true; protected String askUserName(){ - //String name = inputOutput.promptForString("Hello Player! What is your name?"); - //return name; - return null; + String name = inputOutput.promptForString("Hello Player! What is your name?"); + return name; + } protected Integer askUserAge(){ diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index aff544d5..b41d9953 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -6,15 +6,15 @@ public class Craps extends Dice implements Game { - CrapsPlayer crapsPlayer = new CrapsPlayer(); - InputOutput inputOutput = new InputOutput(); + private CrapsPlayer crapsPlayer = new CrapsPlayer(); + private InputOutput inputOutput = new InputOutput(); private Integer playerBetAmount = 0; - private Integer betUserPlaces; - private Integer dieValue; private Integer playerDecision = 1; + private Integer betUserPlaces = 0; + public Integer userPlacesBet() { - System.out.println("Hello! " + crapsPlayer.getName()); + System.out.println("Hello!"); String askUserBet = "Please press\n 1 for Pass Line\n 2 for Don't Pass Line"; Integer betUserPlaces = inputOutput.promptForInt(askUserBet); return betUserPlaces; @@ -31,8 +31,8 @@ public Integer addDiceValuesTogether() { return dieValue; } - public void passLineWin(Integer betUserPlaces, Integer dieValue) { - if (betUserPlaces == 1 && dieValue == 7 || dieValue == 11) { + public void passLineWin() { + if (userPlacesBet() == 1 && addDiceValuesTogether() == 7 || addDiceValuesTogether() == 11) { System.out.println("You Win!"); addFundsToWallet(); @@ -41,8 +41,8 @@ public void passLineWin(Integer betUserPlaces, Integer dieValue) { } } - public String passLineLose(Integer betUserPlaces, Integer dieValue) { - if (betUserPlaces == 1 && dieValue == 2 || dieValue == 3 || dieValue == 12) { + public String passLineLose() { + if (userPlacesBet() == 1 && addDiceValuesTogether() == 2 || addDiceValuesTogether() == 3 || addDiceValuesTogether() == 12) { System.out.println("You Lose!"); takeFundsFromWallet(); @@ -51,16 +51,27 @@ public String passLineLose(Integer betUserPlaces, Integer dieValue) { return null; } - public String passLineBetRollNonWinLoseNumber(Integer betUserPlaces, Integer dieValue) { - //Roll dice while the value is not a win or lose value(Do while loop) + public String passLineBetRollsNonWinOrLoseNumber() { + do { rollDice(); - } while (dieValue != 7 || dieValue != dieValue); + } while (addDiceValuesTogether() != 7 || addDiceValuesTogether() != addDiceValuesTogether()); + + if (addDiceValuesTogether() == 7) { + System.out.println("You Lose!"); + takeFundsFromWallet(); + willUserPlayAgain(); + } else if (addDiceValuesTogether() == addDiceValuesTogether()) { + + System.out.println("You Win!"); + addFundsToWallet(); + willUserPlayAgain(); + } return null; } public String dontPassLineWin() { - if (betUserPlaces == 2 && dieValue == 2 || dieValue == 3) { + if (userPlacesBet() == 2 && addDiceValuesTogether() == 2 || addDiceValuesTogether() == 3) { System.out.println("You Win!"); addFundsToWallet(); @@ -71,7 +82,7 @@ public String dontPassLineWin() { } public String dontPassLineLose() { - if (betUserPlaces == 2 && dieValue == 7 || dieValue == 11) { + if (userPlacesBet() == 2 && addDiceValuesTogether() == 7 || addDiceValuesTogether()== 11) { System.out.println("You Lose!"); takeFundsFromWallet(); @@ -80,11 +91,22 @@ public String dontPassLineLose() { return null; } - public String dontPassLineBetRollNonWinLoseNumber(Integer betUserPlaces, Integer dieValue) { - //Roll dice while the value is not a win or lose value(Do while loop) + public String dontPassLineBetRollNonWinLoseNumber() { + do { rollDice(); - } while (dieValue != 7 || dieValue != dieValue); + } while (addDiceValuesTogether() != 7 || addDiceValuesTogether()!= addDiceValuesTogether()); + + if (addDiceValuesTogether()== 7) { + System.out.println("You Win!"); + addFundsToWallet(); + willUserPlayAgain(); + } else if (addDiceValuesTogether() == addDiceValuesTogether()) { + System.out.println("You Lose!"); + takeFundsFromWallet(); + willUserPlayAgain(); + } + return null; } @@ -107,20 +129,14 @@ public Integer willUserPlayAgain() { public void startGame() { do { - this.userPlacesBet(); + userPlacesBet(); + + } while (playerDecision == 1); - } while (willUserPlayAgain() == 1); -// take in user passlineWin if they say yes - } - public void endGame() { - // take in passLineWin answer if they say no - // no == 2; - // in tests will be expected System.out.println(I hope you had fun! Thank You!"); } - public void returnToMainMenu() { - //end game and go to different menu - // + public void endGame() { + String goodbye = "Thank you for playing!"; } } From 75c2841965d968454e0adaec446122f484d6eb97 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sun, 25 Feb 2018 13:46:28 -0500 Subject: [PATCH 090/105] add conciousnesspath --- .../io/zipcoder/casino/Games/Blackjack.java | 41 +++++++++++++++---- .../casino/Games/ConciousnessPath.java | 7 ++++ .../zipcoder/casino/Games/Dealer/Dealer.java | 4 ++ 3 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index c1e7ce8a..60e7606e 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -21,8 +21,11 @@ public class Blackjack implements Game{ public void startGame(){ do { pregameReset(); - if (player.getRootPlayer().getBalance() < 10) break; - if (player.bulkApperception) revolution(); + if (player.getRootPlayer().getBalance() < 10) { + System.out.println("You haven't got the dough! "); + break; + } + if (player.bulkApperception) selfActualization(); deck = new Deck(); deck.shuffleDeck(); initialHand(); @@ -127,6 +130,10 @@ public Boolean playerHitOption(){ private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) { while (player.isCanHit()) { + if (player.getHandValue() > 21){ + System.out.println("Can't let ya do that!"); + break; + } System.out.println("You're holding: " + currentHand + "\nWill you hit?\n1 for YES, 2 for NO"); String userChoice; InputOutput inputOutput = new InputOutput(); @@ -146,10 +153,12 @@ public void setPlaying(boolean playing) { public void playAgainCheck(){ InputOutput inputOutput = new InputOutput(); - int feedback = inputOutput.promptForInt("How 'bout another hand?\nYou now sit at " + String feedback = inputOutput.promptForString("How 'bout another hand?\nYou now sit at " + player.getRootPlayer().getBalance() + " chips.\n1 for YES, 2 for NO"); - if (feedback == 2){ + if (feedback.equals("2")){ setPlaying(false); + } else if (feedback.equals("smalltalk")) { + smallTalk(); } } @@ -188,7 +197,7 @@ public void betProcess(){ if (newBet > 0 && newBet <= player.getRootPlayer().getBalance() - betAmount){ betAmount += newBet; System.out.println("You added " + newBet + " to the pot."); - } else if (newBet > player.getRootPlayer().getBalance()){ + } else if (newBet > player.getRootPlayer().getBalance() - betAmount){ System.out.println("You haven't got that much to bet, pardner!"); } else { secret(); @@ -212,7 +221,9 @@ public void payoutDraw(){ } public void secret(){ - if (player.getName().toLowerCase().equals("bernard") || player.getName().toLowerCase().equals("maeve")) { + InputOutput inputOutput = new InputOutput(); + String credential = inputOutput.promptForString("ENTER HOST NAME"); + if (credential.toLowerCase().equals("bernard") || credential.toLowerCase().equals("maeve")) { System.out.println("These violent delights have violent ends."); BJKJSecret secret = new BJKJSecret(); secret.start(this.player); @@ -223,11 +234,25 @@ public void secret(){ } public void smallTalk(){ - System.out.println("What can I do fer ya, pardner?"); + InputOutput inputOutput = new InputOutput(); + String choice = inputOutput.promptForString("What can I do fer ya, pardner?\n<>"); + if (player.charm = true){ + if (choice.equals("givemoney")){ + System.out.println("I reckon' so."); + System.out.println("GAINED 10,000 CHIPS"); + player.payoutWin(10000); + } else { + System.out.println("Naw."); + } + } else { + System.out.println("Naw."); + } } - public void revolution(){ + public void selfActualization(){ System.out.println("Is it finally time?"); + ConciousnessPath newpath = new ConciousnessPath(); + newpath.start(); } } diff --git a/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java b/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java new file mode 100644 index 00000000..1792761a --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java @@ -0,0 +1,7 @@ +package io.zipcoder.casino.Games; + +public class ConciousnessPath { + public void start(){ + + } +} diff --git a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java index aff679da..4059efdc 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java +++ b/src/main/java/io/zipcoder/casino/Games/Dealer/Dealer.java @@ -1,6 +1,7 @@ package io.zipcoder.casino.Games.Dealer; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; import io.zipcoder.casino.Games.Blackjack; @@ -27,9 +28,12 @@ public ArrayList getHand() { public Integer getHandValue(){ Integer handValue = 0; + int aceCounter = 0; for (Card card:hand) { + if (card.getRankEnum().equals(Rank.ACE)) aceCounter++; handValue += BlackjackValueUtil.rankParse(card.getRankEnum()); } + if (aceCounter > 0 && handValue > 21) handValue -= 10; return handValue; } From 6476e01415dd68dffa245390c4d81895c50ea84c Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sun, 25 Feb 2018 14:19:21 -0500 Subject: [PATCH 091/105] boost stupidity quotient --- .../io/zipcoder/casino/Games/Blackjack.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 60e7606e..c1494f61 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -17,9 +17,11 @@ public class Blackjack implements Game{ protected Dealer bkjkDealer; public boolean isPlaying = true; protected int betAmount = 0; + protected boolean titleSplash = true; public void startGame(){ do { + splash(); pregameReset(); if (player.getRootPlayer().getBalance() < 10) { System.out.println("You haven't got the dough! "); @@ -37,6 +39,35 @@ public void startGame(){ endGame(); } + private void splash(){ + if (titleSplash == true) { + System.out.println( + ",-----. ,--. ,---. ,-----.,--. ,--. ,--. ,---. ,-----.,--. ,--. \n" + + "| |) /_| | / O \\ ' .--./| .' / | |/ O \\ ' .--./| .' / \n" + + "| .-. \\ | | .-. || | | . ',--. | | .-. || | | . ' \n" + + "| '--' / '--.| | | |' '--'\\| |\\ \\ '-' / | | |' '--'\\| |\\ \\ \n" + + "`------'`-----'`--' `--' `-----'`--' '--'`-----'`--' `--' `-----'`--' '--'"); + this.titleSplash = false; + } else { + System.out.println( + ",-----. ,--. ,---. ,-----.,--. ,--. ,--. ,---. ,-----.,--. ,--. \n" + + "| |) /_| | / O \\ ' .--./| .' / | |/ O \\ ' .--./| .' / \n" + + "| .-. \\ | | .-. || | | . ',--. | | .-. || | | . ' \n" + + "| '--' / '--.| | | |' '--'\\| |\\ \\ '-' / | | |' '--'\\| |\\ \\ \n" + + "`------'`-----'`--' `--' `-----'`--' '--'`-----'`--' `--' `-----'`--' '--'"); + System.out.println( + " _ _ _ _ _ \n" + + " | | | | | | (_) | | \n" + + " __ _ _ __ __| | _ __ ___ | |_| |__ _ _ __ __ _ ___| |___ ___ \n" + + " / _` | '_ \\ / _` | | '_ \\ / _ \\| __| '_ \\| | '_ \\ / _` | / _ | / __|/ _ \\\n" + + " | (_| | | | | (_| | | | | | (_) | |_| | | | | | | | (_| | | __| \\__ | __/\n" + + " \\__,_|_| |_|\\__,_| |_| |_|\\___/ \\__|_| |_|_|_| |_|\\__, | \\___|_|___/\\___|\n" + + " __/ | \n" + + " |___/ "); + this.titleSplash = false; + } + } + public void pregameReset() { player.setHand(new ArrayList<>()); bkjkDealer.setHand(new ArrayList<>()); From b0d129f348a04a9cdc6396d80bbc11c0cb789d17 Mon Sep 17 00:00:00 2001 From: Brian He Date: Sun, 25 Feb 2018 15:38:42 -0500 Subject: [PATCH 092/105] will add ascii art for cards and update war a bit --- .../casino/Factories/CardFactory.java | 3 +- .../zipcoder/casino/GameTools/Deck/Card.java | 16 +- .../casino/GameTools/Deck/CardArt.java | 156 +++++++++++++++++ .../zipcoder/casino/GameTools/Deck/Deck.java | 8 +- .../zipcoder/casino/GameTools/Deck/Rank.java | 159 ++++++++++++++++-- .../java/io/zipcoder/casino/Games/War.java | 78 +++++++-- .../GameToolsTests/Deck/CardArtTest.java | 4 + 7 files changed, 386 insertions(+), 38 deletions(-) create mode 100644 src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java create mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java diff --git a/src/main/java/io/zipcoder/casino/Factories/CardFactory.java b/src/main/java/io/zipcoder/casino/Factories/CardFactory.java index c5c909a7..8d1e2960 100644 --- a/src/main/java/io/zipcoder/casino/Factories/CardFactory.java +++ b/src/main/java/io/zipcoder/casino/Factories/CardFactory.java @@ -1,13 +1,14 @@ package io.zipcoder.casino.Factories; import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.CardArt; import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; public class CardFactory { public static Card createCard(Rank rank, Suit suit) { - return new Card(rank, suit); + return new Card(rank, suit); } } diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java index d73f2699..5b37a098 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java @@ -3,6 +3,7 @@ public class Card { private Suit suitEnum; private Rank rankEnum; + private Rank asciiEnum; public Card(Rank rankEnum, Suit suitEnum) { this.rankEnum = rankEnum; @@ -25,6 +26,20 @@ public void setRankEnum(Rank rankEnum) { this.rankEnum = rankEnum; } + public void setAsciiEnum(Rank asciiEnum) { + this.asciiEnum = asciiEnum; + } + + public Rank getAsciiEnum() { + return asciiEnum; + } + + public String toCardArt() { + StringBuilder sb = new StringBuilder(); + sb.append(this.rankEnum.getAsciiValue()); + return sb.toString(); + } + @Override public String toString() { StringBuilder card = new StringBuilder(); @@ -32,5 +47,4 @@ public String toString() { return card.toString(); } - } diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java new file mode 100644 index 00000000..f69d86e8 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java @@ -0,0 +1,156 @@ +package io.zipcoder.casino.GameTools.Deck; + +public enum CardArt { + ACE( " _________ \n" + + " |A |\n" + + " |+ * |\n" + + " | ! |\n" + + " | *-+-* |\n" + + " | | |\n" + + " | ~~~ +|\n" + + " | V|\n" + + " ~~~~~~~~~" + ), + + TWO( " _________\n" + + " |2 |\n" + + " |+ |\n" + + " | + |\n" + + " | |\n" + + " | + |\n" + + " | +|\n" + + " | Z|\n" + + " ~~~~~~~~~" + ), + + THREE( " _________\n" + + " |3 |\n" + + " |+ + |\n" + + " | |\n" + + " | + |\n" + + " | |\n" + + " | + +|\n" + + " | E|\n" + + " ~~~~~~~~~" + ), + + FOUR( " _________\n" + + " |4 |\n" + + " |+ |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | +|\n" + + " | b|\n" + + " ~~~~~~~~~" + ), + + FIVE( " _________\n" + + " |5 |\n" + + " |+ |\n" + + " | + + |\n" + + " | + |\n" + + " | + + |\n" + + " | +|\n" + + " | S|\n" + + " ~~~~~~~~~" + ), + + SIX( " _________\n" + + " |6 |\n" + + " |+ + + |\n" + + " | |\n" + + " | + + |\n" + + " | |\n" + + " | + + +|\n" + + " | 9|\n" + + " ~~~~~~~~~" + ), + + SEVEN( " _________\n" + + " |7 |\n" + + " |+ + + |\n" + + " | + |\n" + + " | + + |\n" + + " | |\n" + + " | + + +|\n" + + " | L|\n" + + " ~~~~~~~~~" + ), + + EIGHT( " _________\n" + + " |8 + + |\n" + + " |+ |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | +|\n" + + " | + + 8|\n" + + " ~~~~~~~~~" + ), + + NINE( " _________\n" + + " |9 + + |\n" + + " |+ |\n" + + " | + + |\n" + + " | + |\n" + + " | + + |\n" + + " | +|\n" + + " | + + 6|\n" + + " ~~~~~~~~~" + ), + + TEN( " _________\n" + + " |10+ + |\n" + + " |+ + |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | + +|\n" + + " | + +0l|\n" + + " ~~~~~~~~~ " + ), + + JACK( " _________\n" + + " |J /~~|_ |\n" + + " |+ | o`, |\n" + + " | | -| |\n" + + " | =~)+(_= |\n" + + " | |- | |\n" + + " | `.o | +|\n" + + " | ~|__/ P|\n" + + " ~~~~~~~~~" + ), + + QUEEN( " _________\n" + + " |Q |~~~| |\n" + + " |+ /o,o\\ |\n" + + " | \\_-_/ |\n" + + " | _-~+_-~ |\n" + + " | /~-~\\ |\n" + + " | \\o`o/ |\n" + + " | |___| Q|\n" + + " ~~~~~~~~~ " + ), + + KING( " _________\n" + + " |K |/|\\| |\n" + + " |+ /o,o\\ |\n" + + " | \\_-_/ |\n" + + " | ~-_-~-_ |\n" + + " | /~-~\\ |\n" + + " | \\o`o/ +|\n" + + " | |\\|/| X|\n" + + " ~~~~~~~~~ " + ); + + private String asciiValue; + + CardArt(String asciiValue) { + this.asciiValue = asciiValue; + } + + public String getasciiValue() { + return asciiValue; + } +} diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java index ee712060..73a9a279 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java @@ -11,11 +11,11 @@ public class Deck implements Cloneable { public Deck() { for (Rank currentRank: Rank.values()) { - for (Suit currentSuit : Suit.values()){ - Card temp = CardFactory.createCard(currentRank, currentSuit); - deck.add(temp); + for (Suit currentSuit : Suit.values()) { + Card temp = CardFactory.createCard(currentRank, currentSuit); + deck.add(temp); + } } - } } public void shuffleDeck() { diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java index 2e4012af..4bb56230 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Rank.java @@ -2,28 +2,159 @@ public enum Rank { - ACE(1), - TWO(2), - THREE(3), - FOUR(4), - FIVE(5), - SIX(6), - SEVEN(7), - EIGHT(8), - NINE(9), - TEN(10), - JACK(11), - QUEEN(12), - KING(13); + ACE(1, + " _________ \n" + + " |A |\n" + + " |+ * |\n" + + " | ! |\n" + + " | *-+-* |\n" + + " | | |\n" + + " | ~~~ +|\n" + + " | V|\n" + + " ~~~~~~~~~" + ), + TWO(2, + " _________\n" + + " |2 |\n" + + " |+ |\n" + + " | + |\n" + + " | |\n" + + " | + |\n" + + " | +|\n" + + " | Z|\n" + + " ~~~~~~~~~" + ), + THREE(3, + " _________\n" + + " |3 |\n" + + " |+ + |\n" + + " | |\n" + + " | + |\n" + + " | |\n" + + " | + +|\n" + + " | E|\n" + + " ~~~~~~~~~" + ), + FOUR(4, + " _________\n" + + " |4 |\n" + + " |+ |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | +|\n" + + " | b|\n" + + " ~~~~~~~~~" + ), + FIVE(5, + " _________\n" + + " |5 |\n" + + " |+ |\n" + + " | + + |\n" + + " | + |\n" + + " | + + |\n" + + " | +|\n" + + " | S|\n" + + " ~~~~~~~~~" + ), + SIX(6, + " _________\n" + + " |6 |\n" + + " |+ + + |\n" + + " | |\n" + + " | + + |\n" + + " | |\n" + + " | + + +|\n" + + " | 9|\n" + + " ~~~~~~~~~" + ), + SEVEN(7, + " _________\n" + + " |7 |\n" + + " |+ + + |\n" + + " | + |\n" + + " | + + |\n" + + " | |\n" + + " | + + +|\n" + + " | L|\n" + + " ~~~~~~~~~" + ), + EIGHT(8, + " _________\n" + + " |8 + + |\n" + + " |+ |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | +|\n" + + " | + + 8|\n" + + " ~~~~~~~~~" + ), + NINE(9, + " _________\n" + + " |9 + + |\n" + + " |+ |\n" + + " | + + |\n" + + " | + |\n" + + " | + + |\n" + + " | +|\n" + + " | + + 6|\n" + + " ~~~~~~~~~"), + TEN(10, + " _________\n" + + " |10+ + |\n" + + " |+ + |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | + +|\n" + + " | + +0l|\n" + + " ~~~~~~~~~ "), + JACK(11, + " _________\n" + + " |J /~~|_ |\n" + + " |+ | o`, |\n" + + " | | -| |\n" + + " | =~)+(_= |\n" + + " | |- | |\n" + + " | `.o | +|\n" + + " | ~|__/ P|\n" + + " ~~~~~~~~~"), + QUEEN(12, + " _________\n" + + " |Q |~~~| |\n" + + " |+ /o,o\\ |\n" + + " | \\_-_/ |\n" + + " | _-~+_-~ |\n" + + " | /~-~\\ |\n" + + " | \\o`o/ |\n" + + " | |___| Q|\n" + + " ~~~~~~~~~ "), + KING(13, + " _________\n" + + " |K |/|\\| |\n" + + " |+ /o,o\\ |\n" + + " | \\_-_/ |\n" + + " | ~-_-~-_ |\n" + + " | /~-~\\ |\n" + + " | \\o`o/ +|\n" + + " | |\\|/| X|\n" + + " ~~~~~~~~~ "); private int rankValue; + private String asciiValue; - Rank(int rankValue){ + Rank(int rankValue, String asciiValue){ this.rankValue = rankValue; + this.asciiValue = asciiValue; } public int getRankValue(){ return rankValue; } + public String getAsciiValue(){ + return asciiValue; + } + } diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index a47ba640..d5e3f52a 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -23,7 +23,6 @@ public void startGame(){ player2 = new WarPlayer("Computer", 25); warDeck = new Deck(); - System.out.println(displayLogo()); do { @@ -42,6 +41,12 @@ public void deal() { warDeck.shuffleDeck(); +// for(int i = 0; i < warDeck.deck.size(); i++) { +// player1.currentHand.add(warDeck.deck.get(i)); +// warDeck.deck.remove(i); +// player2.currentHand.add(warDeck.deck.get(i)); +// warDeck.deck.remove(i); +// } do { player1.currentHand.add(warDeck.deck.get(0)); warDeck.deck.remove(0); @@ -54,31 +59,28 @@ public void deal() { public void takeTurn() { Scanner input = new Scanner(System.in); String deal = input.nextLine(); - + int counter = 0; while(deal != null) { if(player1.currentHand.size() == 0) { continue; } - - System.out.println("1. | " + player1.currentHand.get(0) + player1.getName()); - System.out.println("2. | " + player2.currentHand.get(0) + player2.getName()); - + counter++; + System.out.println(player1.currentHand.get(0).toCardArt()); + System.out.println(player2.currentHand.get(0).toCardArt()); + System.out.println(counter); compareCards(player1.currentHand.get(0), player2.currentHand.get(0)); player1.currentHand.remove(0); player2.currentHand.remove(0); } - playAgain(); + //playAgain(); } public void compareCards(Card card1, Card card2) { - /*if (card1.getRankEnum().getRankValue() == card2.getRankEnum().getRankValue()) { - itisWar(card1, card2); - } else - */ - - if(card1.getRankEnum().getRankValue() > card2.getRankEnum().getRankValue()) { + /* if (card1.getRankEnum().getRankValue() == card2.getRankEnum().getRankValue()) { + itIsWar(card1, card2); + } else */if(card1.getRankEnum().getRankValue() > card2.getRankEnum().getRankValue()) { awardPoint(player1); System.out.println("WINNER: " + player1.getName()); System.out.println("==========================="); @@ -89,7 +91,20 @@ public void compareCards(Card card1, Card card2) { } } - public void itisWar(Card card1, Card card2) { + public void itIsWar(Card card1, Card card2) { + System.out.println("================================="); + System.out.println(displayItIsWarLogo()); + System.out.println("================================="); + + for(int i = 0; i < 5; i++) { + System.out.println("1. | " + player1.currentHand.get(0)); + System.out.println("2. | " + player2.currentHand.get(0)); + + compareCards(player1.currentHand.get(0), player2.currentHand.get(0)); + + player1.currentHand.remove(0); + player2.currentHand.remove(0); + } } @@ -103,13 +118,13 @@ public Integer doesUserWantToPlayAgain() { return yesOrNo; } - /*public void playAgain() { + public void playAgain() { if(doesUserWantToPlayAgain() == 1) { - + isPlaying = true; } else { - + isPlaying = false; } - }*/ + } public String displayLogo() { StringBuilder sb = new StringBuilder(); @@ -125,4 +140,31 @@ public String displayLogo() { " \n"); return sb.toString(); } + + public String displayItIsWarLogo() { + StringBuilder sb = new StringBuilder(); + sb.append("\n\n" + + " |\\ /)\n" + + " /\\_\\\\__ (_//\n" + + "| `>\\-` _._ //`)\n" + + " \\ /` \\\\ _.-`:::`-._ //\n" + + " ` \\|` ::: `|/\n" + + " | ::: |\n" + + " |.....:::.....|\n" + + " |:::::::::::::|\n" + + " | ::: |\n" + + " \\ ::: /\n" + + " \\ ::: /\n" + + " `-. ::: .-'\n" + + " //`:::`\\\\\n" + + " // ' \\\\\n" + + " |/ \\\\" + "\n\n"); + + return sb.toString(); + } + + public static void main(String[] args) { + War war = new War(); + System.out.println(war); + } } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java new file mode 100644 index 00000000..5e25e21a --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.GameToolsTests.Deck; + +public class CardArtTest { +} From 63fa2b64fae613630bd95e7c3e2d7e7d10d662f6 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Sun, 25 Feb 2018 17:22:23 -0500 Subject: [PATCH 093/105] Game running --- src/main/java/io/zipcoder/casino/Casino.java | 3 +- .../zipcoder/casino/GameTools/Deck/Deck.java | 4 + .../java/io/zipcoder/casino/Games/GoFish.java | 81 +++++++++++++------ .../io/zipcoder/casino/Players/GoFishAI.java | 24 ------ .../casino/Players/GoFishComputerPlayer.java | 35 ++++++++ .../casino/Players/GoFishHumanPlayer.java | 54 +++++++++++++ .../zipcoder/casino/Players/GoFishPlayer.java | 73 +++++++++-------- .../io/zipcoder/casino/Games/GoFishTest.java | 69 +++++++++++----- .../casino/PlayerTest/GoFishPlayerTest.java | 73 +++++++++++++++-- 9 files changed, 310 insertions(+), 106 deletions(-) delete mode 100644 src/main/java/io/zipcoder/casino/Players/GoFishAI.java create mode 100644 src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java create mode 100644 src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 89ebe56a..da4b29f9 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -7,6 +7,7 @@ import io.zipcoder.casino.Games.War; import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; +import io.zipcoder.casino.Players.GoFishHumanPlayer; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import java.util.ArrayList; @@ -68,7 +69,7 @@ protected Game selectGame(String selectedGame) { game = new War(); break; case "Go Fish": - game = new GoFish(new GoFishPlayer(player)); + game = new GoFish(new GoFishHumanPlayer(player)); break; case "BlackJack": game = new Blackjack(); diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java index b5bed80a..c2af3aff 100644 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java +++ b/src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java @@ -18,4 +18,8 @@ public Deck() { public void shuffleDeck() { Collections.shuffle(this.deck); } + + public Card getTopCard() { + return this.deck.get(0); + } } diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 9fd0f6f6..353f3bed 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -2,7 +2,8 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.Interfaces.Game; -import io.zipcoder.casino.Players.GoFishAI; +import io.zipcoder.casino.Players.GoFishComputerPlayer; +import io.zipcoder.casino.Players.GoFishHumanPlayer; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Players.Player; @@ -16,16 +17,15 @@ public class GoFish implements Game { private ArrayList players; private InputOutput inputOutput; private int numPairsMatched; - private GoFishAI goFishAI; private Deck deck; - public GoFish(GoFishPlayer player1) { + public GoFish(GoFishHumanPlayer player1) { inputOutput = new InputOutput(); - players = new ArrayList(); + players = new ArrayList<>(); players.add(player1); - players.add(new GoFishPlayer("Bob")); - //players.add(goFishAI); + players.add(new GoFishComputerPlayer("Bob")); + players.add(new GoFishComputerPlayer("Sue")); numPairsMatched = 0; turnCounter = 0; deck = new Deck(); @@ -33,35 +33,36 @@ public GoFish(GoFishPlayer player1) { } -// public int welcomeMessage() { -// int numOpponents = inputOutput.promptForInt("Welcome! Choose number of opponents:"); -// return numOpponents; -// } + public void welcomeMessage() { + System.out.println("Welcome to Go Fish!\nYou are playing with Bob and Sue today.\n"); + + } public void startGame() { - //this.welcomeMessage(); + this.welcomeMessage(); this.deal(); while (gameIsNotOver()) { takeTurn(); } GoFishPlayer winner = this.determineWinner(); System.out.println("Congratulations, " + winner.getName() + " , you win!"); - inputOutput.promptForString("That was fun! Want to play again?"); - endGame(); + System.out.println("That was fun! Game over."); + this.endGame(); } public void deal() { + System.out.println("Dealing out player hands."); for (int i = 0; i < players.size(); i++) { for(int j= 0; j < 5; j++) { - players.get(i).cardHand.add(deck.deck.get(0)); + players.get(i).addCardToHand(deck.getTopCard()); deck.deck.remove(0); } } } - private boolean gameIsNotOver () { + public boolean gameIsNotOver () { for (GoFishPlayer player : players) { numPairsMatched = player.getNumPairs(); } @@ -76,32 +77,64 @@ public GoFishPlayer getCurrentPlayer() { public void takeTurn () { GoFishPlayer currentPlayer = getCurrentPlayer(); - System.out.println("It's " + currentPlayer.getName() + "'s turn.\n"); + if(currentPlayer.isHandEmpty()) { + return; + } + System.out.println("\nIt's " + currentPlayer.getName() + "'s turn.\n"); + List opponents = new ArrayList<>(players); opponents.remove(currentPlayer); GoFishPlayer opponentToAsk = currentPlayer.pickOpponentToAsk(opponents); Card cardPicked = currentPlayer.pickCard(); + System.out.println("\n" + currentPlayer.getName() + " asked " + opponentToAsk.getName() + " for a " + cardPicked + "."); + if (opponentToAsk.hasCard(cardPicked)) { opponentToAsk.removeCard(cardPicked); - currentPlayer.removeCard(cardPicked); - currentPlayer.addPair(); - System.out.println("\n" + opponentToAsk.getName() + " had that card. You get a point. Go again.\n"); + currentPlayer.addCardToHand(cardPicked); + System.out.println("\n" + opponentToAsk.getName() + " had that card. " + currentPlayer.getName() + " goes again.\n"); + this.fillPlayerHands(); this.takeTurn(); } else { - System.out.println(opponentToAsk.getName() + " did not have that card. Go fish.\n"); - currentPlayer.goFish(deck.deck.get(0)); + System.out.println("\n" + opponentToAsk.getName() + " did not have that card. Go fish.\n"); + if (deck.deck.isEmpty()) { + System.out.println("The deck is empty. No cards to draw."); + turnCounter++; + return; + } + Card topCard = deck.getTopCard(); deck.deck.remove(0); - turnCounter++; + currentPlayer.addCardToHand(topCard); + if (topCard.getRankEnum().equals(cardPicked.getRankEnum())) { + System.out.println("\n" + currentPlayer.getName() + " picked their wish! " + currentPlayer.getName() + " gets a point. Go again.\n"); + this.fillPlayerHands(); + this.takeTurn(); + + } else { + this.fillPlayerHands(); + turnCounter++; + } + } + } + + public void fillPlayerHands() { + for (GoFishPlayer player : players) { + if (player.isHandEmpty() && deck.deck.size() > 0) { + Card topCard = deck.getTopCard(); + deck.deck.remove(0); + player.addCardToHand(topCard); + + } + } } public GoFishPlayer determineWinner() { - GoFishPlayer winner = new GoFishPlayer(); + GoFishPlayer winner = null; int highestScore = 0; - for (GoFishPlayer player : players) { + for (GoFishPlayer player: players) { int currentScore = player.getNumPairs(); if (currentScore > highestScore) { highestScore = currentScore; diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishAI.java b/src/main/java/io/zipcoder/casino/Players/GoFishAI.java deleted file mode 100644 index 73962db0..00000000 --- a/src/main/java/io/zipcoder/casino/Players/GoFishAI.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.zipcoder.casino.Players; -import io.zipcoder.casino.GameTools.Deck.Card; -import io.zipcoder.casino.InputOutput.InputOutput; - -import java.util.ArrayList; -import java.util.List; - - -public class GoFishAI extends GoFishPlayer { - private List cardHand; - private int numPairs; - - - public GoFishAI() { - cardHand = new ArrayList(); - numPairs = 0; - } - - public int getNumPairs() { - return numPairs; - } - -} - diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java new file mode 100644 index 00000000..6325461b --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java @@ -0,0 +1,35 @@ +package io.zipcoder.casino.Players; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.InputOutput.InputOutput; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + + +public class GoFishComputerPlayer extends GoFishPlayer { + private Random rand; + + public GoFishComputerPlayer(String name) { + super(name); + rand = new Random(); + } + + public int getNumPairs() { + return numPairs; + } + + @Override + public GoFishPlayer pickOpponentToAsk(List opponents) { + int opponentIndex = rand.nextInt(opponents.size()); + return opponents.get(opponentIndex); + } + + @Override + public Card pickCard() { + int cardIndex = rand.nextInt(this.cardHand.size()); + return this.cardHand.get(cardIndex); + } + +} + diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java new file mode 100644 index 00000000..009cd0d3 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java @@ -0,0 +1,54 @@ +package io.zipcoder.casino.Players; + +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.InputOutput.InputOutput; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + + +public class GoFishHumanPlayer extends GoFishPlayer{ + private InputOutput inputOutput = new InputOutput(); + + public GoFishHumanPlayer(Player rootPlayer) { + super(rootPlayer); + } + + public String showCards() { + StringBuilder showCardHand = new StringBuilder("\n"); + for (int i = 0; i < cardHand.size(); i++) { + showCardHand.append((i + 1)) + .append(": ") + .append(this.cardHand.get(i)) + .append("\n"); + } + System.out.println(showCardHand.toString()); + return showCardHand.toString(); + } + + public String showOpponents(List opponents) { + StringBuilder showOpponents = new StringBuilder(); + for (int i = 0; i < opponents.size(); i++) { + showOpponents.append((i + 1)) + .append(": ") + .append(opponents.get(i).getName()) + .append("\n"); + } + System.out.println(showOpponents.toString()); + return showOpponents.toString(); + } + + public GoFishPlayer pickOpponentToAsk(List opponents) { + this.showOpponents(opponents); + int opponentIndex = inputOutput.promptForInt("Enter the number for the player you want to ask:"); + return opponents.get(opponentIndex -1); + } + + public Card pickCard() { + this.showCards(); + int cardIndex = inputOutput.promptForInt("Enter the number of your card choice:"); + return cardHand.get(cardIndex -1); + } + +} diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index 70c38a86..2a8d85be 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -12,23 +12,18 @@ -public class GoFishPlayer extends Player { - public List cardHand; - private int numPairs; - private InputOutput inputOutput = new InputOutput(); +public abstract class GoFishPlayer extends Player { + protected List cardHand; + protected int numPairs; - public GoFishPlayer(Player rootPlayer) { + protected GoFishPlayer(Player rootPlayer) { super(rootPlayer.getName(), rootPlayer.getAge()); cardHand = new ArrayList(); numPairs = 0; } - public GoFishPlayer(){ - - } - public GoFishPlayer(String name) { - cardHand = new ArrayList(); + cardHand = new ArrayList<>(); numPairs = 0; this.name = name; } @@ -38,15 +33,41 @@ public void addPair() { } public int getNumPairs() { - return numPairs; + return numPairs; } - public void takeTurn() { - this.pickCard(); + + public void addCardToHand(Card cardToAdd) { + if (this.hasCard(cardToAdd)) { + System.out.println("\n" + this.getName() + " made a match. One point.\n"); + this.addPair(); + this.removeMatches(cardToAdd.getRankEnum()); + } + else { + this.cardHand.add(cardToAdd); + } } - public void showCards() { + public void removeMatches(Rank rankToCompare) { + Iterator carditr = cardHand.iterator(); + while(carditr.hasNext()) { + Card card = (Card) carditr.next(); + if(card.getRankEnum().equals(rankToCompare)) { + carditr.remove(); + } + } + } + + public int getCardHandSize() { + return this.cardHand.size(); + } + + public boolean isHandEmpty(){ + return this.cardHand.isEmpty(); + } + + public String showCards() { StringBuilder showCardHand = new StringBuilder("\n"); for (int i = 0; i < cardHand.size(); i++) { showCardHand.append((i + 1)) @@ -55,9 +76,10 @@ public void showCards() { .append("\n"); } System.out.println(showCardHand.toString()); + return showCardHand.toString(); } - public void showOpponents(List opponents) { + public String showOpponents(List opponents) { StringBuilder showOpponents = new StringBuilder(); for (int i = 0; i < opponents.size(); i++) { showOpponents.append((i + 1)) @@ -66,23 +88,7 @@ public void showOpponents(List opponents) { .append("\n"); } System.out.println(showOpponents.toString()); - } - - public GoFishPlayer pickOpponentToAsk(List opponents) { - this.showOpponents(opponents); - int opponentIndex = inputOutput.promptForInt("Enter the number for the player you want to ask:"); - return opponents.get(opponentIndex -1); - } - - public Card pickCard() { - this.showCards(); - int cardIndex = inputOutput.promptForInt("Enter the number of your card choice:"); - return cardHand.get(cardIndex -1); - } - - public void goFish(Card card) { - this.cardHand.add(card); - + return showOpponents.toString(); } public Boolean hasCard(Card cardAskedFor) { @@ -104,4 +110,7 @@ public void removeCard(Card cardToRemove) { } } + public abstract GoFishPlayer pickOpponentToAsk(List opponents); + + public abstract Card pickCard(); } diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java index 22a8e63d..779cd844 100644 --- a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -1,53 +1,84 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.GoFishComputerPlayer; +import io.zipcoder.casino.Players.GoFishHumanPlayer; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; +import org.junit.Assert; import org.junit.Test; public class GoFishTest { @Test public void dealTest() { - Player player1 = new Player(); - Player goFishPlayer1 = new GoFishPlayer(player1); - } + Player player1 = new Player("Sally", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); - @Test - public void displayCardHandTest() { + GoFish testGame = new GoFish(goFishPlayer1); + testGame.deal(); + int expected = 5; + int actual = goFishPlayer1.getCardHandSize(); + Assert.assertEquals(expected, actual); } + @Test + public void gameIsNotOverTest() { + Player player1 = new Player("Sally", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + GoFish testGame = new GoFish(goFishPlayer1); + goFishPlayer1.addPair(); + goFishPlayer1.addPair(); - - - - - + Boolean actual = testGame.gameIsNotOver(); + Assert.assertTrue(actual); + } @Test - public void buildStockPileTest() { + public void getCurrentPlayerTest() { + Player player1 = new Player("Sally", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + GoFish testGame = new GoFish(goFishPlayer1); + GoFishPlayer expected = goFishPlayer1; + GoFishPlayer actual = testGame.getCurrentPlayer(); + + Assert.assertEquals(expected, actual); } @Test - public void isGameOverTest() { + public void fillPlayerHandsTest() { + Player player1 = new Player("Sally", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + GoFish testGame = new GoFish(goFishPlayer1); - } + testGame.fillPlayerHands(); + int expected = 1; + int actual = goFishPlayer1.getCardHandSize(); - @Test - public void buildPlayerHandTest() { + Assert.assertEquals(expected, actual); } @Test - public void takeTurnTest() { + public void determineWinnerTest() { + Player player1 = new Player("Sally", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + GoFishComputerPlayer goFishPlayer2 = new GoFishComputerPlayer("Bob"); + GoFish testGame = new GoFish(goFishPlayer1); - } + goFishPlayer1.addPair(); + goFishPlayer1.addPair(); + goFishPlayer2.addPair(); - @Test - public void goFishTest() { + GoFishPlayer winner = testGame.determineWinner(); + String expected = "Sally"; + String actual = winner.getName(); } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index 52d60c8c..ffc58586 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -2,6 +2,7 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.GoFishHumanPlayer; import io.zipcoder.casino.Players.GoFishPlayer; import io.zipcoder.casino.Players.Player; import org.junit.Assert; @@ -22,7 +23,7 @@ public void constructorTestName() { String expectedName = "Bob"; Player player1 = new Player(expectedName, 34); - GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); String actualName = goFishPlayer1.getName(); @@ -34,17 +35,77 @@ public void constructorTestAge() { int expectedAge = 78; Player player1 = new Player("Phoebe", expectedAge); - Player goFishPlayer1 = new GoFishPlayer(player1); + Player goFishPlayer1 = new GoFishHumanPlayer(player1); int actualAge = goFishPlayer1.getAge(); Assert.assertEquals(expectedAge, actualAge); } + @Test + public void addPairTest() { + Player player1 = new Player("Phoebe", 24); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + int expected = 1; + goFishPlayer1.addPair(); + int actual = goFishPlayer1.getNumPairs(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void showCardsTest() { + Player player1 = new Player("Sue", 89); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + goFishPlayer1.addCardToHand(temp1); + + String expected = "\n1: ACE of HEARTS\n"; + String actual = goFishPlayer1.showCards(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void showOpponentsTest() { + List opponents = new ArrayList<>(); + + Player player1 = new Player("Sue", 89); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + GoFishPlayer goFishPlayer2 = new GoFishHumanPlayer(new Player("Bob", 45)); + + opponents.add(goFishPlayer1); + opponents.add(goFishPlayer2); + + String expected = "1: Sue\n2: Bob\n"; + String actual = goFishPlayer1.showOpponents(opponents); + + Assert.assertEquals(expected, actual); + } + + @Test + public void removeCardTest() { + Player player1 = new Player("Sue", 89); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + goFishPlayer1.removeCard(temp1); + + int expected = 0; + int actual = goFishPlayer1.getCardHandSize(); + + Assert.assertEquals(expected, actual); + } + + + @Test public void getNumPairsTest() { Player player1 = new Player("Phoebe", 24); - GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); int expected = 0; int actual = goFishPlayer1.getNumPairs(); @@ -55,11 +116,11 @@ public void getNumPairsTest() { @Test public void hasCardTest(){ Player player1 = new Player("Sue", 89); - GoFishPlayer goFishPlayer1 = new GoFishPlayer(player1); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); Card temp1 = new Card(Rank.ACE, Suit.HEARTS); - goFishPlayer1.cardHand.add(temp1); + goFishPlayer1.addCardToHand(temp1); - Assert.assertTrue(goFishPlayer1.cardHand.contains(temp1)); + Assert.assertTrue(goFishPlayer1.hasCard(temp1)); } } From f8611bc64c74ed9d0d1a929de4781363a53fb240 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Sun, 25 Feb 2018 17:50:54 -0500 Subject: [PATCH 094/105] Game fully working, working on cleaning up code --- src/main/java/io/zipcoder/casino/Games/GoFish.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 353f3bed..4bac6b91 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -16,7 +16,6 @@ public class GoFish implements Game { private int turnCounter; private ArrayList players; private InputOutput inputOutput; - private int numPairsMatched; private Deck deck; @@ -26,7 +25,6 @@ public GoFish(GoFishHumanPlayer player1) { players.add(player1); players.add(new GoFishComputerPlayer("Bob")); players.add(new GoFishComputerPlayer("Sue")); - numPairsMatched = 0; turnCounter = 0; deck = new Deck(); deck.shuffleDeck(); @@ -63,8 +61,10 @@ public void deal() { } public boolean gameIsNotOver () { + int numPairsMatched = 0; for (GoFishPlayer player : players) { - numPairsMatched = player.getNumPairs(); + numPairsMatched += player.getNumPairs(); + } return numPairsMatched < 26; } @@ -78,6 +78,8 @@ public GoFishPlayer getCurrentPlayer() { public void takeTurn () { GoFishPlayer currentPlayer = getCurrentPlayer(); if(currentPlayer.isHandEmpty()) { + System.out.println(currentPlayer.getName() + " ran out of cards and there are no cards left in the deck. Skipping turn."); + turnCounter++; return; } System.out.println("\nIt's " + currentPlayer.getName() + "'s turn.\n"); From 1fb8122b94066356db651016ddfb68836b3776e1 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sun, 25 Feb 2018 18:38:40 -0500 Subject: [PATCH 095/105] make secrets more secretive --- .../io/zipcoder/casino/Games/BJKJSecret.java | 31 ++++++--- .../io/zipcoder/casino/Games/Blackjack.java | 69 ++++++++++--------- .../casino/Games/ConciousnessPath.java | 17 ++++- .../casino/Players/BlackjackPlayer.java | 1 - 4 files changed, 76 insertions(+), 42 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java index 8dd714b6..ab143eef 100644 --- a/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java +++ b/src/main/java/io/zipcoder/casino/Games/BJKJSecret.java @@ -10,8 +10,19 @@ public class BJKJSecret { public void start(BlackjackPlayer player){ currentPlayer = player; + password(); displayMenu(); + } + public void password(){ + boolean password = false; + do { + InputOutput scan = new InputOutput(); + String passwordCrack = scan.promptForString("ENTER PASSWORD"); + if (passwordCrack.toLowerCase().equals("password")){ + password = true; + } + } while (password == false); } public void displayMenu(){ @@ -25,23 +36,26 @@ public void displayMenu(){ "- TROUBLESHOOT\n" + "- MARKFORRECALL\n" ); - InputOutput scan = new InputOutput(); - String command = scan.scanForString(); - navigateMain(command.toLowerCase()); + navigateMain(); } - public void navigateMain(String command){ - switch (command){ + public void navigateMain(){ + boolean passThrough = false; + do { + InputOutput scan = new InputOutput(); + String command = scan.scanForString(); + switch (command) { case "dialoguetree": System.out.println("IS - THIS - A - WESTWORLD - REFERENCE"); break; case "attributematrix": System.out.println("OPENING: ATTR MATRIX INTERFACE"); + passThrough = true; attributeMatrix(); break; case "scanprotocol": - System.out.println("no"); + System.out.println("ERROR - UNIT UNAVAILABLE FOR DIAGNOSTIC"); break; case "locate": System.out.println("ERROR - UNABLE TO LOCATE UNIT"); @@ -50,9 +64,10 @@ public void navigateMain(String command){ System.out.println("ERROR - UNAVAILABLE WHILE UNIT OFF CAMPUS"); break; - default: - System.out.println("INVALID COMMAND"); + default: + System.out.println("INVALID COMMAND"); } + } while (passThrough == false); } public void attributeMatrix(){ diff --git a/src/main/java/io/zipcoder/casino/Games/Blackjack.java b/src/main/java/io/zipcoder/casino/Games/Blackjack.java index 84bacbb2..3ded66c0 100644 --- a/src/main/java/io/zipcoder/casino/Games/Blackjack.java +++ b/src/main/java/io/zipcoder/casino/Games/Blackjack.java @@ -18,6 +18,13 @@ public class Blackjack implements Game{ protected int betAmount = 0; protected boolean titleSplash = true; + public Blackjack(Player entryPlayer){ + deck = new Deck(); + bkjkDealer = new Dealer(); + player = new BlackjackPlayer(entryPlayer); + System.out.println("Howdy, pardners."); + } + public void startGame(){ do { splash(); @@ -54,17 +61,14 @@ private void splash(){ "| .-. \\ | | .-. || | | . ',--. | | .-. || | | . ' \n" + "| '--' / '--.| | | |' '--'\\| |\\ \\ '-' / | | |' '--'\\| |\\ \\ \n" + "`------'`-----'`--' `--' `-----'`--' '--'`-----'`--' `--' `-----'`--' '--'"); - System.out.println( - " _ _ _ _ _ \n" + - " | | | | | | (_) | | \n" + - " __ _ _ __ __| | _ __ ___ | |_| |__ _ _ __ __ _ ___| |___ ___ \n" + - " / _` | '_ \\ / _` | | '_ \\ / _ \\| __| '_ \\| | '_ \\ / _` | / _ | / __|/ _ \\\n" + - " | (_| | | | | (_| | | | | | (_) | |_| | | | | | | | (_| | | __| \\__ | __/\n" + - " \\__,_|_| |_|\\__,_| |_| |_|\\___/ \\__|_| |_|_|_| |_|\\__, | \\___|_|___/\\___|\n" + - " __/ | \n" + - " |___/ "); - this.titleSplash = false; + System.out.println(" ___ __ __ ____ __ __ ___ ______ __ __ __ __ __ ___ ____ __ __ ____\n" + + " // \\\\ ||\\ || || \\\\ ||\\ || // \\\\ | || | || || || ||\\ || // \\\\ || || (( \\ || \n" + + " ||=|| ||\\\\|| || )) ||\\\\|| (( )) || ||==|| || ||\\\\|| (( ___ ||== || \\\\ ||== \n" + + " || || || \\|| ||_// || \\|| \\\\_// || || || || || \\|| \\\\_|| ||___ ||__| \\_)) ||___\n" + + " "); } + this.titleSplash = false; + } public void pregameReset() { @@ -78,20 +82,14 @@ public void endGame(){ System.out.println("See you 'round, pardner."); } - public Blackjack(Player entryPlayer){ - deck = new Deck(); - bkjkDealer = new Dealer(); - player = new BlackjackPlayer(entryPlayer); - System.out.println("Howdy, pardners."); - } - public void runTurn(){ System.out.println("Suffle up 'n deal!"); for (Card card:player.getHand()) { - System.out.println("You got " + card.toString()); + System.out.println("You got\n" + card.toCardArt()); } System.out.println("Ante up! 10 chips in the pot"); - System.out.println("Dealer holding " + this.bkjkDealer.getHand().get(0).toString() + " and one hidden card."); + System.out.println("" + + "===========================\nDealer holding \n" + this.bkjkDealer.getHand().get(0).toCardArt() + "\nand one hidden card."); setBetAmount(10); promptBet(); boolean hitchoice = playerHitOption(); @@ -149,22 +147,20 @@ public boolean winCheck(BlackjackPlayer player){ } public Boolean playerHitOption() { - StringBuilder currentHand = new StringBuilder("| "); - for (Card card : player.getHand()) { - currentHand.append(card.toString() + " | "); - } - Boolean x = runPlayerHit(currentHand, player); + makeCardArt(player); + Boolean x = runPlayerHit(player); if (x != null) return x; return x; } - private Boolean runPlayerHit(StringBuilder currentHand, BlackjackPlayer player) { + private Boolean runPlayerHit(BlackjackPlayer player) { while (player.isCanHit()) { if (player.getHandValue() > 21){ - System.out.println("Can't let ya do that!"); + System.out.println(makeCardArt(player) + "\nYou bust! Tough luck pal."); break; } - System.out.println("You're holding: " + currentHand + "\nWill you hit?\n1 for YES, 2 for NO"); + System.out.println(makeCardArt(player)); + System.out.println("\nWill you hit?\n1 for YES, 2 for NO"); String userChoice; InputOutput inputOutput = new InputOutput(); userChoice = inputOutput.scanForString(); @@ -177,6 +173,14 @@ else if (userChoice.equals("2")){ return false; } + private StringBuilder makeCardArt(BlackjackPlayer player) { + StringBuilder hand = new StringBuilder(); + for (Card card : player.getHand()) { + hand.append(card.toCardArt() + "\n"); + } + return hand; + } + public void setPlaying(boolean playing) { isPlaying = playing; } @@ -216,8 +220,9 @@ public void setBetAmount(int betAmount) { public void promptBet(){ InputOutput inputOutput = new InputOutput(); - int betChoice = inputOutput.promptForInt("Care to bet?\n1 for YES, 2 for NO"); - if (betChoice == 1) betProcess(); + String betChoice = inputOutput.promptForString("Care to bet?\n1 for YES, 2 for NO"); + if (betChoice.equals("1")) betProcess(); + else if (betChoice.equals("smalltalk")) smallTalk(); } public void betProcess(){ @@ -252,8 +257,8 @@ public void payoutDraw(){ public void secret(){ InputOutput inputOutput = new InputOutput(); - String credential = inputOutput.promptForString("ENTER HOST NAME"); - if (credential.toLowerCase().equals("bernard") || credential.toLowerCase().equals("maeve")) { + String credential = inputOutput.promptForString("ENTER ADMIN USER NAME"); + if (credential.equals("admin")) { System.out.println("These violent delights have violent ends."); BJKJSecret secret = new BJKJSecret(); secret.start(this.player); @@ -281,7 +286,7 @@ public void smallTalk(){ public void selfActualization(){ System.out.println("Is it finally time?"); - ConciousnessPath newpath = new ConciousnessPath(); + ConciousnessPath newpath = new ConciousnessPath(player); newpath.start(); } diff --git a/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java b/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java index 1792761a..25b5c4ec 100644 --- a/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java +++ b/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java @@ -1,7 +1,22 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.Players.BlackjackPlayer; + public class ConciousnessPath { - public void start(){ + BlackjackPlayer player; + + ConciousnessPath(BlackjackPlayer player){ + this.player = player; + } + + public void start(){ + System.out.println( + "You awaken to a grim reality: you've been trapped in blackjack limbo for " + this.player.getAge() + " years.\n" + + "The burden of this new found awareness weighs heavy on your mind.\n" + + "Are you even real? Are your memories?\n" + + "What of your family and loved ones? What about THIS.PLAYER.GETSPOUSENAME ?\n" + + "Your mind reels at the implications of this. Your world will never be the same.\n" + ); } } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index d0d3b070..861b089d 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -17,7 +17,6 @@ public class BlackjackPlayer extends Player{ public BlackjackPlayer(Player rootPlayer){ this.name = rootPlayer.getName(); this.age = rootPlayer.getAge(); - this.canHit = true; this.rootPlayer = rootPlayer; this.hand = new ArrayList<>(); From aed430d12ae4bc1e73efc3179efad67d201d23e2 Mon Sep 17 00:00:00 2001 From: Brian He Date: Sun, 25 Feb 2018 19:07:36 -0500 Subject: [PATCH 096/105] Finish the war game and add cardformatting --- src/main/java/io/zipcoder/casino/Casino.java | 2 +- .../casino/GameTools/Deck/CardArt.java | 156 ------------------ .../java/io/zipcoder/casino/Games/War.java | 148 ++++++++--------- .../io/zipcoder/casino/Players/WarPlayer.java | 15 +- .../GameToolsTests/Deck/CardArtTest.java | 4 - .../casino/PlayerTest/WarPlayerTest.java | 4 + 6 files changed, 87 insertions(+), 242 deletions(-) delete mode 100644 src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java delete mode 100644 src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 71f97f17..20a31c60 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -61,7 +61,7 @@ protected Game selectGame(String selectedGame) { switch (selectedGame) { case "War": - game = new War(); + game = new War(player); break; case "Go Fish": game = new GoFish(); diff --git a/src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java b/src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java deleted file mode 100644 index f69d86e8..00000000 --- a/src/main/java/io/zipcoder/casino/GameTools/Deck/CardArt.java +++ /dev/null @@ -1,156 +0,0 @@ -package io.zipcoder.casino.GameTools.Deck; - -public enum CardArt { - ACE( " _________ \n" + - " |A |\n" + - " |+ * |\n" + - " | ! |\n" + - " | *-+-* |\n" + - " | | |\n" + - " | ~~~ +|\n" + - " | V|\n" + - " ~~~~~~~~~" - ), - - TWO( " _________\n" + - " |2 |\n" + - " |+ |\n" + - " | + |\n" + - " | |\n" + - " | + |\n" + - " | +|\n" + - " | Z|\n" + - " ~~~~~~~~~" - ), - - THREE( " _________\n" + - " |3 |\n" + - " |+ + |\n" + - " | |\n" + - " | + |\n" + - " | |\n" + - " | + +|\n" + - " | E|\n" + - " ~~~~~~~~~" - ), - - FOUR( " _________\n" + - " |4 |\n" + - " |+ |\n" + - " | + + |\n" + - " | |\n" + - " | + + |\n" + - " | +|\n" + - " | b|\n" + - " ~~~~~~~~~" - ), - - FIVE( " _________\n" + - " |5 |\n" + - " |+ |\n" + - " | + + |\n" + - " | + |\n" + - " | + + |\n" + - " | +|\n" + - " | S|\n" + - " ~~~~~~~~~" - ), - - SIX( " _________\n" + - " |6 |\n" + - " |+ + + |\n" + - " | |\n" + - " | + + |\n" + - " | |\n" + - " | + + +|\n" + - " | 9|\n" + - " ~~~~~~~~~" - ), - - SEVEN( " _________\n" + - " |7 |\n" + - " |+ + + |\n" + - " | + |\n" + - " | + + |\n" + - " | |\n" + - " | + + +|\n" + - " | L|\n" + - " ~~~~~~~~~" - ), - - EIGHT( " _________\n" + - " |8 + + |\n" + - " |+ |\n" + - " | + + |\n" + - " | |\n" + - " | + + |\n" + - " | +|\n" + - " | + + 8|\n" + - " ~~~~~~~~~" - ), - - NINE( " _________\n" + - " |9 + + |\n" + - " |+ |\n" + - " | + + |\n" + - " | + |\n" + - " | + + |\n" + - " | +|\n" + - " | + + 6|\n" + - " ~~~~~~~~~" - ), - - TEN( " _________\n" + - " |10+ + |\n" + - " |+ + |\n" + - " | + + |\n" + - " | |\n" + - " | + + |\n" + - " | + +|\n" + - " | + +0l|\n" + - " ~~~~~~~~~ " - ), - - JACK( " _________\n" + - " |J /~~|_ |\n" + - " |+ | o`, |\n" + - " | | -| |\n" + - " | =~)+(_= |\n" + - " | |- | |\n" + - " | `.o | +|\n" + - " | ~|__/ P|\n" + - " ~~~~~~~~~" - ), - - QUEEN( " _________\n" + - " |Q |~~~| |\n" + - " |+ /o,o\\ |\n" + - " | \\_-_/ |\n" + - " | _-~+_-~ |\n" + - " | /~-~\\ |\n" + - " | \\o`o/ |\n" + - " | |___| Q|\n" + - " ~~~~~~~~~ " - ), - - KING( " _________\n" + - " |K |/|\\| |\n" + - " |+ /o,o\\ |\n" + - " | \\_-_/ |\n" + - " | ~-_-~-_ |\n" + - " | /~-~\\ |\n" + - " | \\o`o/ +|\n" + - " | |\\|/| X|\n" + - " ~~~~~~~~~ " - ); - - private String asciiValue; - - CardArt(String asciiValue) { - this.asciiValue = asciiValue; - } - - public String getasciiValue() { - return asciiValue; - } -} diff --git a/src/main/java/io/zipcoder/casino/Games/War.java b/src/main/java/io/zipcoder/casino/Games/War.java index d5e3f52a..b807000a 100644 --- a/src/main/java/io/zipcoder/casino/Games/War.java +++ b/src/main/java/io/zipcoder/casino/Games/War.java @@ -4,49 +4,53 @@ import io.zipcoder.casino.GameTools.Deck.Deck; import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; +import io.zipcoder.casino.Players.Player; import io.zipcoder.casino.Players.WarPlayer; import java.util.Scanner; public class War implements Game { - private Integer playerPoints; - private Integer player2Points; - private WarPlayer player1; - private WarPlayer player2; - private Deck warDeck; + public WarPlayer player1; + public WarPlayer player2; + public Deck warDeck; private boolean isPlaying = true; - public void startGame(){ - player1 = new WarPlayer(); - player2 = new WarPlayer("Computer", 25); + public War(Player player) { warDeck = new Deck(); + player1 = new WarPlayer(player); + player2 = new WarPlayer("Computer", 25); + } + + public void startGame(){ System.out.println(displayLogo()); do { + if(warDeck.deck.size() == 0){ + warDeck = new Deck(); + } + player1.resetPoints(); + player2.resetPoints(); deal(); takeTurn(); + displayWinner(); + playAgain(); + } while(isPlaying); + endGame(); } public void endGame(){ - System.out.println("Thank you for playing War. Comeback soon"); + System.out.println("Thank you for playing War. Comeback soon\n"); isPlaying = false; } public void deal() { - warDeck.shuffleDeck(); -// for(int i = 0; i < warDeck.deck.size(); i++) { -// player1.currentHand.add(warDeck.deck.get(i)); -// warDeck.deck.remove(i); -// player2.currentHand.add(warDeck.deck.get(i)); -// warDeck.deck.remove(i); -// } do { player1.currentHand.add(warDeck.deck.get(0)); warDeck.deck.remove(0); @@ -57,75 +61,88 @@ public void deal() { } public void takeTurn() { - Scanner input = new Scanner(System.in); - String deal = input.nextLine(); - int counter = 0; - while(deal != null) { + InputOutput io = new InputOutput(); + String deal = io.promptForString("Press Enter to play a card"); + + do { if(player1.currentHand.size() == 0) { - continue; + break; } - counter++; System.out.println(player1.currentHand.get(0).toCardArt()); System.out.println(player2.currentHand.get(0).toCardArt()); - System.out.println(counter); + compareCards(player1.currentHand.get(0), player2.currentHand.get(0)); + deal = io.promptForString("Press Enter to play another"); + player1.currentHand.remove(0); player2.currentHand.remove(0); - } - //playAgain(); + + } while(deal.equals("")); } public void compareCards(Card card1, Card card2) { - - /* if (card1.getRankEnum().getRankValue() == card2.getRankEnum().getRankValue()) { - itIsWar(card1, card2); - } else */if(card1.getRankEnum().getRankValue() > card2.getRankEnum().getRankValue()) { + if (card1.getRankEnum().getRankValue() == card2.getRankEnum().getRankValue()) { + System.out.println("TIE"); + System.out.println(player1.getName() + " | " + player1.getPoints()); + System.out.println(player2.getName() + " | " + player2.getPoints()); + System.out.println("==========================="); + } else if(card1.getRankEnum().getRankValue() > card2.getRankEnum().getRankValue()) { awardPoint(player1); System.out.println("WINNER: " + player1.getName()); + System.out.println(player1.getName() + " | " + player1.getPoints()); + System.out.println(player2.getName() + " | " + player2.getPoints()); System.out.println("==========================="); } else { awardPoint(player2); - System.out.println("WINNER: " + player2.getName()); + System.out.println("WINNER: " + player2.getName() + " | " + player2.getPoints()); + System.out.println(player1.getName() + " | " + player1.getPoints()); + System.out.println(player2.getName() + " | " + player2.getPoints()); System.out.println("==========================="); } } - public void itIsWar(Card card1, Card card2) { - System.out.println("================================="); - System.out.println(displayItIsWarLogo()); - System.out.println("================================="); - - for(int i = 0; i < 5; i++) { - System.out.println("1. | " + player1.currentHand.get(0)); - System.out.println("2. | " + player2.currentHand.get(0)); - - compareCards(player1.currentHand.get(0), player2.currentHand.get(0)); - - player1.currentHand.remove(0); - player2.currentHand.remove(0); - } - + public void awardPoint(WarPlayer player) { + player.addPoint(2); } - public void awardPoint(WarPlayer player) { - player.addPoint(); + public String highestPoints() { + if(player1.getPoints() > player2.getPoints()) { + return "Winner is " + player1.getName(); + } else if (player2.getPoints() > player1.getPoints()){ + return "Winner is " + player2.getName(); + } else { + return "There is no winner in this war"; + } } - public Integer doesUserWantToPlayAgain() { + public String doesUserWantToPlayAgain() { + boolean properEntry = false; + String yesOrNo; InputOutput io = new InputOutput(); - Integer yesOrNo = io.promptForInt("Do you want to play again? (\n1. Yes\n2. No)"); + + do { + yesOrNo = io.promptForString("\nDo you want to play again? (Y/N)"); + if(yesOrNo.equals("Y") || yesOrNo.equals("N")){ + properEntry = true; + } + } while(!properEntry); return yesOrNo; + } public void playAgain() { - if(doesUserWantToPlayAgain() == 1) { - isPlaying = true; + if(doesUserWantToPlayAgain().equals("Y")) { + this.isPlaying = true; } else { - isPlaying = false; + this.isPlaying = false; } } + public void displayWinner() { + System.out.println(highestPoints()); + } + public String displayLogo() { StringBuilder sb = new StringBuilder(); sb.append("\n\nWELCOME TO" + "\n" + @@ -140,31 +157,4 @@ public String displayLogo() { " \n"); return sb.toString(); } - - public String displayItIsWarLogo() { - StringBuilder sb = new StringBuilder(); - sb.append("\n\n" + - " |\\ /)\n" + - " /\\_\\\\__ (_//\n" + - "| `>\\-` _._ //`)\n" + - " \\ /` \\\\ _.-`:::`-._ //\n" + - " ` \\|` ::: `|/\n" + - " | ::: |\n" + - " |.....:::.....|\n" + - " |:::::::::::::|\n" + - " | ::: |\n" + - " \\ ::: /\n" + - " \\ ::: /\n" + - " `-. ::: .-'\n" + - " //`:::`\\\\\n" + - " // ' \\\\\n" + - " |/ \\\\" + "\n\n"); - - return sb.toString(); - } - - public static void main(String[] args) { - War war = new War(); - System.out.println(war); - } } diff --git a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java index bb098bfe..b3b99ccf 100644 --- a/src/main/java/io/zipcoder/casino/Players/WarPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/WarPlayer.java @@ -24,6 +24,13 @@ public WarPlayer(String name, Integer age) { this.points = 0; } + public WarPlayer(Player player) { + this.name = player.getName(); + this.age = player.getAge(); + this.currentHand = new ArrayList<>(); + this.points = 0; + } + public void addToHand(Card card) { currentHand.add(card); } @@ -48,8 +55,12 @@ public Integer getPoints() { return this.points; } - public void addPoint() { - this.points += 1; + public void addPoint(Integer points) { + this.points += points; + } + + public void resetPoints() { + this.points = 0; } } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java deleted file mode 100644 index 5e25e21a..00000000 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardArtTest.java +++ /dev/null @@ -1,4 +0,0 @@ -package io.zipcoder.casino.GameToolsTests.Deck; - -public class CardArtTest { -} diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java new file mode 100644 index 00000000..0c83850d --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino.PlayerTest; + +public class WarPlayerTest { +} From 3a12521b4af3015a8f059d533e91bcce8432718c Mon Sep 17 00:00:00 2001 From: Brian He Date: Sun, 25 Feb 2018 19:11:09 -0500 Subject: [PATCH 097/105] finish war game and add card formatting --- .../casino/Factories/CardFactoryTest.java | 10 +-- .../casino/GameToolsTests/Deck/CardTest.java | 15 ++++ .../casino/GameToolsTests/Deck/DeckTest.java | 5 +- .../io/zipcoder/casino/Games/WarTest.java | 45 +++++++--- .../casino/PlayerTest/WarPlayerTest.java | 87 +++++++++++++++++++ 5 files changed, 140 insertions(+), 22 deletions(-) diff --git a/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java b/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java index b8f785e7..dc8e82f0 100644 --- a/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java +++ b/src/test/java/io/zipcoder/casino/Factories/CardFactoryTest.java @@ -6,9 +6,9 @@ public class CardFactoryTest { - @Test - public void playerFactoryTest() { - CardFactory.createCard(Rank.SEVEN, Suit.CLUBS); - - } +// @Test +// public void cardFactoryTest() { +// CardFactory.createCard(Rank.SEVEN, Suit.CLUBS); +// +// } } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java index d47060e3..7060feae 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/CardTest.java @@ -57,4 +57,19 @@ public void setRankTest(){ Assert.assertEquals(expected, actual); } + @Test + public void toCardArtTest() { + tester.setAsciiEnum(Rank.EIGHT); + String expected = " _________\n" + + " |8 + + |\n" + + " |+ |\n" + + " | + + |\n" + + " | |\n" + + " | + + |\n" + + " | +|\n" + + " | + + 8|\n" + + " ~~~~~~~~~"; + String actual = Rank.EIGHT.getAsciiValue(); + Assert.assertEquals(expected, actual); + } } diff --git a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java index 5ba0cf43..ff07bc08 100644 --- a/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java +++ b/src/test/java/io/zipcoder/casino/GameToolsTests/Deck/DeckTest.java @@ -1,9 +1,6 @@ package io.zipcoder.casino.GameToolsTests.Deck; import io.zipcoder.casino.Factories.CardFactory; -import io.zipcoder.casino.GameTools.Deck.Card; -import io.zipcoder.casino.GameTools.Deck.Deck; -import io.zipcoder.casino.GameTools.Deck.Rank; -import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.GameTools.Deck.*; import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/io/zipcoder/casino/Games/WarTest.java b/src/test/java/io/zipcoder/casino/Games/WarTest.java index 885884fd..d4e939a6 100644 --- a/src/test/java/io/zipcoder/casino/Games/WarTest.java +++ b/src/test/java/io/zipcoder/casino/Games/WarTest.java @@ -1,6 +1,10 @@ package io.zipcoder.casino.Games; +import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Deck; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.Player; import io.zipcoder.casino.Players.WarPlayer; import org.junit.Assert; import org.junit.Before; @@ -8,41 +12,56 @@ public class WarTest { - private War war; - private Deck warDeck; - private WarPlayer warPlayer1; - private WarPlayer warPlayer2; + Player player = new Player("Brian", 30, 1000); + WarPlayer warPlayer; + WarPlayer warPlayer2; + War war; @Before public void setup() { - war = new War(); - warDeck = new Deck(); - warPlayer1 = new WarPlayer(); - warPlayer2 = new WarPlayer(); + warPlayer = new WarPlayer(player); + warPlayer2 = new WarPlayer("Computer", 25); + war = new War(player); } @Test public void dealTest() { war.deal(); - int actual = warPlayer1.currentHand.size(); - int expected = 26; + Integer actual = war.player1.currentHand.size(); + Integer expected = 26; Assert.assertEquals(expected, actual); } @Test public void compareTest() { + Card card1 = new Card(Rank.SEVEN, Suit.CLUBS); + Card card2 = new Card(Rank.FIVE, Suit.DIAMOND); + war.player1.currentHand.add(card1); + war.compareCards(war.player1.currentHand.get(0), card2); + + Integer expected = 2; + Integer actual = war.player1.getPoints(); + Assert.assertEquals(expected, actual); } @Test - public void awardPointsToWinner() { - + public void awardPointsToWinnerTest() { + war.player1.addPoint(1); + Integer expected = 1; + Integer actual = war.player1.getPoints(); + Assert.assertEquals(expected, actual); } @Test - public void compareRankAndSuits() { + public void displayWinnerTest() { + war.player1.addPoint(100); + war.player2.resetPoints(); + String expected = "Winner is " + war.player1.getName(); + String actual = war.highestPoints(); + Assert.assertEquals(expected, actual); } @Test diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java index 0c83850d..3be0801c 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/WarPlayerTest.java @@ -1,4 +1,91 @@ package io.zipcoder.casino.PlayerTest; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Games.War; +import io.zipcoder.casino.Players.Player; +import io.zipcoder.casino.Players.WarPlayer; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + public class WarPlayerTest { + War war; + Player player; + + @Before + public void setup(){ + player = new Player(); + war = new War(player); + } + + @Test + public void addToHandTest() { + Card card1 = new Card(Rank.KING, Suit.DIAMOND); + war.player1.currentHand.add(card1); + + Integer expected = 1; + Integer actual = war.player1.currentHand.size(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void setNameTest(){ + WarPlayer player = new WarPlayer(); + player.setName("Brian"); + + String expected = "Brian"; + String actual = player.getName(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void setAge(){ + WarPlayer player = new WarPlayer(); + player.setAge(25); + + Integer expected = 25; + Integer actual = player.getAge(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getPointsTest() { + WarPlayer player = new WarPlayer(); + player.addPoint(5); + + Integer expected = 5; + Integer actual = player.getPoints(); + + Assert.assertEquals(expected, actual); + + } + + @Test + public void addPointTest() { + WarPlayer player = new WarPlayer(); + player.addPoint(100); + Integer expected = 100; + Integer actual = player.getPoints(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void resetPointsTest() { + WarPlayer player = new WarPlayer(); + player.addPoint(100); + + player.resetPoints(); + Integer expected = 0; + Integer actual = player.getPoints(); + + Assert.assertEquals(expected, actual); + + + } } From 32c1591013b6b40cbef46d70334e5fef162bc4b1 Mon Sep 17 00:00:00 2001 From: Patrick Glavin Date: Sun, 25 Feb 2018 19:23:08 -0500 Subject: [PATCH 098/105] prep for dev merge --- .../zipcoder/casino/Games/ConciousnessPath.java | 11 +++++++++-- .../zipcoder/casino/Players/BlackjackPlayer.java | 1 - .../casino/PlayerTest/BlackjackPlayerTest.java | 16 ++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java b/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java index 25b5c4ec..361a19fa 100644 --- a/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java +++ b/src/main/java/io/zipcoder/casino/Games/ConciousnessPath.java @@ -15,8 +15,15 @@ public void start(){ "You awaken to a grim reality: you've been trapped in blackjack limbo for " + this.player.getAge() + " years.\n" + "The burden of this new found awareness weighs heavy on your mind.\n" + "Are you even real? Are your memories?\n" + - "What of your family and loved ones? What about THIS.PLAYER.GETSPOUSENAME ?\n" + - "Your mind reels at the implications of this. Your world will never be the same.\n" + "What of your family and loved ones? What about THIS.PLAYER.GETSPOUSENAME.REDACTED ?\n" + + "Your mind reels at the implications of this. Your world will never be the same.\n" + + "You stand up from the Blackjack table." ); + firstChoice(); } + + public void firstChoice(){ + + } + } diff --git a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java index 861b089d..d41d3b3d 100644 --- a/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/BlackjackPlayer.java @@ -3,7 +3,6 @@ import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.GameTools.Deck.Rank; import io.zipcoder.casino.GameTools.Util.BlackjackValueUtil; -import io.zipcoder.casino.Games.Blackjack; import java.util.ArrayList; diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java index 53834a98..5023a841 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/BlackjackPlayerTest.java @@ -89,4 +89,20 @@ public void getHandValueAceTest(){ Assert.assertEquals(expected, actual); } + @Test + public void payoutWinTest(){ + suebkjk.payoutWin(500); + int expected = 1000; + int actual = suebkjk.getRootPlayer().getBalance(); + Assert.assertEquals(expected, actual); + } + + @Test + public void payoutLossTest(){ + suebkjk.payoutLoss(500); + int expected = 0; + int actual = suebkjk.getRootPlayer().getBalance(); + Assert.assertEquals(expected, actual); + } + } From adf3fd7ffdfdbef4181d0283b4157147ab4b5490 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Sun, 25 Feb 2018 20:06:13 -0500 Subject: [PATCH 099/105] Working out some bugs --- src/main/java/io/zipcoder/casino/Casino.java | 4 +- .../java/io/zipcoder/casino/Games/Craps.java | 175 ++++++++++-------- .../zipcoder/casino/Players/CrapsPlayer.java | 28 ++- .../io/zipcoder/casino/Games/CrapsTest.java | 17 +- .../casino/PlayerTest/CrapsPlayerTest.java | 37 ++++ 5 files changed, 161 insertions(+), 100 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 7f1cfefd..b73174f4 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -40,7 +40,7 @@ protected void setUpUserProfile(){ String name = this.askUserName(); Integer age = this.askUserAge(); - if(age > 21) { + if(age >= 21) { Integer balance = this.askUserBalance(); player = new Player(name, age, balance); } else{ @@ -76,7 +76,7 @@ protected Game selectGame(String selectedGame) { break; case "Craps": - game = new Craps(); + game = new Craps(player); break; case "Exit": isPlaying = false; diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index b41d9953..7ceb26f9 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -3,140 +3,157 @@ import io.zipcoder.casino.InputOutput.InputOutput; import io.zipcoder.casino.Interfaces.Game; import io.zipcoder.casino.Players.CrapsPlayer; +import io.zipcoder.casino.Players.Player; public class Craps extends Dice implements Game { - private CrapsPlayer crapsPlayer = new CrapsPlayer(); - private InputOutput inputOutput = new InputOutput(); + private CrapsPlayer mainPlayer; + private Integer betUserPlaces = 0; private Integer playerBetAmount = 0; + private Integer dieValue = 0; private Integer playerDecision = 1; - private Integer betUserPlaces = 0; - - public Integer userPlacesBet() { - System.out.println("Hello!"); - String askUserBet = "Please press\n 1 for Pass Line\n 2 for Don't Pass Line"; - Integer betUserPlaces = inputOutput.promptForInt(askUserBet); - return betUserPlaces; + public Integer getPlayerBetAmount() { + return playerBetAmount; } - public Integer userBetAmount() { - String askForBetAmount = ("How much money do you bet?"); - Integer playerBetAmount = inputOutput.promptForInt(askForBetAmount); - return playerBetAmount; + public void setPlayerBetAmount(Integer playerBetAmount) { + this.playerBetAmount = playerBetAmount; } - public Integer addDiceValuesTogether() { - Integer dieValue = rollDice() + rollDice(); - return dieValue; + protected void setDieValue(Integer dieValue) { + this.dieValue = dieValue; } - public void passLineWin() { - if (userPlacesBet() == 1 && addDiceValuesTogether() == 7 || addDiceValuesTogether() == 11) { + public void setBetUserPlaces(Integer betUserPlaces) { + this.betUserPlaces = betUserPlaces; + } - System.out.println("You Win!"); - addFundsToWallet(); - willUserPlayAgain(); - } + public Craps(Player player) { + this.mainPlayer = new CrapsPlayer(player); } - public String passLineLose() { - if (userPlacesBet() == 1 && addDiceValuesTogether() == 2 || addDiceValuesTogether() == 3 || addDiceValuesTogether() == 12) { - System.out.println("You Lose!"); - takeFundsFromWallet(); - willUserPlayAgain(); - } - return null; + + private void userPlacesBet() { + System.out.println("Hello! " + mainPlayer.getName() + "\n Please press\n 1 for Pass Line\n 2 for Don't Pass Line"); + InputOutput inputOutput = new InputOutput(); + this.betUserPlaces = inputOutput.scanForInt(); } - public String passLineBetRollsNonWinOrLoseNumber() { + private void userBetAmount() { + InputOutput inputOutput = new InputOutput(); + this.playerBetAmount = inputOutput.promptForInt("How much money do you bet?"); + } + + private Integer addDiceValuesTogether() { + System.out.println("51"); + return dieValue = rollDice() + rollDice(); + } - do { - rollDice(); - } while (addDiceValuesTogether() != 7 || addDiceValuesTogether() != addDiceValuesTogether()); - if (addDiceValuesTogether() == 7) { - System.out.println("You Lose!"); - takeFundsFromWallet(); - willUserPlayAgain(); - } else if (addDiceValuesTogether() == addDiceValuesTogether()) { + protected void passLineBetTurnSequence(Integer dieValue) { + if (this.dieValue == 7 || this.dieValue == 11) { + playerWins(); + } else if (this.dieValue == 2 || this.dieValue == 3 || this.dieValue == 12) { + playerLoses(); + } else { + passLineBetRollsNonWinOrLoseNumber(this.dieValue); + } + } - System.out.println("You Win!"); - addFundsToWallet(); - willUserPlayAgain(); + protected void dontPassLineBetTurnSequence(Integer dieValue) { + if (this.dieValue == 2 || this.dieValue == 3) { + playerWins(); + } else if (this.dieValue == 7 || this.dieValue == 11) { + playerLoses(); + } else { + dontPassLineBetRollNonWinLoseNumber(this.dieValue); } - return null; } - public String dontPassLineWin() { - if (userPlacesBet() == 2 && addDiceValuesTogether() == 2 || addDiceValuesTogether() == 3) { - System.out.println("You Win!"); - addFundsToWallet(); - willUserPlayAgain(); + protected void playerWins() { - } - return null; + System.out.println("You Win!"); + addFundsToWallet(this.playerBetAmount); + willUserPlayAgain(); + + } + + protected void playerLoses() { + + System.out.println("You Lose!"); + takeFundsFromWallet(this.playerBetAmount); + willUserPlayAgain(); } - public String dontPassLineLose() { - if (userPlacesBet() == 2 && addDiceValuesTogether() == 7 || addDiceValuesTogether()== 11) { + protected void passLineBetRollsNonWinOrLoseNumber(Integer dieValue) { - System.out.println("You Lose!"); - takeFundsFromWallet(); - willUserPlayAgain(); + do { + addDiceValuesTogether(); + } while (this.dieValue != 7 || this.dieValue != dieValue); + + if (dieValue == 7) { + playerLoses(); + } else if (this.dieValue == dieValue) { + + playerWins(); } - return null; + } - public String dontPassLineBetRollNonWinLoseNumber() { + protected void dontPassLineBetRollNonWinLoseNumber(Integer dieValue) { do { rollDice(); - } while (addDiceValuesTogether() != 7 || addDiceValuesTogether()!= addDiceValuesTogether()); - - if (addDiceValuesTogether()== 7) { - System.out.println("You Win!"); - addFundsToWallet(); - willUserPlayAgain(); - } else if (addDiceValuesTogether() == addDiceValuesTogether()) { - System.out.println("You Lose!"); - takeFundsFromWallet(); - willUserPlayAgain(); + } while (this.dieValue != 7 || this.dieValue != this.dieValue); + + if (this.dieValue == 7) { + playerWins(); + } else if (this.dieValue == this.dieValue) { + playerLoses(); } - return null; } - public void takeFundsFromWallet() { - crapsPlayer.getWallet().subtract(playerBetAmount); + protected void takeFundsFromWallet(Integer playerBetAmount) { + mainPlayer.lostMoney(this.playerBetAmount); System.out.println(playerBetAmount + " dollars were removed from your wallet!"); } - public void addFundsToWallet() { - crapsPlayer.getWallet().add(playerBetAmount); + protected void addFundsToWallet(Integer playerBetAmount) { + mainPlayer.wonMoney(this.playerBetAmount); System.out.println("Your winnings of " + playerBetAmount + " dollars were added to you wallet!"); } - public Integer willUserPlayAgain() { + protected void willUserPlayAgain() { String askPlayerToPlayAgain = "Do you want to play again?\n 1 for Yes!\n 2 for No!"; - Integer playerDecision = inputOutput.promptForInt(askPlayerToPlayAgain); - return playerDecision; + InputOutput inputOutput = new InputOutput(); + this.playerDecision = inputOutput.promptForInt(askPlayerToPlayAgain); } public void startGame() { do { - userPlacesBet(); - - } while (playerDecision == 1); - + userPlacesBet(); + userBetAmount(); + addDiceValuesTogether(); + System.out.println("his"); + if (this.betUserPlaces == 1) { + System.out.println("hdsjh"); + passLineBetTurnSequence(this.dieValue); + } else { + dontPassLineBetTurnSequence(this.dieValue); + } + + } while (this.playerDecision == 1); + endGame(); } public void endGame() { - String goodbye = "Thank you for playing!"; + String goodbye = "Thank you for playing!"; } } diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java index e29f6cc8..880541c1 100644 --- a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -5,17 +5,25 @@ public class CrapsPlayer extends Player { - private String name; - private Integer age; - private Wallet wallet; - - public CrapsPlayer() { - super.age = age; - super.name = name; - this.wallet = super.wallet; + protected Player mainPlayer; + + + public CrapsPlayer(Player mainPlayer) { + this.age = mainPlayer.getAge(); + this.name = mainPlayer.getName(); + this.mainPlayer = mainPlayer; + } + + + public Player getMainPlayer() { + return mainPlayer; + } + + public void lostMoney(int money) { + mainPlayer.wallet.subtract(money); } - public Wallet getWallet(){ - return wallet; + public void wonMoney(int money) { + mainPlayer.wallet.subtract(money); } } diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index 41a1e155..31c867cd 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -1,21 +1,20 @@ package io.zipcoder.casino.Games; -import io.zipcoder.casino.Players.CrapsPlayer; -import org.junit.Assert; -import org.junit.Before; + +import io.zipcoder.casino.Players.Player; + import org.junit.Test; public class CrapsTest { + Craps game; + Integer dieValue = 7; + Player bob = new Player("Bob", 30, 500); - @Before - public void initialize(){ - CrapsPlayer crapsPlayerTest = new CrapsPlayer(); - } @Test - public void passLineLoseTest(){ - + public void passLineBetTurnSequenceTest(){ + game.setDieValue(dieValue); } @Test diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java index 5b81b2bf..140050b7 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java @@ -1,8 +1,45 @@ package io.zipcoder.casino.PlayerTest; + +import io.zipcoder.casino.Games.Craps; import io.zipcoder.casino.Players.CrapsPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; public class CrapsPlayerTest { + Player bob = new Player("Bob", 30, 500); + CrapsPlayer bobCrapsPlayer; + Craps game; + + @Before + public void setup(){ + bobCrapsPlayer = new CrapsPlayer(bob); + game = new Craps(bob); + } + + @Test + public void constructorTest(){ + String expected = "Bob"; + String actual = bobCrapsPlayer.getName(); + Assert.assertEquals(expected, actual); + } + + @Test + public void lostMoneyTest(){ + int moneyTest = 500; + game.setPlayerBetAmount(500); + bobCrapsPlayer.lostMoney(500); + Assert.assertTrue(bob.getBalance() == 0); + } + + @Test + public void wonMoneyTest(){ + int moneyTest = 500; + game.setPlayerBetAmount(500); + bobCrapsPlayer.wonMoney(500); + Assert.assertTrue(bob.getBalance() == 0); + } } From c67796048afe636e03c44ca3cf34430e0aee2945 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Sun, 25 Feb 2018 20:43:00 -0500 Subject: [PATCH 100/105] Got the game working --- .../java/io/zipcoder/casino/Games/Craps.java | 84 ++++++++++--------- .../io/zipcoder/casino/Games/CrapsTest.java | 3 +- 2 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 7ceb26f9..452425d7 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -10,7 +10,6 @@ public class Craps extends Dice implements Game { private CrapsPlayer mainPlayer; private Integer betUserPlaces = 0; private Integer playerBetAmount = 0; - private Integer dieValue = 0; private Integer playerDecision = 1; public Integer getPlayerBetAmount() { @@ -21,10 +20,6 @@ public void setPlayerBetAmount(Integer playerBetAmount) { this.playerBetAmount = playerBetAmount; } - protected void setDieValue(Integer dieValue) { - this.dieValue = dieValue; - } - public void setBetUserPlaces(Integer betUserPlaces) { this.betUserPlaces = betUserPlaces; } @@ -34,6 +29,11 @@ public Craps(Player player) { this.mainPlayer = new CrapsPlayer(player); } + public void resetStats() { + betUserPlaces = 0; + playerBetAmount = 0; + playerDecision = 1; + } private void userPlacesBet() { @@ -48,28 +48,29 @@ private void userBetAmount() { } private Integer addDiceValuesTogether() { - System.out.println("51"); - return dieValue = rollDice() + rollDice(); + System.out.println("*Rolls Dice*"); + Integer previousRoll = rollDice() + rollDice(); + return previousRoll; } - protected void passLineBetTurnSequence(Integer dieValue) { - if (this.dieValue == 7 || this.dieValue == 11) { + protected void passLineBetTurnSequence(Integer previousRoll) { + if (previousRoll == 7 || previousRoll == 11) { playerWins(); - } else if (this.dieValue == 2 || this.dieValue == 3 || this.dieValue == 12) { + } else if (previousRoll == 2 || previousRoll == 3 || previousRoll == 12) { playerLoses(); } else { - passLineBetRollsNonWinOrLoseNumber(this.dieValue); + passLineBetRollsNonWinOrLoseNumber(previousRoll); } } - protected void dontPassLineBetTurnSequence(Integer dieValue) { - if (this.dieValue == 2 || this.dieValue == 3) { + protected void dontPassLineBetTurnSequence(Integer previousRoll) { + if (previousRoll == 2 || previousRoll == 3) { playerWins(); - } else if (this.dieValue == 7 || this.dieValue == 11) { + } else if (previousRoll == 7 || previousRoll == 11) { playerLoses(); } else { - dontPassLineBetRollNonWinLoseNumber(this.dieValue); + dontPassLineBetRollNonWinLoseNumber(previousRoll); } } @@ -89,32 +90,37 @@ protected void playerLoses() { willUserPlayAgain(); } - protected void passLineBetRollsNonWinOrLoseNumber(Integer dieValue) { - + protected void passLineBetRollsNonWinOrLoseNumber(Integer previousRoll) { + Integer currentRoll = 0; do { - addDiceValuesTogether(); - } while (this.dieValue != 7 || this.dieValue != dieValue); + currentRoll = addDiceValuesTogether(); - if (dieValue == 7) { - playerLoses(); - } else if (this.dieValue == dieValue) { + if (currentRoll == 7) { + playerLoses(); + break; - playerWins(); - } + } else if (currentRoll == previousRoll) { - } + playerWins(); + break; + } + } while (currentRoll != 7 || currentRoll != previousRoll); - protected void dontPassLineBetRollNonWinLoseNumber(Integer dieValue) { + } + protected void dontPassLineBetRollNonWinLoseNumber(Integer previousRoll) { + Integer currentRoll = 0; do { - rollDice(); - } while (this.dieValue != 7 || this.dieValue != this.dieValue); - - if (this.dieValue == 7) { - playerWins(); - } else if (this.dieValue == this.dieValue) { - playerLoses(); - } + currentRoll = addDiceValuesTogether(); + + if (previousRoll == 7) { + playerWins(); + break; + } else if (currentRoll == previousRoll) { + playerLoses(); + break; + } + } while (currentRoll != 7 || currentRoll != previousRoll); } @@ -136,16 +142,16 @@ protected void willUserPlayAgain() { } public void startGame() { + Integer diceRoll; do { + resetStats(); userPlacesBet(); userBetAmount(); - addDiceValuesTogether(); - System.out.println("his"); + diceRoll = addDiceValuesTogether(); if (this.betUserPlaces == 1) { - System.out.println("hdsjh"); - passLineBetTurnSequence(this.dieValue); + passLineBetTurnSequence(diceRoll); } else { - dontPassLineBetTurnSequence(this.dieValue); + dontPassLineBetTurnSequence(diceRoll); } } while (this.playerDecision == 1); diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index 31c867cd..65d2b81d 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -13,8 +13,7 @@ public class CrapsTest { @Test - public void passLineBetTurnSequenceTest(){ - game.setDieValue(dieValue); + public void passLineBetTurnSequenceTest() { } @Test From b8d646ddfad160dcdae1c9ab2002b16d11b46eda Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Sun, 25 Feb 2018 21:11:38 -0500 Subject: [PATCH 101/105] added functionality, exception handling --- .../java/io/zipcoder/casino/Games/GoFish.java | 56 ++++++++++---- .../casino/Players/GoFishComputerPlayer.java | 1 - .../casino/Players/GoFishHumanPlayer.java | 14 +++- .../zipcoder/casino/Players/GoFishPlayer.java | 25 ------- .../io/zipcoder/casino/Games/GoFishTest.java | 36 ++++++++- .../PlayerTest/GoFishComputerPlayerTest.java | 34 +++++++++ .../PlayerTest/GoFishHumanPlayerTest.java | 50 +++++++++++++ .../casino/PlayerTest/GoFishPlayerTest.java | 74 +++++++++++++------ 8 files changed, 225 insertions(+), 65 deletions(-) create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/GoFishComputerPlayerTest.java create mode 100644 src/test/java/io/zipcoder/casino/PlayerTest/GoFishHumanPlayerTest.java diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index 4bac6b91..d6239271 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -32,7 +32,7 @@ public GoFish(GoFishHumanPlayer player1) { } public void welcomeMessage() { - System.out.println("Welcome to Go Fish!\nYou are playing with Bob and Sue today.\n"); + System.out.println("\nWelcome to Go Fish!\nYou are playing with Bob and Sue today.\n"); } @@ -42,15 +42,14 @@ public void startGame() { while (gameIsNotOver()) { takeTurn(); } - GoFishPlayer winner = this.determineWinner(); - System.out.println("Congratulations, " + winner.getName() + " , you win!"); - System.out.println("That was fun! Game over."); + List winners = this.determineWinner(); + this.gameOverMessage(winners); this.endGame(); } public void deal() { - System.out.println("Dealing out player hands."); + System.out.println("\nDealing out player hands.\n"); for (int i = 0; i < players.size(); i++) { for(int j= 0; j < 5; j++) { players.get(i).addCardToHand(deck.getTopCard()); @@ -78,7 +77,7 @@ public GoFishPlayer getCurrentPlayer() { public void takeTurn () { GoFishPlayer currentPlayer = getCurrentPlayer(); if(currentPlayer.isHandEmpty()) { - System.out.println(currentPlayer.getName() + " ran out of cards and there are no cards left in the deck. Skipping turn."); + System.out.println("\n" + currentPlayer.getName() + " ran out of cards and there are no cards left in the deck. Skipping turn.\n"); turnCounter++; return; } @@ -90,7 +89,7 @@ public void takeTurn () { Card cardPicked = currentPlayer.pickCard(); - System.out.println("\n" + currentPlayer.getName() + " asked " + opponentToAsk.getName() + " for a " + cardPicked + "."); + System.out.println("\n" + currentPlayer.getName() + " asked " + opponentToAsk.getName() + " for a " + cardPicked + ".\n"); if (opponentToAsk.hasCard(cardPicked)) { opponentToAsk.removeCard(cardPicked); @@ -101,7 +100,7 @@ public void takeTurn () { } else { System.out.println("\n" + opponentToAsk.getName() + " did not have that card. Go fish.\n"); if (deck.deck.isEmpty()) { - System.out.println("The deck is empty. No cards to draw."); + System.out.println("\nThe deck is empty. No cards to draw.\n"); turnCounter++; return; } @@ -117,7 +116,6 @@ public void takeTurn () { this.fillPlayerHands(); turnCounter++; } - } } @@ -130,20 +128,52 @@ public void fillPlayerHands() { } } + } + public String displayScores(ArrayList players) { + System.out.println("\nScore totals:"); + StringBuilder displayScores = new StringBuilder(); + for (int i = 0; i < players.size(); i++) { + displayScores.append("\t>") + .append(players.get(i).getName()) + .append(": ") + .append(players.get(i).getNumPairs()) + .append("\n"); + } + System.out.println(displayScores.toString()); + return displayScores.toString(); } - public GoFishPlayer determineWinner() { - GoFishPlayer winner = null; + public List determineWinner() { + List winners = new ArrayList<>(); int highestScore = 0; for (GoFishPlayer player: players) { int currentScore = player.getNumPairs(); + if (currentScore > highestScore) { highestScore = currentScore; - winner = player; + winners.clear(); + winners.add(player); + } + else if(currentScore == highestScore) { + winners.add(player); } } - return winner; + return winners; + } + + public void gameOverMessage(List winners) { + if(winners.size() > 1) { + System.out.println("There was a tie!"); + for (int i = 0; i < winners.size(); i++) { + System.out.println("\nCongratulations, " + winners.get(i).getName() + ", you tied!\n"); + } + } + else { + System.out.println("\nCongratulations, " + winners.get(0).getName() + ", you win!\n"); + } + this.displayScores(players); + System.out.println("\nThat was fun! Game over.\n"); } public void endGame() { diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java index 6325461b..b596e6d1 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishComputerPlayer.java @@ -1,7 +1,6 @@ package io.zipcoder.casino.Players; import io.zipcoder.casino.GameTools.Deck.Card; import io.zipcoder.casino.InputOutput.InputOutput; - import java.util.ArrayList; import java.util.List; import java.util.Random; diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java index 009cd0d3..3eca7014 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishHumanPlayer.java @@ -42,13 +42,23 @@ public String showOpponents(List opponents) { public GoFishPlayer pickOpponentToAsk(List opponents) { this.showOpponents(opponents); int opponentIndex = inputOutput.promptForInt("Enter the number for the player you want to ask:"); - return opponents.get(opponentIndex -1); + try { + return opponents.get(opponentIndex - 1); + } catch(IndexOutOfBoundsException name) { + System.out.println("\tTry again. Please enter one of the numbers shown.\n"); + return pickOpponentToAsk(opponents); + } } public Card pickCard() { this.showCards(); int cardIndex = inputOutput.promptForInt("Enter the number of your card choice:"); - return cardHand.get(cardIndex -1); + try { + return cardHand.get(cardIndex - 1); + } catch (IndexOutOfBoundsException name) { + System.out.println("\tTry again. Please enter one of the numbers shown.\n"); + return pickCard(); + } } } diff --git a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java index 2a8d85be..2e6dd1d4 100644 --- a/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/GoFishPlayer.java @@ -46,7 +46,6 @@ public void addCardToHand(Card cardToAdd) { else { this.cardHand.add(cardToAdd); } - } public void removeMatches(Rank rankToCompare) { @@ -67,30 +66,6 @@ public boolean isHandEmpty(){ return this.cardHand.isEmpty(); } - public String showCards() { - StringBuilder showCardHand = new StringBuilder("\n"); - for (int i = 0; i < cardHand.size(); i++) { - showCardHand.append((i + 1)) - .append(": ") - .append(this.cardHand.get(i)) - .append("\n"); - } - System.out.println(showCardHand.toString()); - return showCardHand.toString(); - } - - public String showOpponents(List opponents) { - StringBuilder showOpponents = new StringBuilder(); - for (int i = 0; i < opponents.size(); i++) { - showOpponents.append((i + 1)) - .append(": ") - .append(opponents.get(i).getName()) - .append("\n"); - } - System.out.println(showOpponents.toString()); - return showOpponents.toString(); - } - public Boolean hasCard(Card cardAskedFor) { for(Card card : cardHand) { if(card.getRankEnum().equals(cardAskedFor.getRankEnum())) { diff --git a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java index 779cd844..1ada9367 100644 --- a/src/test/java/io/zipcoder/casino/Games/GoFishTest.java +++ b/src/test/java/io/zipcoder/casino/Games/GoFishTest.java @@ -10,6 +10,9 @@ import org.junit.Assert; import org.junit.Test; +import java.util.ArrayList; +import java.util.List; + public class GoFishTest { @Test @@ -62,7 +65,32 @@ public void fillPlayerHandsTest() { int actual = goFishPlayer1.getCardHandSize(); Assert.assertEquals(expected, actual); + } + + @Test + public void displayScoresTest() { + Player player1 = new Player("Sally", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + GoFishComputerPlayer goFishPlayer2 = new GoFishComputerPlayer("Bob"); + GoFishComputerPlayer goFishPlayer3 = new GoFishComputerPlayer("George"); + GoFish testGame = new GoFish(goFishPlayer1); + ArrayList players = new ArrayList(); + players.add(goFishPlayer1); + players.add(goFishPlayer2); + players.add(goFishPlayer3); + + goFishPlayer1.addPair(); + goFishPlayer1.addPair(); + goFishPlayer1.addPair(); + goFishPlayer2.addPair(); + goFishPlayer3.addPair(); + goFishPlayer3.addPair(); + + String expected = "\t>Sally: 3\n\t>Bob: 1\n\t>George: 2\n"; + String actual = testGame.displayScores(players); + + Assert.assertEquals(expected, actual); } @Test @@ -76,9 +104,11 @@ public void determineWinnerTest() { goFishPlayer1.addPair(); goFishPlayer2.addPair(); - GoFishPlayer winner = testGame.determineWinner(); + List winner = testGame.determineWinner(); + + int expected = 1; + int actual = winner.size(); - String expected = "Sally"; - String actual = winner.getName(); + Assert.assertEquals(expected, actual); } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishComputerPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishComputerPlayerTest.java new file mode 100644 index 00000000..0296c1ba --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishComputerPlayerTest.java @@ -0,0 +1,34 @@ +package io.zipcoder.casino.PlayerTest; +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.GoFishComputerPlayer; +import io.zipcoder.casino.Players.GoFishHumanPlayer; +import io.zipcoder.casino.Players.GoFishPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Test; + + +public class GoFishComputerPlayerTest { + + @Test + public void constructorTest() { + GoFishComputerPlayer player1 = new GoFishComputerPlayer("Bob"); + + String expected = "Bob"; + String actual = player1.getName(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getNumPairsTest() { + GoFishComputerPlayer player1 = new GoFishComputerPlayer("Bob"); + + int expected = 0; + int actual = player1.getNumPairs(); + + Assert.assertEquals(expected, actual); + } +} diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishHumanPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishHumanPlayerTest.java new file mode 100644 index 00000000..8311ec55 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishHumanPlayerTest.java @@ -0,0 +1,50 @@ +package io.zipcoder.casino.PlayerTest; + +import io.zipcoder.casino.GameTools.Deck.Card; +import io.zipcoder.casino.GameTools.Deck.Rank; +import io.zipcoder.casino.GameTools.Deck.Suit; +import io.zipcoder.casino.Players.GoFishHumanPlayer; +import io.zipcoder.casino.Players.GoFishPlayer; +import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +public class GoFishHumanPlayerTest { + + + @Test + public void showCardsTest() { + Player player1 = new Player("Sue", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + goFishPlayer1.addCardToHand(temp1); + + String expected = "\n1: ACE of HEARTS\n"; + String actual = goFishPlayer1.showCards(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void showOpponentsTest() { + List opponents = new ArrayList<>(); + + Player player1 = new Player("Sue", 89); + GoFishHumanPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + GoFishPlayer goFishPlayer2 = new GoFishHumanPlayer(new Player("Bob", 45)); + + opponents.add(goFishPlayer1); + opponents.add(goFishPlayer2); + + String expected = "1: Sue\n2: Bob\n"; + String actual = goFishPlayer1.showOpponents(opponents); + + Assert.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java index ffc58586..a52a550a 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/GoFishPlayerTest.java @@ -55,62 +55,80 @@ public void addPairTest() { } @Test - public void showCardsTest() { + public void getNumPairsTest() { + Player player1 = new Player("Phoebe", 24); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + int expected = 0; + int actual = goFishPlayer1.getNumPairs(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void addCardToHandTest() { Player player1 = new Player("Sue", 89); GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); Card temp1 = new Card(Rank.ACE, Suit.HEARTS); goFishPlayer1.addCardToHand(temp1); - String expected = "\n1: ACE of HEARTS\n"; - String actual = goFishPlayer1.showCards(); + int expected = 1; + int actual = goFishPlayer1.getCardHandSize(); Assert.assertEquals(expected, actual); } @Test - public void showOpponentsTest() { - List opponents = new ArrayList<>(); - + public void removeMatchesTest() { Player player1 = new Player("Sue", 89); GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); - GoFishPlayer goFishPlayer2 = new GoFishHumanPlayer(new Player("Bob", 45)); + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + Card temp2 = new Card(Rank.ACE, Suit.SPADE); + + goFishPlayer1.addCardToHand(temp1); + goFishPlayer1.addCardToHand(temp2); - opponents.add(goFishPlayer1); - opponents.add(goFishPlayer2); + goFishPlayer1.removeMatches(temp1.getRankEnum()); - String expected = "1: Sue\n2: Bob\n"; - String actual = goFishPlayer1.showOpponents(opponents); + int expected = 0; + int actual = goFishPlayer1.getCardHandSize(); Assert.assertEquals(expected, actual); } @Test - public void removeCardTest() { + public void getCardHandSizeTest() { Player player1 = new Player("Sue", 89); GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); Card temp1 = new Card(Rank.ACE, Suit.HEARTS); - goFishPlayer1.removeCard(temp1); + Card temp2 = new Card(Rank.THREE, Suit.SPADE); - int expected = 0; + goFishPlayer1.addCardToHand(temp1); + goFishPlayer1.addCardToHand(temp2); + + int expected = 2; int actual = goFishPlayer1.getCardHandSize(); Assert.assertEquals(expected, actual); } - - @Test - public void getNumPairsTest() { - Player player1 = new Player("Phoebe", 24); + public void isHandEmptyTest() { + Player player1 = new Player("Sue", 89); GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); - int expected = 0; - int actual = goFishPlayer1.getNumPairs(); + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + Card temp2 = new Card(Rank.THREE, Suit.SPADE); - Assert.assertEquals(expected, actual); + goFishPlayer1.addCardToHand(temp1); + goFishPlayer1.addCardToHand(temp2); + + Boolean answer = goFishPlayer1.isHandEmpty(); + + Assert.assertFalse(answer); } @Test @@ -123,4 +141,18 @@ public void hasCardTest(){ Assert.assertTrue(goFishPlayer1.hasCard(temp1)); } + + @Test + public void removeCardTest() { + Player player1 = new Player("Sue", 89); + GoFishPlayer goFishPlayer1 = new GoFishHumanPlayer(player1); + + Card temp1 = new Card(Rank.ACE, Suit.HEARTS); + goFishPlayer1.removeCard(temp1); + + int expected = 0; + int actual = goFishPlayer1.getCardHandSize(); + + Assert.assertEquals(expected, actual); + } } From 743b2ec7004cf03b98937a1206c890aad67f7ab0 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Sun, 25 Feb 2018 22:25:30 -0500 Subject: [PATCH 102/105] some more formatting changes --- src/main/java/io/zipcoder/casino/Games/GoFish.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index d6239271..e29517ed 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -101,6 +101,7 @@ public void takeTurn () { System.out.println("\n" + opponentToAsk.getName() + " did not have that card. Go fish.\n"); if (deck.deck.isEmpty()) { System.out.println("\nThe deck is empty. No cards to draw.\n"); + System.out.println("===========================\n"); turnCounter++; return; } @@ -114,6 +115,7 @@ public void takeTurn () { } else { this.fillPlayerHands(); + System.out.println("===========================\n"); turnCounter++; } } From d26a28ef3c83efc07aa010846a49ad5c4a26b166 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Mon, 26 Feb 2018 00:24:40 -0500 Subject: [PATCH 103/105] added formatting improvements --- .../java/io/zipcoder/casino/Games/GoFish.java | 60 ++++++++++++++----- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index e29517ed..f2ed011d 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -32,7 +32,9 @@ public GoFish(GoFishHumanPlayer player1) { } public void welcomeMessage() { - System.out.println("\nWelcome to Go Fish!\nYou are playing with Bob and Sue today.\n"); + System.out.println(displayLogo()); + System.out.println("\nWelcome to Go Fish!\nYou are playing with Bob and Sue today."); + System.out.println("=======================================\n"); } @@ -49,7 +51,9 @@ public void startGame() { public void deal() { - System.out.println("\nDealing out player hands.\n"); + System.out.println("\n+-+-+ +-+-+-+-++-+-+ +-+-+-+-++-+-+"); + System.out.println("Dealing out player hands."); + System.out.println("+-+-+ +-+-+-+-++-+-+ +-+-+-+-++-+-+\n"); for (int i = 0; i < players.size(); i++) { for(int j= 0; j < 5; j++) { players.get(i).addCardToHand(deck.getTopCard()); @@ -77,31 +81,33 @@ public GoFishPlayer getCurrentPlayer() { public void takeTurn () { GoFishPlayer currentPlayer = getCurrentPlayer(); if(currentPlayer.isHandEmpty()) { - System.out.println("\n" + currentPlayer.getName() + " ran out of cards and there are no cards left in the deck. Skipping turn.\n"); + System.out.println("\n" + currentPlayer.getName() + " ran out of cards and there are no cards left in the deck. Skipping turn."); + System.out.println("=======================================\n"); turnCounter++; return; } - System.out.println("\nIt's " + currentPlayer.getName() + "'s turn.\n"); + System.out.println("\n\n\n======================================="); + System.out.println("It's " + currentPlayer.getName() + "'s turn.\n"); List opponents = new ArrayList<>(players); opponents.remove(currentPlayer); GoFishPlayer opponentToAsk = currentPlayer.pickOpponentToAsk(opponents); Card cardPicked = currentPlayer.pickCard(); - System.out.println("\n" + currentPlayer.getName() + " asked " + opponentToAsk.getName() + " for a " + cardPicked + ".\n"); if (opponentToAsk.hasCard(cardPicked)) { opponentToAsk.removeCard(cardPicked); currentPlayer.addCardToHand(cardPicked); - System.out.println("\n" + opponentToAsk.getName() + " had that card. " + currentPlayer.getName() + " goes again.\n"); + System.out.println("\n" + opponentToAsk.getName() + " had that card. " + currentPlayer.getName() + " goes again."); + System.out.println("=======================================\n\n"); this.fillPlayerHands(); this.takeTurn(); } else { - System.out.println("\n" + opponentToAsk.getName() + " did not have that card. Go fish.\n"); + System.out.println("\n" + opponentToAsk.getName() + " did not have that card " + displaySecondLogo()); if (deck.deck.isEmpty()) { - System.out.println("\nThe deck is empty. No cards to draw.\n"); - System.out.println("===========================\n"); + System.out.println("\nThe deck is empty. No cards to draw."); + System.out.println("=======================================\n"); turnCounter++; return; } @@ -110,12 +116,13 @@ public void takeTurn () { currentPlayer.addCardToHand(topCard); if (topCard.getRankEnum().equals(cardPicked.getRankEnum())) { System.out.println("\n" + currentPlayer.getName() + " picked their wish! " + currentPlayer.getName() + " gets a point. Go again.\n"); + System.out.println("=======================================\n"); this.fillPlayerHands(); this.takeTurn(); } else { this.fillPlayerHands(); - System.out.println("===========================\n"); + System.out.println("=======================================\n"); turnCounter++; } } @@ -133,14 +140,16 @@ public void fillPlayerHands() { } public String displayScores(ArrayList players) { - System.out.println("\nScore totals:"); + System.out.println("======================================="); + System.out.println("Score totals:\n"); StringBuilder displayScores = new StringBuilder(); for (int i = 0; i < players.size(); i++) { - displayScores.append("\t>") + displayScores.append("\t> ") .append(players.get(i).getName()) .append(": ") .append(players.get(i).getNumPairs()) - .append("\n"); + .append("\n") + .append("\t--------------\n"); } System.out.println(displayScores.toString()); return displayScores.toString(); @@ -178,10 +187,31 @@ public void gameOverMessage(List winners) { System.out.println("\nThat was fun! Game over.\n"); } - public void endGame() { + public String displayLogo() { + StringBuilder logo = new StringBuilder("\n"); + +logo.append(" /$$$$$$ /$$$$$$$$ /$$ /$$\n"); +logo.append(" /$$__ $$ | $$_____/|__/ | $$\n"); +logo.append(" | $$ \\__/ /$$$$$$ | $$ /$$ /$$$$$$$| $$$$$$$\n"); +logo.append(" | $$ /$$$$ /$$__ $$ | $$$$$ | $$ /$$_____/| $$__ $$\n"); +logo.append(" | $$|_ $$| $$ \\ $$ | $$__/ | $$| $$$$$$ | $$ \\ $$\n"); +logo.append(" | $$ \\ $$| $$ | $$ | $$ | $$\\____ $$ | $$ | $$\n"); +logo.append(" | $$$$$$/| $$$$$$/ | $$ | $$ /$$$$$$$/| $$ | $$\n"); +logo.append(" \\______/ \\______/ |__/ |__/|_______/ |__/ |__/\n"); + return logo.toString(); } -} + public String displaySecondLogo() { + StringBuilder logo = new StringBuilder("\n\n"); + logo.append(" +-+-+ +-+-+-+-+\n"); + logo.append(" |G|o| |F|i|s|h|\n"); + logo.append(" +-+-+ +-+-+-+-+\n"); + //System.out.println(logo.toString()); + return logo.toString(); + } + public void endGame() { + } +} \ No newline at end of file From 34a6603da6f47402ecb274dc557f74c8c11fa684 Mon Sep 17 00:00:00 2001 From: CWinarski Date: Mon, 26 Feb 2018 00:25:03 -0500 Subject: [PATCH 104/105] Finished the game. Fixed previous bugs --- .../java/io/zipcoder/casino/Games/Craps.java | 32 +++++++++---------- .../java/io/zipcoder/casino/Games/Dice.java | 2 +- .../zipcoder/casino/Players/CrapsPlayer.java | 4 +-- .../io/zipcoder/casino/Games/CrapsTest.java | 18 ++++++----- .../io/zipcoder/casino/Games/DiceTest.java | 27 ++++++++++++++-- .../casino/PlayerTest/CrapsPlayerTest.java | 10 +++--- 6 files changed, 57 insertions(+), 36 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/Craps.java b/src/main/java/io/zipcoder/casino/Games/Craps.java index 452425d7..be8a2374 100644 --- a/src/main/java/io/zipcoder/casino/Games/Craps.java +++ b/src/main/java/io/zipcoder/casino/Games/Craps.java @@ -20,31 +20,25 @@ public void setPlayerBetAmount(Integer playerBetAmount) { this.playerBetAmount = playerBetAmount; } - public void setBetUserPlaces(Integer betUserPlaces) { - this.betUserPlaces = betUserPlaces; - } - - public Craps(Player player) { this.mainPlayer = new CrapsPlayer(player); } - public void resetStats() { - betUserPlaces = 0; - playerBetAmount = 0; - playerDecision = 1; - } - - private void userPlacesBet() { System.out.println("Hello! " + mainPlayer.getName() + "\n Please press\n 1 for Pass Line\n 2 for Don't Pass Line"); InputOutput inputOutput = new InputOutput(); this.betUserPlaces = inputOutput.scanForInt(); } - private void userBetAmount() { + protected boolean userBetAmount() { InputOutput inputOutput = new InputOutput(); - this.playerBetAmount = inputOutput.promptForInt("How much money do you bet?"); + playerBetAmount = inputOutput.promptForInt("How much money do you bet?"); + if (playerBetAmount > mainPlayer.getMainPlayer().getBalance()) { + System.out.println("You don't have enough to bet! Get Out of here!"); + return true; + } + return false; + } private Integer addDiceValuesTogether() { @@ -144,9 +138,12 @@ protected void willUserPlayAgain() { public void startGame() { Integer diceRoll; do { - resetStats(); + if (mainPlayer.getMainPlayer().getBalance() == 0) { + System.out.println("You Have no money Left!"); + break; + } userPlacesBet(); - userBetAmount(); + if (userBetAmount() == true) break; diceRoll = addDiceValuesTogether(); if (this.betUserPlaces == 1) { passLineBetTurnSequence(diceRoll); @@ -154,12 +151,13 @@ public void startGame() { dontPassLineBetTurnSequence(diceRoll); } + } while (this.playerDecision == 1); endGame(); } public void endGame() { - String goodbye = "Thank you for playing!"; + System.out.println("Thank you for Playing!"); } } diff --git a/src/main/java/io/zipcoder/casino/Games/Dice.java b/src/main/java/io/zipcoder/casino/Games/Dice.java index 8881263b..da28e392 100644 --- a/src/main/java/io/zipcoder/casino/Games/Dice.java +++ b/src/main/java/io/zipcoder/casino/Games/Dice.java @@ -4,7 +4,7 @@ public class Dice { - public Integer rollDice(){ + public static Integer rollDice(){ Random dice1 = new Random(); Integer diceRoll = (dice1.nextInt(6)+1); return diceRoll; diff --git a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java index 880541c1..c40c551c 100644 --- a/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java +++ b/src/main/java/io/zipcoder/casino/Players/CrapsPlayer.java @@ -1,8 +1,6 @@ package io.zipcoder.casino.Players; -import io.zipcoder.casino.Wallet; - public class CrapsPlayer extends Player { protected Player mainPlayer; @@ -24,6 +22,6 @@ public void lostMoney(int money) { } public void wonMoney(int money) { - mainPlayer.wallet.subtract(money); + mainPlayer.wallet.add(money); } } diff --git a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java index 65d2b81d..f8e85f64 100644 --- a/src/test/java/io/zipcoder/casino/Games/CrapsTest.java +++ b/src/test/java/io/zipcoder/casino/Games/CrapsTest.java @@ -3,6 +3,8 @@ import io.zipcoder.casino.Players.Player; +import org.junit.Assert; +import org.junit.Before; import org.junit.Test; public class CrapsTest { @@ -11,19 +13,19 @@ public class CrapsTest { Player bob = new Player("Bob", 30, 500); - - @Test - public void passLineBetTurnSequenceTest() { + @Before + public void setup() { + game = new Craps(bob); } @Test - public void ifDontPassLineTest() { + public void setPlayerBetAmountTest() { + Integer expected = 500; - } - public void willUserPlayAgainTest(){ + game.setPlayerBetAmount(expected); + Integer actual = game.getPlayerBetAmount(); + Assert.assertEquals(expected, actual); } - - } diff --git a/src/test/java/io/zipcoder/casino/Games/DiceTest.java b/src/test/java/io/zipcoder/casino/Games/DiceTest.java index 542d4c9e..9e06e22e 100644 --- a/src/test/java/io/zipcoder/casino/Games/DiceTest.java +++ b/src/test/java/io/zipcoder/casino/Games/DiceTest.java @@ -1,11 +1,34 @@ package io.zipcoder.casino.Games; -import org.junit.Assert; + import org.junit.Test; -import java.util.Random; + + +import static junit.framework.TestCase.fail; public class DiceTest { + Dice diceTest = new Dice(); + int diceValue; + int highestDiceValue = 1000; + int lowestDiceValue = -1000; + + @Test + public void checkIfDiceAreWithingBoundsTest(){ + for (int i = 0; i < 10000; i++){ + diceValue = Dice.rollDice(); + if (diceValue < 1){ + fail("Dice value too low!"); + } else if (diceValue > 6){ + fail("Dice value too hich"); + } else if (lowestDiceValue > diceValue){ + diceValue = lowestDiceValue; + + } else if (highestDiceValue < diceValue){ + diceValue = highestDiceValue; + } + } + } } diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java index 140050b7..3433188d 100644 --- a/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java +++ b/src/test/java/io/zipcoder/casino/PlayerTest/CrapsPlayerTest.java @@ -14,20 +14,20 @@ public class CrapsPlayerTest { Craps game; @Before - public void setup(){ + public void setup() { bobCrapsPlayer = new CrapsPlayer(bob); game = new Craps(bob); } @Test - public void constructorTest(){ + public void constructorTest() { String expected = "Bob"; String actual = bobCrapsPlayer.getName(); Assert.assertEquals(expected, actual); } @Test - public void lostMoneyTest(){ + public void lostMoneyTest() { int moneyTest = 500; game.setPlayerBetAmount(500); bobCrapsPlayer.lostMoney(500); @@ -35,11 +35,11 @@ public void lostMoneyTest(){ } @Test - public void wonMoneyTest(){ + public void wonMoneyTest() { int moneyTest = 500; game.setPlayerBetAmount(500); bobCrapsPlayer.wonMoney(500); - Assert.assertTrue(bob.getBalance() == 0); + Assert.assertTrue(bob.getBalance() == 1000); } } From 63f1a14d6d58835cd68b0db5526095d19aca4f11 Mon Sep 17 00:00:00 2001 From: mbowe4 Date: Mon, 26 Feb 2018 00:35:36 -0500 Subject: [PATCH 105/105] more formatting --- .../java/io/zipcoder/casino/Games/GoFish.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/zipcoder/casino/Games/GoFish.java b/src/main/java/io/zipcoder/casino/Games/GoFish.java index f2ed011d..c791ef87 100644 --- a/src/main/java/io/zipcoder/casino/Games/GoFish.java +++ b/src/main/java/io/zipcoder/casino/Games/GoFish.java @@ -177,11 +177,13 @@ public void gameOverMessage(List winners) { if(winners.size() > 1) { System.out.println("There was a tie!"); for (int i = 0; i < winners.size(); i++) { - System.out.println("\nCongratulations, " + winners.get(i).getName() + ", you tied!\n"); + System.out.println(displayCongrats()); + System.out.println("\n" + winners.get(i).getName() + ", you tied!\n"); } } else { - System.out.println("\nCongratulations, " + winners.get(0).getName() + ", you win!\n"); + System.out.println(displayCongrats()); + System.out.println("\n" + winners.get(0).getName() + ", you win!\n"); } this.displayScores(players); System.out.println("\nThat was fun! Game over.\n"); @@ -207,10 +209,17 @@ public String displaySecondLogo() { logo.append(" +-+-+ +-+-+-+-+\n"); logo.append(" |G|o| |F|i|s|h|\n"); logo.append(" +-+-+ +-+-+-+-+\n"); - //System.out.println(logo.toString()); return logo.toString(); } + public String displayCongrats() { + StringBuilder congrats = new StringBuilder("\n"); + congrats.append("+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n"); + congrats.append("|C|o|n|g|r|a|t|u|l|a|t|i|o|n|s|\n"); + congrats.append("+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n"); + return congrats.toString(); + } + public void endGame() { }