此篇文章旨在记录日常中遇到的代码问题及java编程示例与使用
import java.util.Scanner;
public class langrensha2 {
public static void main(String[] args) {
// 初始化角色数组和存活状态数组
String[] roles = {"狼人", "狼人", "村民", "村民", "村民"};
boolean[] alive = new boolean[5];
for (int i = 0; i < 5; i++) {
alive[i] = true;
}
Scanner scanner = new Scanner(System.in);
// 游戏循环
while (true) {
// 显示存活玩家信息
System.out.println("存活玩家信息:");
for (int i = 0; i < 5; i++) {
if (alive[i]) {
System.out.println("玩家编号:" + (i + 1) + ",角色:" + roles[i]);
}
}
// 狼人行动
System.out.println("狼人行动,请输入要杀死的玩家编号(1 - 5):");
int target = scanner.nextInt() - 1;
if (target >= 0 && target < 5 && alive[target] && !roles[target].equals("狼人")) {
alive[target] = false;
System.out.println("狼人杀死了玩家编号为 " + (target + 1) + " 的 " + roles[target]);
} else {
System.out.println("选择无效,请重新选择。");
continue;
}
// 判断游戏是否结束
int werewolfCount = 0;
int villagerCount = 0;
for (int i = 0; i < 5; i++) {
if (alive[i]) {
if (roles[i].equals("狼人")) {
werewolfCount++;
} else {
villagerCount++;
}
}
}
if (werewolfCount > villagerCount) {
System.out.println("狼人胜利!");
break;
} else if (werewolfCount == 0) {
System.out.println("村民胜利!");
break;
}
// 平民行动,发言和投票
System.out.println("平民行动,开始发言...");
System.out.println("投票环节,请输入要投票的玩家编号(1 - 5):");
target = scanner.nextInt() - 1;
//target在被当作静态结构使用时,要注意与main的冲突,使用scanner
if (target >= 0 && target < 5 && alive[target]) {
alive[target] = false;
System.out.println("平民投票处决了玩家编号为 " + (target + 1) + " 的 " + roles[target]);
} else {
System.out.println("选择无效,本轮投票无效。");
}
// 再次判断游戏是否结束
werewolfCount = 0;
villagerCount = 0;
for (int i = 0; i < 5; i++) {
if (alive[i]) {
if (roles[i].equals("狼人")) {
werewolfCount++;
} else {
villagerCount++;
}
}
}
if (werewolfCount > villagerCount) {
System.out.println("狼人胜利!");
break;
} else if (werewolfCount == 0) {
System.out.println("村民胜利!");
break;
}
}
scanner.close();
}
}
623

被折叠的 条评论
为什么被折叠?



