-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBlackJack.java
217 lines (183 loc) · 6.2 KB
/
BlackJack.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
import java.util.Scanner;
public class BlackJack {
public static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Welcome to Java Casinol Do you have a knack for Black Jack? We shall see\n" + //
"..Ready? Press YES to begin!");
String playerAnswer = scan.nextLine();
if (playerAnswer.equals("yes") || playerAnswer.equals("YES")) {
int randomPlayerCard1 = drawRandomNumberCard();
int randomPlayerCard2 = drawRandomNumberCard();
System.out.println("\nYou get a:\n" + returnsACard(randomPlayerCard1) +
"\n and a\n" + returnsACard(randomPlayerCard2));
int resultPlayerPoints = Math.min(randomPlayerCard1, 10) + Math.min(10, randomPlayerCard2);
System.out.println("\nYour total is: " + resultPlayerPoints
+ "\nTape ENTER to see what the dealer cards");
scan.nextLine();
int randomDealercard1 = drawRandomNumberCard();
int randomDealercard2 = drawRandomNumberCard();
System.out.println("The dealer shows:\n" + returnsACard(randomDealercard1)
+ "\nand has a card facing down:\n"
+ returnsACard(0) + "\nThe dealer's total is hidden");
int resultDealerPoints = Math.min(randomDealercard1, 10) + Math.min(10, randomDealercard2);
String respons = hitOrStay();
while (respons.equals("hit")) {
if (respons.equals("stay")) {
break;
}
int localPlayerCardNumber = hitFunc(resultPlayerPoints);
resultPlayerPoints += localPlayerCardNumber;
System.out.println(
"You get a:\n" + returnsACard(localPlayerCardNumber) + "\nYour new total is: "
+ (resultPlayerPoints));
if (resultPlayerPoints > 21) {
System.out.println("Bust! Player loses.");
System.exit(0);
}
respons = hitOrStay();
}
System.out
.println("\nDealer's turn\n\nThe dealer's card are:\n" + returnsACard(randomDealercard1) + "\n And a:\n"
+ returnsACard(randomDealercard2));
while ((resultDealerPoints) < 17) {
int localDealerCardNumber = hitFunc(resultDealerPoints);
resultDealerPoints += localDealerCardNumber;
System.out.println("Dealer get a:\n" + returnsACard(localDealerCardNumber));
}
System.out.println("Dealer's total is: " + resultDealerPoints);
if (resultDealerPoints > 21) {
System.out.println("Bust! Dealer loses. you win!");
} else if (resultDealerPoints > resultPlayerPoints) {
System.out.println("Dealer win!");
} else if (resultDealerPoints < resultPlayerPoints) {
System.out.println("Player win!");
}
} else {
System.out.println("Everithing is fine! we play later...");
}
}
private static int hitFunc(int resultPoints) {
int localCardFuncNumber = drawRandomNumberCard();
// int totalSum = resultPoints + Math.min(localCardFuncNumber, 10);
// System.out.println(
// "You get a:\n" + returnsACard(localCardFuncNumber) + "\nYour new total is: "
// + (totalSum));
return Math.min(10, localCardFuncNumber);
}
private static String hitOrStay() {
System.out.println("Do you wanna hit or stay?");
String hitOrStayAnswer = scan.nextLine();
while (!(hitOrStayAnswer.equals("hit") || hitOrStayAnswer.equals("stay"))) {
System.out.println("Please write 'hit' or 'stay'.");
hitOrStayAnswer = scan.nextLine();
}
return hitOrStayAnswer;
}
private static int drawRandomNumberCard() {
int randomNumber = (int) (Math.random() * 13) + 1;
return randomNumber;
}
private static String returnsACard(int numberCard) {
switch (numberCard) {
case 1:
return " _____\n" +
" |A _ |\n" +
" | ( ) |\n" +
" |(_'_)|\n" +
" | | |\n" +
" |____V|\n";
case 2:
return " _____\n" +
" |2 |\n" +
" | o |\n" +
" | |\n" +
" | o |\n" +
" |____Z|\n";
case 3:
return " _____\n" +
" |3 |\n" +
" | o o |\n" +
" | |\n" +
" | o |\n" +
" |____E|\n";
case 4:
return " _____\n" +
" |4 |\n" +
" | o o |\n" +
" | |\n" +
" | o o |\n" +
" |____h|\n";
case 5:
return " _____ \n" +
" |5 |\n" +
" | o o |\n" +
" | o |\n" +
" | o o |\n" +
" |____S|\n";
case 6:
return " _____ \n" +
" |6 |\n" +
" | o o |\n" +
" | o o |\n" +
" | o o |\n" +
" |____6|\n";
case 7:
return " _____ \n" +
" |7 |\n" +
" | o o |\n" +
" |o o o|\n" +
" | o o |\n" +
" |____7|\n";
case 8:
return " _____ \n" +
" |8 |\n" +
" |o o o|\n" +
" | o o |\n" +
" |o o o|\n" +
" |____8|\n";
case 9:
return " _____ \n" +
" |9 |\n" +
" |o o o|\n" +
" |o o o|\n" +
" |o o o|\n" +
" |____9|\n";
case 10:
return " _____ \n" +
" |10 o|\n" +
" |o o o|\n" +
" |o o o|\n" +
" |o o o|\n" +
" |___10|\n";
case 11:
return " _____\n" +
" |J ww|\n" +
" | o {)|\n" +
" |o o% |\n" +
" | | % |\n" +
" |__%%[|\n";
case 12:
return " _____\n" +
" |Q ww|\n" +
" | o {(|\n" +
" |o o%%|\n" +
" | |%%%|\n" +
" |_%%%O|\n";
case 13:
return " _____\n" +
" |K WW|\n" +
" | o {)|\n" +
" |o o%%|\n" +
" | |%%%|\n" +
" |_%%%>|\n";
case 0:
return " _____\n" +
" | |\n" +
" | J |\n" +
" | JJJ |\n" +
" | J |\n" +
" |_____|\n";
}
return "ddd";
}
}