-
Notifications
You must be signed in to change notification settings - Fork 0
/
Game.java
78 lines (60 loc) · 1.63 KB
/
Game.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import java.awt.Graphics;
public class Game {
public Dealer dealer;
public Player player;
public boolean isOver;
public void newGame(Deck deck) {
this.dealer = new Dealer();
this.player = new Player();
this.isOver = false;
deck.shuffle();
this.player.hand.addCard(deck, true);
this.dealer.hand.addCard(deck, true);
this.player.hand.addCard(deck, true);
this.dealer.hand.addCard(deck, false);
}
public String checkScores(Graphics pen) {
int playerTotal = player.hand.total;
int playerSoftTotal = player.hand.softTotal;
int dealerTotal = dealer.hand.total;
int dealerSoftTotal = dealer.hand.softTotal;
// If player doesn't have ace, set soft total to 22 (always busts)
if (!player.hand.hasAce) {
playerSoftTotal = 22;
} else if (playerTotal > 21) {
playerTotal = playerSoftTotal;
}
// If dealer doesn't have ace, set soft total to 22 (always busts)
if (!dealer.hand.hasAce) {
dealerSoftTotal = 22;
} else if (dealerTotal > 21) {
dealerTotal = dealerSoftTotal;
}
if (playerTotal > 21) {
return "You busted!!";
}
if (playerTotal == 21) {
return "BlackJack!!";
}
if (dealerTotal == 21) {
return "Dealer Blackjack!";
}
// Check if the game is over
if (!this.isOver) {
return null;
}
if (dealerTotal > 21) {
return "Dealer Busts. You win!";
}
if (dealerTotal > playerTotal) {
return "Dealer Wins!!";
}
if (playerTotal > dealerTotal) {
return "You win!";
}
if (playerTotal == dealerTotal) {
return "Tie!!";
}
return null;
}
}