Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
ab8ee8f
console
zStimmel Nov 17, 2017
6cc68ef
Delete Console.java
zStimmel Nov 17, 2017
8679416
console
zStimmel Nov 17, 2017
162f819
pushing
zStimmel Nov 17, 2017
73e46e0
Merge pull request #1 from zStimmel/develop
wsconnors Nov 17, 2017
de8f3ab
carsds and player
Nov 18, 2017
a7c2887
saving,craps
zStimmel Nov 20, 2017
8fa47ef
saving,craps
zStimmel Nov 20, 2017
d7a108d
Merge pull request #2 from zStimmel/develop
wsconnors Nov 20, 2017
4bc5216
merging
Nov 20, 2017
b5c9dd9
player
zStimmel Nov 20, 2017
1432b21
Merge pull request #3 from zStimmel/develop
wsconnors Nov 20, 2017
e7b7ff8
merging again
Nov 20, 2017
a349d72
commit before pull
Nov 20, 2017
b6ce1c8
commit before pull
Nov 20, 2017
c933006
deck
Nov 20, 2017
de8d1a6
player class
Nov 20, 2017
318c47c
Merge pull request #4 from wsconnors/myDev
wsconnors Nov 20, 2017
7ad71dd
player fixed
Nov 20, 2017
a3c0bc3
Merge pull request #5 from grahamtn/develop
wsconnors Nov 20, 2017
573980d
saving
zStimmel Nov 20, 2017
6ecb880
Merge pull request #6 from zStimmel/develop
wsconnors Nov 20, 2017
936eb84
cardgame class
Nov 20, 2017
add8c83
craps
zStimmel Nov 20, 2017
f70cc98
Merge pull request #8 from zStimmel/develop
wsconnors Nov 20, 2017
17ca5d3
Merge pull request #7 from wsconnors/myDev
wsconnors Nov 20, 2017
6713a66
go fish started
Nov 20, 2017
62eaadb
add to player
Nov 20, 2017
aca75e2
go fish started
Nov 20, 2017
f34926f
Merge pull request #10 from wsconnors/myDev
wsconnors Nov 20, 2017
56a629b
go fish started
Nov 20, 2017
70e6bf9
craps
zStimmel Nov 20, 2017
68df31d
Merge pull request #11 from zStimmel/develop
wsconnors Nov 20, 2017
6f699f1
go fish start, casino extends
Nov 20, 2017
8ea6780
Merge pull request #12 from grahamtn/develop
wsconnors Nov 20, 2017
436e106
go fish values
Nov 20, 2017
addfb2b
Merge pull request #13 from wsconnors/myDev
wsconnors Nov 20, 2017
c733fa3
shit
Nov 20, 2017
0368c41
merge
Nov 20, 2017
931aed6
craps test
zStimmel Nov 20, 2017
b505122
Merge pull request #14 from zStimmel/develop
wsconnors Nov 20, 2017
39505d2
saving
zStimmel Nov 20, 2017
4f006ff
saving
zStimmel Nov 20, 2017
032bc12
blackjack
Nov 20, 2017
bf54c80
take out comments
Nov 20, 2017
36814c7
Merge pull request #15 from zStimmel/develop
wsconnors Nov 20, 2017
52549cc
Merge branch 'develop' into myDev
wsconnors Nov 20, 2017
57beb95
Merge pull request #16 from wsconnors/myDev
wsconnors Nov 20, 2017
44fb0ee
commit to pull abstracts
Nov 20, 2017
987eb0f
fuck
Nov 20, 2017
fbcd094
test change
Nov 20, 2017
51d5b57
tests
zStimmel Nov 20, 2017
9fc0c0a
go fish values enum
Nov 20, 2017
fa94c91
fixing merge maybe
Nov 20, 2017
91bd504
Merge pull request #17 from wsconnors/myDev
wsconnors Nov 20, 2017
975efa3
gofish refactor
Nov 20, 2017
eb40c81
tests
zStimmel Nov 20, 2017
431a04f
playerclass
zStimmel Nov 20, 2017
aa21142
Merge pull request #18 from zStimmel/develop
wsconnors Nov 20, 2017
3d96ba6
bulshit pull
Nov 20, 2017
0f7696c
menu stuff
Nov 20, 2017
993562c
saving
zStimmel Nov 20, 2017
556649f
saving
zStimmel Nov 20, 2017
374929e
Merge pull request #19 from zStimmel/develop
wsconnors Nov 20, 2017
5e1dc94
adding user input
Nov 20, 2017
a07ffa0
somewhat working gofish
Nov 20, 2017
2f0444b
merge fixed I think
Nov 20, 2017
ae6cda6
input stuff
Nov 20, 2017
f138412
Merge pull request #20 from wsconnors/myDev
wsconnors Nov 20, 2017
a9e1ed6
limit blackjack hand size
Nov 21, 2017
248441b
Merge pull request #21 from wsconnors/myDev
wsconnors Nov 21, 2017
71ff6d4
fixed craps rolling 7
zStimmel Nov 21, 2017
15db3be
Merge pull request #22 from zStimmel/develop
wsconnors Nov 21, 2017
d5f59af
SHITS DONE
Nov 21, 2017
5cceaf9
Merge branch 'develop' into develop
wsconnors Nov 21, 2017
7364aef
Merge branch 'develop' into develop
wsconnors Nov 21, 2017
79c2350
Merge pull request #23 from grahamtn/develop
wsconnors Nov 21, 2017
903c68c
menu stuff
Nov 21, 2017
bba6805
Merge pull request #24 from wsconnors/myDev
wsconnors Nov 21, 2017
b93a700
FUUUUCK
Nov 21, 2017
c435a6c
saving
Nov 21, 2017
3449923
Merge pull request #25 from grahamtn/develop
wsconnors Nov 21, 2017
82f91ff
Merge pull request #26 from wsconnors/myDev
wsconnors Nov 21, 2017
f5e12c2
fixing zach fuck up
Nov 21, 2017
84445c8
Merge pull request #27 from wsconnors/myDev
wsconnors Nov 21, 2017
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
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
<groupId>io.zipcoder</groupId>
<artifactId>casino</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
Expand Down
104 changes: 104 additions & 0 deletions src/main/java/io/zipcoder/casino/Blackjack.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package io.zipcoder.casino;

import io.zipcoder.casino.Console.Console;
import io.zipcoder.casino.Interfaces.Gamble;

public class Blackjack extends CardGame implements Gamble{
BlackjackPlayer player;
BlackjackDealer dealer;
private double pot = 0;

public BlackjackPlayer getPlayer() {
return player;
}
public BlackjackDealer getDealer() {
return dealer;
}

public Blackjack(Player player){
this.player = new BlackjackPlayer(player);
Player dealer = new Player("Dealer",0,0);
this.dealer = new BlackjackDealer(dealer);
}

public void start(){
Console.print("Welcome to BlackJack");
play();
}

public void play(){
pot = takeBet();
System.out.println(pot);
deal(player,dealer,2);
askForHitOrStay();
dealerPlay();
checkWin();
if(playAgain()){
play();
}else{
gameOptions();
}
}

public boolean playAgain(){
String input = Console.getValidString("Would you like to play again?","yes","no");
return "yes".equalsIgnoreCase(input);
}

public void checkWin(){
if(playerWins()){
Console.print("Player wins\n");
casinoplayer.addToBalance(pot);
}else{
Console.print("Dealer wins\n");
}
Console.print("Dealer had\n"+dealer.getStringDisplayHand());
Console.print("Score of "+dealer.getScore());
}

public void askForHitOrStay(){
Console.print("Dealer is showing\n"+dealer.getHand().get(0).toString());
String hitOrStay;
do{
printHand(player);
Console.print("Score of "+player.getScore() + "\n");
if(player.getScore()>=21){
return;
}
hitOrStay = Console.getValidString("Would you like to hit or stay?","hit","stay");
if("hit".equalsIgnoreCase(hitOrStay)){
player.addCard(deck.getCard());
}else {
return;
}
}while(true);
}

public void dealerPlay(){
while(dealer.hitDealer()){
dealer.addCard(deck.getCard());
}
}

public double takeBet(){
Console.print("You current balance is "+format.format(casinoplayer.getBalance()));
double bet;
while(true){
bet = Console.getDouble("How much would you like bet?");
if(casinoplayer.getBalance() >= bet){
casinoplayer.addToBalance(-1*bet);
return bet;
}
Console.print("Invalid bet");
}
}

public boolean playerWins(){
if((player.getScore() == 21 && dealer.getScore() != 21) ||
(player.getScore() < 21 && dealer.getScore() < player.getScore()) ||
(player.getScore() < 21 && dealer.getScore() > 21)) {
return true;
}
return false;
}
}
12 changes: 12 additions & 0 deletions src/main/java/io/zipcoder/casino/BlackjackDealer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package io.zipcoder.casino;

public class BlackjackDealer extends BlackjackPlayer{

public BlackjackDealer(Player person) {
super(person);
}

public boolean hitDealer(){
return getScore() < 17;
}
}
32 changes: 32 additions & 0 deletions src/main/java/io/zipcoder/casino/BlackjackPlayer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package io.zipcoder.casino;

import io.zipcoder.casino.Deck.Card;

public class BlackjackPlayer extends CardPlayer{

public BlackjackPlayer(Player person) {
super();
}

public int getScore() {
int sum = 0;
for(Card card: hand) {
sum += card.getValue();
}

if(isAceInHand() && sum <= 11) {
sum += 10;
}
return sum;
}

private boolean isAceInHand() {
for(Card card: hand) {
if(card.getValue() == 1) {
return true;
}
}
return false;
}

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

import io.zipcoder.casino.Console.Console;
import io.zipcoder.casino.Deck.Card;
import io.zipcoder.casino.Deck.Deck;

abstract class CardGame extends Casino {
Deck deck = new Deck();

public void deal(CardPlayer player,CardPlayer dealer,int amount){
clearHands(player,dealer);
deck.shuffle();
for(int i =0;i<amount;i++){
dealer.addCard(deck.getCard());
player.addCard(deck.getCard());
}
}

public boolean giveCard(CardPlayer player) {
Card addCard = deck.getCard();
if (addCard != null) {
player.addCard(deck.getCard());
return true;
}
return false;
}

public void clearHands(CardPlayer player, CardPlayer dealer) {
player.clearHand();
dealer.clearHand();

}

public void printHand(CardPlayer player) {
Console.print("You have\n" + player.getStringDisplayHand());
}


public void testDeal(CardPlayer player, int amount) {
for (int i = 0; i < amount; i++) {
player.addCard(deck.getCard());
}
}
}
56 changes: 56 additions & 0 deletions src/main/java/io/zipcoder/casino/CardPlayer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package io.zipcoder.casino;

import io.zipcoder.casino.Deck.Card;

import java.util.ArrayList;

public class CardPlayer extends Player{
ArrayList<Card> hand;

public CardPlayer() {
super("cardPlayer",0,0);
hand = new ArrayList<>();
}

public ArrayList<Card> getHand() {
return hand;
}

public void addCard(Card card) {
hand.add(card);
}

public void clearHand(){
hand.clear();
}

public String getStringDisplayHand(){
String output = "";
Card card;
for (int i=0; i<hand.size(); i++)
{
card=hand.get(i);
if (i!=hand.size()-1)
output += card.getTopCardRepresentation();
else
output+= card.toString();
}
return output;
}

public Card removeCard(Card cardToRemove){
for(Card card : hand){
if(card == cardToRemove){
hand.remove(cardToRemove);
return card;
}

}
return null;
}

public void setHand(ArrayList<Card> hand){
this.hand = hand;
}

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

import io.zipcoder.casino.Console.Console;

import java.text.DecimalFormat;
import java.util.Arrays;

public class Casino {
DecimalFormat format = new DecimalFormat("0.00");
static Player casinoplayer;

public void startCasino(){

Console.print("Welcome to the casino");
String name = Console.getString("What is your name?");
int age = (int)Console.getDouble("How old are you?");
double money = Console.getDouble("How much coin you got?");
casinoplayer= new Player(name,money,age);

gameOptions();

}

public void gameOptions(){
String[] gameOptionList = {"CRAPS","BLACKJACK","GO FISH"};
Console.print("Game options:\n"+ Arrays.asList(gameOptionList).toString());
String input = Console.getValidString("What game would you like to play?",gameOptionList);
switch(input.toLowerCase()){
case "blackjack":
validAge();
new Blackjack(casinoplayer).start();
break;
case "go fish":
new GoFish(casinoplayer).goFishStart();
break;
case "craps":
validAge();
new Craps(casinoplayer).play();
break;
default:
gameOptions();
}
}

public void validAge(){
if(casinoplayer.getAge()<21){
Console.print("Too young sucka");
gameOptions();
}
}

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Console extends ArrayList<String> {

public static String getString(String prompt) {
Scanner input = new Scanner(System.in);
System.out.println(prompt);
String userinput = input.nextLine();
return userinput;
}

public static double getDouble(String prompt) {
do {
try {
Scanner input = new Scanner(System.in);
System.out.println(prompt);
double userinput = input.nextDouble();
return userinput;
} catch (IllegalArgumentException | InputMismatchException e) {
System.out.println("INVALID AMOUNT\n");
continue;
}
} while (true);
}
public static void print(String prompt){
System.out.println(prompt);
}


@Override
public boolean contains(Object object){
String string = (String)object;
for (String str: this){
if(str.equalsIgnoreCase(string)){
return true;
}
}
return false;
}

public static String getValidString(String prompt,String... validInputs){
String input;
while(true){
input = getString(prompt);
if (Arrays.asList(validInputs).contains(input)){
return input;
}
print("Invalid input");
}
}

}
Loading