Skip to content

Moving gitlab to github #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
315 changes: 214 additions & 101 deletions Blackjack/src/Blackjack.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,150 +11,263 @@ public class Blackjack extends ListeningGameComponent
Deck deck;
BlackjackHand player;
BlackjackHand dealer;
enum State{SETUP, BET, PLAY, DEALER, RESET, LOSE, WIN, PUSH};
public enum State{SETUP, BET, PLAY, DEALER, RESET, LOSE, WIN, PUSH};
State state = State.SETUP;
int bet = 25;
int money = 250;

//Getter method for deck
public Deck getDeck() {
return deck;
}

//Setter method for deck
public void setDeck(Deck deck) {
this.deck = deck;
}

//Getter method for player
public BlackjackHand getPlayer() {
return player;
}

//Setter method for player
public void setPlayer(BlackjackHand player) {
this.player = player;
}

//Getter method for state
public State getState() {
return state;
}

//Setter method for state
public void setState(State state) {
this.state = state;
}

//Getter method for dealer
public BlackjackHand getDealer() {
return dealer;
}

//Setter method for dealer
public void setDealer(BlackjackHand dealer) {
this.dealer = dealer;
}

//Getter method for bet
public int getBet() {
return bet;
}

//Setter method for bet
public void setBet(int bet) {
this.bet = bet;
}

//Getter method for money
public int getMoney() {
return money;
}

//Setter method for money
public void setMoney(int money) {
this.money = money;
}

public Blackjack() throws IOException
{
super(Card.WIDTH*3,Card.HEIGHT*3/2);
deck = new Deck();
deck.shuffle(5);
deck.setAutoShuffle(true);
player = new BlackjackHand(deck, true);
dealer = new BlackjackHand(deck, false);

setDeck(new Deck());

getDeck().shuffle(5);
getDeck().setAutoShuffle(true);

setPlayer(new BlackjackHand(getDeck(), true));

setDealer(new BlackjackHand(getDeck(), false));
}

// Update the State
public void update()
{
if(isKeyPressed("Q"))
System.out.println(state);
if(state == State.SETUP)
System.out.println(getState());
updateStateSeam( getState() );
resetKeys();
}

/*
* Seam for state in updateMethod.
*
* Enter in a State:
* Call to correlating State function
*
*/
private void updateStateSeam(State s) {

//SETUP, BET, PLAY, DEALER, RESET, LOSE, WIN, PUSH
switch(s) {
case SETUP :
stateSetup();
break;
case BET :
stateBet();
break;
case PLAY :
statePlay();
break;
case DEALER :
stateDealer();
break;
case RESET :
stateReset();
break;
case LOSE :
stateLose();
break;
case WIN :
stateWin();
break;
case PUSH :
statePush();
break;
}
}

// Operations for Setup Stage.
private void stateSetup() {
if(getDealer() != null)
{
if(dealer != null)
{
player.hit();
dealer.hit();
player.hit();
dealer.hit();
state = State.BET;
}
getPlayer().hit();
getDealer().hit();
getPlayer().hit();
getDealer().hit();
setState(State.BET);
}
else if(state == State.BET)
}

// Operationsfor Bet State
private void stateBet() {
if(isKeyPressed("Up"))
setBet( (getBet() + 5) );
else if(isKeyPressed("Down"))
setBet( (getBet() - 5) );
else if(isKeyPressed("Enter"))
setState( State.PLAY );

if(getBet() < 0)
setBet( 0 );
else if( getBet() > getMoney() )
setBet( getMoney() );
}

// Operations for Play State
private void statePlay() {
if(getPlayer().busted())
setState( State.LOSE );
else if(isKeyPressed("Space"))
getPlayer().hit();
else if(isKeyPressed("Enter"))
{
if(isKeyPressed("Up"))
bet+=5;
else if(isKeyPressed("Down"))
bet-=5;
else if(isKeyPressed("Enter"))
state = State.PLAY;

if(bet < 0)
bet = 0;
else if(bet > money)
bet = money;
getDealer().setShow(true);
setState( State.DEALER );
}
else if(state == State.PLAY)
{
if(player.busted())
state = State.LOSE;
else if(isKeyPressed("Space"))
player.hit();
else if(isKeyPressed("Enter"))
{
dealer.setShow(true);
state = State.DEALER;
}
}

// Operations for Dealer State
private void stateDealer() {
if( getDealer().getValue() < 17 ) {
dealer.hit();
}
else if(state == State.DEALER)
else if( getDealer().busted() || (getDealer().getValue() < getPlayer().getValue()) )
{
if(dealer.getValue() < 17)
dealer.hit();
else if(dealer.busted() || (dealer.getValue() < player.getValue()))
{
System.out.println("WIN");
state = State.WIN;
}
else if(dealer.getValue() == player.getValue())
{
System.out.println("PUSH");
state = State.PUSH;
}
else
{
System.out.println("LOSE");
state = State.LOSE;
}
System.out.println("WIN");
setState( State.WIN );
}
else if(state == State.WIN)
else if(dealer.getValue() == player.getValue())
{
if(isKeyPressed("Space") || isKeyPressed("Enter"))
{
money+=bet;
state = State.RESET;
}
System.out.println("PUSH");
setState( State.PUSH );
}
else if(state == State.PUSH)
else
{
if(isKeyPressed("Space") || isKeyPressed("Enter"))
{
state = State.RESET;
}
System.out.println("LOSE");
setState( State.LOSE );
}
else if(state == State.LOSE)
}

// Operations for Reset State
private void stateReset() {
if( getMoney() == 0 )
setMoney( getMoney() + 2 );
getPlayer().clear();
getDealer().clear();
getDealer().setShow(false);
setState( State.SETUP );
}

// Operations for Lose State
private void stateLose() {
if(isKeyPressed("Space") || isKeyPressed("Enter"))
{
if(isKeyPressed("Space") || isKeyPressed("Enter"))
{
money-=bet;
state = State.RESET;
}
setMoney( getMoney() - getBet() );
setState( State.RESET );
}
}

// Operations for Win State
private void stateWin() {
if(isKeyPressed("Space") || isKeyPressed("Enter"))
{
setMoney( getMoney() + getBet() );
setState( State.RESET );
}
else if(state == State.RESET)
}

// Operations for Reset State
private void statePush() {
if(isKeyPressed("Space") || isKeyPressed("Enter"))
{
if(money == 0)
money++;
player.clear();
dealer.clear();
dealer.setShow(false);
state = State.SETUP;
setState( State.RESET );
}
resetKeys();
}

public void draw(Graphics g1)
{
Graphics2D g = (Graphics2D)g1;

g.setColor(Color.BLACK);
g.drawString("Money: " + money + " Bet: " + bet, 10, 20);
g.drawString("Money: " + money + " Bet: " + getBet(), 10, 20);

if(state == State.BET)
if(getState() == State.BET)
{
g.drawString("SET YOUR BET", WIDTH-150, 20);
g.drawString("SET YOUR BET", getWIDTH()-150, 20);
}
if(state == State.PLAY)
if(getState() == State.PLAY)
{
dealer.draw(g1, 157, 12);
player.draw(g1, 25, 158);
getDealer().draw(g1, 157, 12);
getPlayer().draw(g1, 25, 158);
}
if(state == State.WIN)
if(getState() == State.WIN)
{
dealer.draw(g1, 157, 12);
player.draw(g1, 25, 158);
g.drawString("YOU WIN!", WIDTH-150, 20);
getDealer().draw(g1, 157, 12);
getPlayer().draw(g1, 25, 158);
g.drawString("YOU WIN!", getWIDTH()-150, 20);
}
if(state == State.LOSE)
if(getState() == State.LOSE)
{
dealer.draw(g1, 157, 12);
player.draw(g1, 25, 158);
g.drawString("YOU LOSE!", WIDTH-150, 20);
getDealer().draw(g1, 157, 12);
getPlayer().draw(g1, 25, 158);
g.drawString("YOU LOSE!", getWIDTH()-150, 20);
}
if(state == State.PUSH)
if(getState() == State.PUSH)
{
dealer.draw(g1, 157, 12);
player.draw(g1, 25, 158);
g.drawString("PUSH", WIDTH-150, 20);
getDealer().draw(g1, 157, 12);
getPlayer().draw(g1, 25, 158);
g.drawString("PUSH", getWIDTH()-150, 20);
}
}

Expand Down
Loading