狼人发牌程序可以使用Java实现,以下是一个简单的实现思路:
输入玩家人数:
首先通过用户输入确定玩家人数。
生成游戏人数配置:
根据玩家人数生成相应的角色配置。
底牌需求:
底牌中最多只能有一个狼人,其余多余的角色牌需要放入发牌堆。
随机抽牌:
通过随机数生成器从角色集合中抽取角色牌,分配给玩家和底牌。
输出发牌内容:
最后输出玩家手牌和底牌信息。
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class Werewolf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入玩家人数:");
int playerCount = scanner.nextInt();
// 生成游戏人数配置
List if (playerCount >= 17) { roles.add("村民"); } if (playerCount == 18) { roles.add("吹笛人"); } Collections.shuffle(roles); // 随机打乱角色顺序 // 底牌设置 List if (playerCount == 12) { bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); } else if (playerCount == 16) { bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); } else if (playerCount == 14) { bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); } else if (playerCount == 12) { bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); bottomCards.add("村民"); } // 输出发牌内容 System.out.println("玩家手牌:"); for (int i = 0; i < playerCount; i++) { System.out.println("玩家 " + (i + 1) + ":" + roles.get(i)); } System.out.println("底牌:"); for (String card : bottomCards) { System.out.println(card); } } } ``` 代码说明: 通过`Scanner`类读取用户输入的玩家人数。 根据玩家人数生成角色列表,并使用`Collections.shuffle()`方法打乱角色顺序。 根据玩家人数生成底牌列表,底牌中最多只能有一个狼人。 随机抽牌输入玩家人数:
生成游戏人数配置:
底牌需求: