import java.util.Scanner;
import java.util.Random;
public class cs喝酒游戏 {
static Scanner scanner;
static Random random;
static int[][] playerArray;
public static void main(String[] args) {
// 骰子喝酒游戏
// 初始化
scanner = new Scanner(System.in);
random = new Random();
while (true) {
System.out.println("欢迎来到贵阳KTV,游戏开始");
System.out.print("退出请按ok,继续请按任意键:");
String a = scanner.next();
if (a.equals("ok")) {
break;
}
// 游戏开始,初始化玩家数量,每个玩家分别5颗骰子
System.out.println("请输入玩家数量:");
int playerCount = scanner.nextInt();
// 根据玩家数量发放骰盅
playerArray = new int[playerCount][5];
// 用数组来存储骰子点数
// 摇骰子
for (int i = 0; i < playerArray.length; i++) {
int[] player = playerArray[i];
for (int j = 0; j < player.length; j++) {
player[j] = random.nextInt(6) + 1;
System.out.print(player[j] + "\t");
}
System.out.println();
}
// 存储用户猜的个数
int[] playerGeussCount = new int[playerCount];
// 存储用户猜的点数
int[] playerGeussPoint = new int[playerCount];
boolean isFirst = true;
boolean isStarting = true;// 控制游戏本轮是否结束
while (isStarting) {// 控制用户轮流叫点数
for (int i = 0; i < playerGeussCount.length; i++) {
if (!isFirst) {
System.out.println("玩家" + i + "猜按1,开按其他");
int p_choice = scanner.nextInt();
if (p_choice == 1) {
System.out.println("玩家" + i + "请猜个数:");
playerGeussCount[i] = scanner.nextInt();
System.out.println("玩家" + i + "请猜点数:");
playerGeussPoint[i] = scanner.nextInt();
} else {
isStarting = false;// 本轮游戏结束
int count = 0;
int point = 0;
if (i == 0) {// 第一个玩家开的是最后一个玩家
count = playerGeussCount[playerCount - 1];
point = playerGeussPoint[playerCount - 1];
} else {// 拿到上一家玩家的数据
count = playerGeussCount[i - 1];
point = playerGeussPoint[i - 1];
}
int diceCount = countDicePoint(point);// 根据点数统计骰子的个数
if (i == 0) {// 第一个玩家开的是最后一个玩家
System.out.print("有" + diceCount + "个" + point + ",玩家" + (playerCount - 1) + "叫的是"
+ count + "个" + point);
} else {// 拿到上一家玩家的数据
System.out.print(
"有" + diceCount + "个" + point + ",玩家" + (i - 1) + "叫的是" + count + "个" + point);
}
if (diceCount >= count) {// 开的人输了,喝酒
System.out.println(",玩家" + i + "喝酒");
} else {// 被开的人输了,喝酒
if (i == 0) {// 第一个玩家开的是最后一个玩家
System.out.println(",玩家" + (playerCount - 1) + "喝酒");
} else {// 拿到上一家玩家的数据
System.out.println(",玩家" + (i - 1) + "喝酒");
}
}
break;
}
} else {
System.out.println("玩家" + i + "请猜个数:");
playerGeussCount[i] = scanner.nextInt();
System.out.println("玩家" + i + "请猜点数:");
playerGeussPoint[i] = scanner.nextInt();
isFirst = false;
}
}
}
}
}
public static int countDicePoint(int point) {
int count = 0;
for (int i = 0; i < playerArray.length; i++) {
for (int j = 0; j < playerArray[i].length; j++) {
if (playerArray[i][j] == point) {
count++;
}
}
}
return count;
}
}
加粗样式