下面是一个简单的Java游戏二十一点的示例代码:
import java.util.*;
public class TwentyOneGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int playerTotal = 0;
int dealerTotal = 0;
// 发两张牌给玩家
playerTotal += dealCard(random);
playerTotal += dealCard(random);
System.out.println("玩家的牌是:" + playerTotal);
// 发两张牌给庄家
dealerTotal += dealCard(random);
dealerTotal += dealCard(random);
System.out.println("庄家的牌是:" + dealerTotal);
// 玩家决定是否继续要牌
while (playerTotal < 21) {
System.out.print("是否要牌?(y/n): ");
String choice = scanner.nextLine();
if (choice.equals("y")) {
playerTotal += dealCard(random);
System.out.println("玩家的牌是:" + playerTotal);
} else {
break;
}
}
// 庄家继续要牌,直到手牌总数大于17
while (dealerTotal < 17) {
dealerTotal += dealCard(random);
System.out.println("庄家的牌是:" + dealerTotal);
}
// 判断输赢
if (playerTotal > 21) {
System.out.println("玩家爆牌,庄家赢!");
} else if (dealerTotal > 21) {
System.out.println("庄家爆牌,玩家赢!");
} else if (playerTotal > dealerTotal) {
System.out.println("玩家赢!");
} else if (playerTotal < dealerTotal) {
System.out.println("庄家赢!");
} else {
System.out.println("平局!");
}
}
// 发牌方法,返回一张随机牌的点数
public static int dealCard(Random random) {
int card = random.nextInt(10) + 1;
return card;
}
}
这个示例中,玩家和庄家分别从一副扑克牌中发两张牌,然后玩家决定是否要继续要牌,直到手牌总数达到或超过21点。然后庄家继续要牌,直到手牌总数超过17点。最后比较玩家和庄家的手牌总数,判断输赢。