21点小游戏java编程_用Java编写一个二十一点小游戏
时间: 2023-08-29 12:06:02 浏览: 104
一个简单的Java二十一点游戏_java_代码_下载
好的,下面是一个简单的二十一点小游戏的 Java 代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class TwentyOneGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> cards = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
for (int j = 0; j < 4; j++) {
String card = "";
if (i == 1) {
card += "A";
} else if (i == 10) {
card += "T";
} else if (i == 11) {
card += "J";
} else if (i == 12) {
card += "Q";
} else if (i == 13) {
card += "K";
} else {
card += i;
}
if (j == 0) {
card += "C";
} else if (j == 1) {
card += "D";
} else if (j == 2) {
card += "H";
} else {
card += "S";
}
cards.add(card);
}
}
Collections.shuffle(cards);
int total = 0;
int index = 0;
while (true) {
System.out.println("你的牌是:" + cards.get(index));
String value = cards.get(index).substring(0, 1);
if (value.equals("A")) {
total += 11;
} else if (value.equals("T") || value.equals("J") || value.equals("Q") || value.equals("K")) {
total += 10;
} else {
total += Integer.parseInt(value);
}
index++;
if (total == 21) {
System.out.println("你赢了!");
break;
} else if (total > 21) {
System.out.println("你输了!");
break;
} else {
System.out.println("你现在的总分是:" + total + ",要不要再拿一张牌?(y/n)");
String choice = scanner.nextLine();
if (choice.equals("n")) {
int dealerTotal = 0;
int dealerIndex = 0;
while (true) {
System.out.println("庄家的牌是:" + cards.get(index + dealerIndex));
String dealerValue = cards.get(index + dealerIndex).substring(0, 1);
if (dealerValue.equals("A")) {
dealerTotal += 11;
} else if (dealerValue.equals("T") || dealerValue.equals("J") || dealerValue.equals("Q") || dealerValue.equals("K")) {
dealerTotal += 10;
} else {
dealerTotal += Integer.parseInt(dealerValue);
}
dealerIndex++;
if (dealerTotal >= 17) {
break;
}
}
if (dealerTotal > 21 || dealerTotal < total) {
System.out.println("你赢了!");
} else if (dealerTotal > total) {
System.out.println("你输了!");
} else {
System.out.println("平局!");
}
break;
}
}
}
}
}
```
这个程序首先创建了一个包含所有牌的 `ArrayList`,然后使用 `Collections.shuffle()` 方法随机打乱牌的顺序。接下来程序进入一个循环,每次循环会输出一张牌,计算牌的点数,然后询问用户是否要再拿一张牌。当用户选择不再拿牌时,程序会计算庄家的点数,判断胜负并输出结果。在这个程序中,A 的点数为 11,10、J、Q、K 的点数为 10。
阅读全文