Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
4e0719f
Structure
Feb 21, 2018
d086da1
placeholder files
Feb 21, 2018
a150407
Interfaces
Feb 21, 2018
9dfcf93
starting blackjack class
Feb 21, 2018
f3e6b52
building out blackjackplayer class
Feb 21, 2018
baeec46
Unit Tests Outline
Feb 21, 2018
3c71671
stashing
patglavin Feb 21, 2018
ee85221
Merge branch 'dev' into blackjack
patglavin Feb 21, 2018
517a4a6
Player getter, setter and constructor
patglavin Feb 21, 2018
7e93e17
Merge branch 'dev' into blackjack
patglavin Feb 21, 2018
04be7f5
eh
patglavin Feb 21, 2018
8dfb752
io object working
patglavin Feb 21, 2018
e22eb68
Made Getter/Setters for player class
CWinarski Feb 21, 2018
e4c820a
Made changes to player class
CWinarski Feb 21, 2018
28f5078
Fixed Merge Conflicts
CWinarski Feb 21, 2018
b50ec5b
remove extendind statement, MY BAD
patglavin Feb 21, 2018
f9e66e9
make changes to casino class
CWinarski Feb 21, 2018
39b0608
Merge branch 'dev' of https://github.com/bth1994/CR-MacroLabs-OOP-Cas…
CWinarski Feb 21, 2018
eaddb0a
break suit and rank into enum classes, add deck generator, add card c…
patglavin Feb 21, 2018
a381974
add deck generation, shuffling, tests and card enum values
patglavin Feb 21, 2018
8824fbb
Made an App Class, changed Casino and IO
CWinarski Feb 21, 2018
15854c9
Merge pull request #1 from bth1994/CasinoClass
bth1994 Feb 21, 2018
2ee640f
Merge branch 'dev' into card
patglavin Feb 22, 2018
64676ea
add tests for all card relevant classes
patglavin Feb 22, 2018
b496757
Merge pull request #2 from bth1994/card
bth1994 Feb 22, 2018
0e83c98
changed balance from int to double
mbowe4 Feb 22, 2018
7da21f5
Merge branch 'dev' of https://github.com/bth1994/CR-MacroLabs-OOP-Cas…
mbowe4 Feb 22, 2018
07119e7
Start the beginnings of CrapsPlayer
CWinarski Feb 22, 2018
d7e19d6
restructure the packages so that everything is more compartmentalized
Feb 22, 2018
35265bc
Merge pull request #3 from bth1994/Structure
bth1994 Feb 22, 2018
f773445
restructure the test packages as well
Feb 22, 2018
59ac1b6
Merge pull request #4 from bth1994/Structure
bth1994 Feb 22, 2018
10ed3d8
stashing
patglavin Feb 22, 2018
eacf63c
repairing imports and packages
patglavin Feb 22, 2018
0803316
fully repaired structure, tests passing
patglavin Feb 22, 2018
e2019c5
Merge pull request #5 from bth1994/repairStructure
bth1994 Feb 22, 2018
992af07
Fix merge conflicts
CWinarski Feb 22, 2018
ad6b4c5
Merge branch 'dev' into blackjack
patglavin Feb 22, 2018
b88f334
create a separate deck class that contains methods specific to decks.…
Feb 22, 2018
7610e35
Merge pull request #6 from bth1994/DeckClass
bth1994 Feb 22, 2018
75078ef
Merge branch 'dev' into blackjack
patglavin Feb 22, 2018
622ecba
Merge branch 'dev' into CrapsGame
CWinarski Feb 22, 2018
fb6f788
added methods and tests to goFishGame
mbowe4 Feb 22, 2018
9b02aa2
added tests and methods to gofish
mbowe4 Feb 22, 2018
ae998ae
add wallet test
patglavin Feb 22, 2018
75dece3
change card game tests
Feb 22, 2018
1863d4c
Merge pull request #7 from bth1994/DeckClass
bth1994 Feb 22, 2018
154d051
Merge branch 'dev' into money
patglavin Feb 22, 2018
d7813a9
create wallet, partway through refactoring
patglavin Feb 22, 2018
07b8dea
changes made to goFishPlayer and goFishGame
mbowe4 Feb 22, 2018
5559976
Merge branch 'dev' into gofish
mbowe4 Feb 22, 2018
660664c
Merge pull request #8 from bth1994/gofish
bth1994 Feb 22, 2018
09a535b
prep for dev merge
patglavin Feb 22, 2018
915e497
Merge branch 'dev' into money
patglavin Feb 22, 2018
bc1d42c
fix merge conflicts
patglavin Feb 22, 2018
93d79c8
prep for merge
patglavin Feb 22, 2018
d33b232
swap double with integer for balance
patglavin Feb 22, 2018
9e7d19a
Changed Doubles to Integers
CWinarski Feb 22, 2018
bc139f6
changes made to goFishGame, added computerPlayer
mbowe4 Feb 22, 2018
3db296b
Merge branch 'dev' into CasinoClass
CWinarski Feb 22, 2018
4a650f3
added computer player
mbowe4 Feb 22, 2018
09a115d
Merge pull request #9 from bth1994/gofish
bth1994 Feb 22, 2018
b100fa8
Merge branch 'dev' into CasinoClass
bth1994 Feb 22, 2018
6e61e2a
Merge pull request #10 from bth1994/CasinoClass
bth1994 Feb 22, 2018
0f5a075
Merge branch 'dev' into CrapsGame
CWinarski Feb 22, 2018
0d3b83e
resolve merge conflicts
patglavin Feb 22, 2018
00d2847
finalizing before dev merge
patglavin Feb 22, 2018
7baa3db
resolving conflicts
patglavin Feb 22, 2018
ac495dc
Merge pull request #11 from bth1994/money
bth1994 Feb 22, 2018
0f17458
changes made to gofishagame
mbowe4 Feb 22, 2018
f1131b1
whoops lets put this in blackjack
patglavin Feb 23, 2018
329c0f9
prep for merge
patglavin Feb 23, 2018
47ea3f7
add initial methods to blackjack and bkjkplayer
patglavin Feb 23, 2018
22efd12
Made Changes to Dice Class
CWinarski Feb 23, 2018
7b13f53
Made Changes to Dice Class
CWinarski Feb 23, 2018
8d642fa
add blackjack specific card, rank and deck
patglavin Feb 23, 2018
46fa768
Merge branch 'dev' into CrapsGame
CWinarski Feb 23, 2018
8cf2e87
dude i dont even know
patglavin Feb 23, 2018
b48081d
create dealer test file
patglavin Feb 23, 2018
53ff0f3
add functionality to dealer with corresponding tests
patglavin Feb 23, 2018
c1c7fda
dealer will know when to hit
patglavin Feb 23, 2018
a2c1632
prep for mac update
patglavin Feb 23, 2018
4c0c775
add dealer logic in game & dealer classes
patglavin Feb 23, 2018
57e6b5e
Add methods to Craps
CWinarski Feb 23, 2018
1f42249
Fixed Merge Conflicts
CWinarski Feb 23, 2018
6215e6d
Fixed Merge Conflicts
CWinarski Feb 23, 2018
d89622c
edited gofish method
mbowe4 Feb 23, 2018
b2d985a
create an override toString method
Feb 23, 2018
3ce5809
gofish method
mbowe4 Feb 23, 2018
be75040
Merge pull request #12 from bth1994/WarGame
bth1994 Feb 23, 2018
dd39978
Merge branch 'dev' of https://github.com/bth1994/CR-MacroLabs-OOP-Cas…
patglavin Feb 23, 2018
52f9b8a
Updating Remote dev
CWinarski Feb 23, 2018
d9b4810
fixed Merge Conflicts
CWinarski Feb 23, 2018
8e0e4c1
Fixed Merge Conflicts
CWinarski Feb 23, 2018
d9c5f51
Merge pull request #13 from bth1994/CrapsGame
bth1994 Feb 23, 2018
333122d
resolve merge conflicts
patglavin Feb 23, 2018
6c4536d
make foundation for util
patglavin Feb 23, 2018
ead1c80
intermediary
patglavin Feb 23, 2018
08634a4
mergingconflicts
mbowe4 Feb 23, 2018
77bacb0
merge errors
mbowe4 Feb 23, 2018
c0fb6ba
blackjack inline with Game interface
patglavin Feb 23, 2018
35e4c31
Figured out main menu
CWinarski Feb 23, 2018
3eb2d99
Merge pull request #14 from bth1994/MainMenu
bth1994 Feb 23, 2018
1dadd33
format for Game
patglavin Feb 23, 2018
c5517b9
start the factories
Feb 23, 2018
8901edb
resolve conflicts
patglavin Feb 23, 2018
32abf3c
Merge branch 'dev' into blackjackvalueutil
patglavin Feb 23, 2018
243158a
made casino functioning
Feb 23, 2018
6728eed
Merge branch 'dev' into gofish
mbowe4 Feb 23, 2018
61cd4bf
interface formatting, rankparse util and appropriate testing
patglavin Feb 23, 2018
05b605e
begin merge with util branch
patglavin Feb 23, 2018
cf1a2da
refactor for blackjackutil
patglavin Feb 23, 2018
2554bcc
debug on test cases
patglavin Feb 24, 2018
8de4978
refactor and tests on blackjack class
patglavin Feb 24, 2018
3241521
Worked on Craps
CWinarski Feb 24, 2018
1020ba5
add win checks and dealer logic
patglavin Feb 24, 2018
668b8d9
prep for inputoutput troubleshoot branch
patglavin Feb 24, 2018
aa2a636
Add more functionality to Craps
CWinarski Feb 24, 2018
55cc56a
gofish nearly done
mbowe4 Feb 24, 2018
9901adf
Added more methods to Craps
CWinarski Feb 24, 2018
97a887d
intermediary update
patglavin Feb 24, 2018
71bc22d
prep for new branch
patglavin Feb 24, 2018
29cdfd7
intermediary
patglavin Feb 24, 2018
32f4e9a
functionality good, prep for game loop, gambling, new casino
patglavin Feb 24, 2018
b5de7ec
prep for debug branch
patglavin Feb 24, 2018
924c6b3
FUCKING FIRST TRY YEAH
patglavin Feb 24, 2018
60f1bf4
loops well, adding betting options
patglavin Feb 24, 2018
7992bb4
add working ante
patglavin Feb 24, 2018
15832b4
intermediary
patglavin Feb 24, 2018
0a11b70
create a card and player factory
Feb 24, 2018
db265e0
ace checking and betting options done
patglavin Feb 24, 2018
ef4813b
prep for new branch
patglavin Feb 24, 2018
aa9a547
first
patglavin Feb 24, 2018
06480a9
actually make a useful addition, stop entering game loop with insuffi…
patglavin Feb 25, 2018
53668ca
build tie function
patglavin Feb 25, 2018
810b593
add weirdness
patglavin Feb 25, 2018
54881bb
correct typo
patglavin Feb 25, 2018
abb0744
Almost Finished Craps Game
CWinarski Feb 25, 2018
221df84
Game not working properly
CWinarski Feb 25, 2018
75c2841
add conciousnesspath
patglavin Feb 25, 2018
6476e01
boost stupidity quotient
patglavin Feb 25, 2018
b0d129f
will add ascii art for cards and update war a bit
Feb 25, 2018
c31f483
Merge branch 'cardformat' into bjkjsecret
patglavin Feb 25, 2018
63fa2b6
Game running
mbowe4 Feb 25, 2018
f8611bc
Game fully working, working on cleaning up code
mbowe4 Feb 25, 2018
1fb8122
make secrets more secretive
patglavin Feb 25, 2018
aed430d
Finish the war game and add cardformatting
Feb 26, 2018
bb7067b
Merge pull request #15 from bth1994/gofish
bth1994 Feb 26, 2018
3a12521
finish war game and add card formatting
Feb 26, 2018
83e68df
merge dev to wargame
Feb 26, 2018
b6fd191
Merge pull request #16 from bth1994/CardFormat
bth1994 Feb 26, 2018
32c1591
prep for dev merge
patglavin Feb 26, 2018
441d368
prep for feature merge
patglavin Feb 26, 2018
fa18ef3
resolve merge conflicts
patglavin Feb 26, 2018
59d4847
Merge pull request #17 from bth1994/bjkjsecret
bth1994 Feb 26, 2018
adf3fd7
Working out some bugs
CWinarski Feb 26, 2018
c677960
Got the game working
CWinarski Feb 26, 2018
b8d646d
added functionality, exception handling
mbowe4 Feb 26, 2018
9e38483
Merge pull request #18 from bth1994/gofish
bth1994 Feb 26, 2018
743b2ec
some more formatting changes
mbowe4 Feb 26, 2018
d26a28e
added formatting improvements
mbowe4 Feb 26, 2018
34a6603
Finished the game. Fixed previous bugs
CWinarski Feb 26, 2018
63f1a14
more formatting
mbowe4 Feb 26, 2018
5c49189
Fixed Merge Conflicts
CWinarski Feb 26, 2018
18a4788
Merge pull request #19 from bth1994/CrapsGame
bth1994 Feb 26, 2018
3a11da2
resolve conflicts
mbowe4 Feb 26, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/main/java/io/zipcoder/casino/App.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.zipcoder.casino;

public class App {

public static void main(String[] args) throws CloneNotSupportedException{

Casino casino = new Casino();
casino.start();

}
}
90 changes: 90 additions & 0 deletions src/main/java/io/zipcoder/casino/Casino.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,95 @@
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.GoFishHumanPlayer;
import io.zipcoder.casino.Players.GoFishPlayer;
import io.zipcoder.casino.Players.Player;
import java.util.ArrayList;

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?");
return name;

}

protected Integer askUserAge(){
Integer age = inputOutput.promptForInt("How old are you?");
return age;
}

protected Integer askUserBalance(){
Integer balance = inputOutput.promptForInt("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();
player = new Player(name, age, balance);
} else {
player = new Player(name, age);
}
}

protected void initiateGame() {
do {
String selectedGame = inputOutput.availableGames(this.player);
if(selectedGame.equals("Exit")) {
exitCasino();
break;
} else {
selectGame(selectedGame).startGame();
}
}
while(isPlaying);
}

protected Game selectGame(String selectedGame) {
Game game = null;

switch (selectedGame) {
case "War":
game = new War(player);
break;
case "Go Fish":
game = new GoFish(new GoFishHumanPlayer(player));
break;
case "BlackJack":
game = new Blackjack(player);
break;

case "Craps":
game = new Craps(player);
break;
case "Exit":
isPlaying = false;
game = null;
break;
}
return game;
}

protected void start() {
this.setUpUserProfile();
this.initiateGame();
}
protected void exitCasino() {
System.out.println("Thank you for visiting!");
}
}

13 changes: 13 additions & 0 deletions src/main/java/io/zipcoder/casino/Factories/CardFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package io.zipcoder.casino.Factories;

import io.zipcoder.casino.GameTools.Deck.Card;
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);
}

}
15 changes: 15 additions & 0 deletions src/main/java/io/zipcoder/casino/Factories/PlayerFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package io.zipcoder.casino.Factories;

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);
}

}
29 changes: 29 additions & 0 deletions src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackCard.java
Original file line number Diff line number Diff line change
@@ -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;
// }
//}
20 changes: 20 additions & 0 deletions src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackDeck.java
Original file line number Diff line number Diff line change
@@ -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<BlackjackCard> deck = new ArrayList<BlackjackCard>();
//
// public BlackjackDeck() {
// for (BlackjackRank currentRank: BlackjackRank.values()) {
// for (Suit currentSuit : Suit.values()){
// BlackjackCard temp = new BlackjackCard(currentRank, currentSuit);
// deck.add(temp);
// }
// }
// }
//}
29 changes: 29 additions & 0 deletions src/main/java/io/zipcoder/casino/GameTools/Deck/BlackjackRank.java
Original file line number Diff line number Diff line change
@@ -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;
// }
//
//}
55 changes: 55 additions & 0 deletions src/main/java/io/zipcoder/casino/GameTools/Deck/Card.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package io.zipcoder.casino.GameTools.Deck;

public class Card {
private Suit suitEnum;
private Rank rankEnum;
private Rank asciiEnum;

public Card(Rank rankEnum, Suit suitEnum) {
this.rankEnum = rankEnum;
this.suitEnum = suitEnum;
}

public Card(){
this.rankEnum = null;
this.suitEnum = null;
}

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;
}

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();
card.append(this.getRankEnum() + " of " + this.getSuitEnum());

return card.toString();
}
}
28 changes: 28 additions & 0 deletions src/main/java/io/zipcoder/casino/GameTools/Deck/Deck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package io.zipcoder.casino.GameTools.Deck;

import io.zipcoder.casino.Factories.CardFactory;

import java.util.ArrayList;
import java.util.Collections;

public class Deck implements Cloneable {

public ArrayList<Card> deck = new ArrayList<Card>();

public Deck() {
for (Rank currentRank: Rank.values()) {
for (Suit currentSuit : Suit.values()) {
Card temp = CardFactory.createCard(currentRank, currentSuit);
deck.add(temp);
}
}
}

public void shuffleDeck() {
Collections.shuffle(this.deck);
}

public Card getTopCard() {
return this.deck.get(0);
}
}
Loading