狼人杀记录

此篇文章旨在记录日常中遇到的代码问题及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();
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值