您现在的位置是:首页 > 数码 > 

java实现狼人杀游戏发牌

2025-07-26 17:11:57
java实现狼人杀游戏发牌 题目描述 共计21张牌。在{村民,狼人,守护,预言家,猎人,丘比特,长老,盗贼,替罪羊,女巫}随机生成12-18个身份 (每个身份唯一,村民狼人除外)。有三张底牌,底牌必须不能出现盗贼身份。 玩家输入游戏人数&#

java实现狼人杀游戏发牌

题目描述

共计21张牌。在{村民,狼人,守护,预言家,猎人,丘比特,长老,盗贼,替罪羊,女巫}随机生成12-18个身份
(每个身份唯一,村民狼人除外)。有三张底牌,底牌必须不能出现盗贼身份。 玩家输入游戏人数:15 随机生成游戏人数配置:
游戏配置:12-18人(大于18人或者小于12人,输出超出游戏人数范围) 标准配置: 人数(狼,民,神) 18(5,7,5)人 5狼人
7村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊 1吹笛者 1盗贼 21张牌
17(5,6,6)人 5狼人 7村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊 1盗贼
20张牌 16(5,6,5)人 5狼人 6村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1
替罪羊 1盗贼 19张牌 15(5,5,5)人 5狼人 5村民 1预言家
1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊 1盗贼 18张牌 14(4,5,5)人
4狼人 5村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊1 盗贼
17张牌 1(4,5,4)人 4狼人 5村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 盗贼
16张牌 12(4,4,4)人 4狼人 4村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 盗贼
15张牌

盗贼是一个特殊身份:当某位玩家获得盗贼牌的时候,可以翻开底牌三张选择底牌中自己想要的身份(有狼人要选狼人) 要求:
1.底牌可以没有狼人,如果有,最多只能有一个狼人;
2.底牌不能有盗贼;
.输出如下:
玩家手牌为:

{01:村民,02:丘比特,0:盗贼,… ,15:女巫} 盗贼底牌为: {01:XX,02:XX ,0:XX}

package Werewolf;import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;public class Werewolf {public static ArrayList<String> all = new ArrayList<>();//所有的牌public static  ArrayList<String> play = new ArrayList<>();//可以发给玩家的牌public static  ArrayList<String> di = new ArrayList<>();//底牌public static Scanner scanner = new Scanner(System.in);public static int peopleame = 0;//玩家人数public static void main(String[] args) {init();//初始化牌
//        println(all);
//        println(play);
//        println(di);dipai();//分配底牌xipai();//给玩家发牌println(玩家手牌为:);println(play);println(盗贼底牌为:);println(di);}/*把之前玩家数组的牌一起整合到all里 根据随机数发给玩家*/public static void xipai(){Random random = new Random();all.addAll(play);//可以发给玩家的牌 除去底牌();//玩家牌清空while(all.size()>0)//一直分牌给玩家{int index = (all.size());//随机数的范围为all数组大小 左闭右开play.add(all.remove(index));//玩家拿牌}}/*all数组里面是分给底牌的(不能有盗贼)盗贼直接放到了玩家数组 最后重新洗牌  包含一个狼人 */public static void dipai(){Random random = new Random();for (int i = 0;i < ;i){int index = (all.size());//随机数的范围为all数组大小 左闭右开di.add(all.remove(index));}}public static void init(){peopleame = ();if (peopleame >= 12 && peopleame <= 18) {for (int i = 0;i < ;i){play.add(狼人);all.add(村民);}all.add(村民);all.add(狼人);//一张可以给底牌的狼人 放到all数组里 其他狼人牌直接放到play数组里all.add(预言家);all.add(女巫);all.add(丘比特);all.add(守护);all.add(猎人);all.add(村长);play.add(盗贼);//底牌不能有盗贼 直接分配给玩家if (peopleame > 12){all.add(村民);}if (peopleame > 1){all.add(替罪羊);}if (peopleame > 14){play.add(狼人);//放到play数组里}if (peopleame > 15){all.add(村民);}if (peopleame > 16){all.add(村民);}if (peopleame > 17){all.add(吹笛者);}}else {println(超出人数范围);}}
}

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/767875.html

相关标签:无
上传时间: 2023-12-27 15:05:59

上一篇:JavaScript:反引号用法

下一篇:佛教简介

留言与评论(共有 18 条评论)
本站网友 刘本之
11分钟前 发表
XX} package Werewolf;import java.util.ArrayList; import java.util.Random; import java.util.Scanner;public class Werewolf {public static ArrayList<String> all = new ArrayList<>();//所有的牌public static ArrayList<String> play = new ArrayList<>();//可以发给玩家的牌public static ArrayList<String> di = new ArrayList<>();//底牌public static Scanner scanner = new Scanner(System.in);public static int peopleame = 0;//玩家人数public static void main(String[] args) {init();//初始化牌 // println(all); // println(play); // println(di);dipai();//分配底牌xipai();//给玩家发牌println(玩家手牌为:);println(play);println(盗贼底牌为:);println(di);}/*把之前玩家数组的牌一起整合到all里 根据随机数发给玩家*/public static void xipai(){Random random = new Random();all.addAll(play);//可以发给玩家的牌 除去底牌();//玩家牌清空while(all.size()>0)//一直分牌给玩家{int index = (all.size());//随机数的范围为all数组大小 左闭右开play.add(all.remove(index));//玩家拿牌}}/*all数组里面是分给底牌的(不能有盗贼)盗贼直接放到了玩家数组 最后重新洗牌 包含一个狼人 */public static void dipai(){Random random = new Random();for (int i = 0;i < ;i){int index = (all.size());//随机数的范围为all数组大小 左闭右开di.add(all.remove(index));}}public static void init(){peopleame = ();if (peopleame >= 12 && peopleame <= 18) {for (int i = 0;i < ;i){play.add(狼人);all.add(村民);}all.add(村民);all.add(狼人);//一张可以给底牌的狼人 放到all数组里 其他狼人牌直接放到play数组里all.add(预言家);all.add(女巫);all.add(丘比特);all.add(守护);all.add(猎人);all.add(村长);play.add(盗贼);//底牌不能有盗贼 直接分配给玩家if (peopleame > 12){all.add(村民);}if (peopleame > 1){all.add(替罪羊);}if (peopleame > 14){play.add(狼人);//放到play数组里}if (peopleame > 15){all.add(村民);}if (peopleame > 16){all.add(村民);}if (peopleame > 17){all.add(吹笛者);}}else {println(超出人数范围);}} }
本站网友 焦作楼盘
26分钟前 发表
java实现狼人杀游戏发牌 题目描述 共计21张牌
本站网友 天津二手房搜房网
14分钟前 发表
6
本站网友 日本大学
24分钟前 发表
5)人 4狼人 5村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊1 盗贼 17张牌 1(4
本站网友 三合
16分钟前 发表
5)人 5狼人 6村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊 1盗贼 19张牌 15(5
本站网友 揪耳朵
17分钟前 发表
5)人 4狼人 5村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊1 盗贼 17张牌 1(4
本站网友 张珊珊
15分钟前 发表
4)人 4狼人 5村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 盗贼 16张牌 12(4
本站网友 大同天下
25分钟前 发表
4
本站网友 武汉的小吃
30分钟前 发表
4)人 4狼人 4村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 盗贼 15张牌 盗贼是一个特殊身份:当某位玩家获得盗贼牌的时候,可以翻开底牌三张选择底牌中自己想要的身份(有狼人要选狼人) 要求: 1.底牌可以没有狼人,如果有,最多只能有一个狼人; 2.底牌不能有盗贼; .输出如下: 玩家手牌为: {01:村民,02:丘比特,0:盗贼,… ,15:女巫} 盗贼底牌为: {01:XX,02
本站网友 常在答应
25分钟前 发表
5
本站网友 海水污染
16分钟前 发表
5)人 5狼人 5村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊 1盗贼 18张牌 14(4
本站网友 怎么去脸部皱纹
22分钟前 发表
6
本站网友 流亭租房
15分钟前 发表
java实现狼人杀游戏发牌 题目描述 共计21张牌
本站网友 儿每天晚上要我
1分钟前 发表
5
本站网友 鹿回头
14分钟前 发表
6)人 5狼人 7村民 1预言家 1女巫 1丘比特 1守护 1猎人 1村长 1 替罪羊 1盗贼 20张牌 16(5
本站网友 系统脱敏法
25分钟前 发表
6
本站网友 中药北沙参
12分钟前 发表
7