斗地主案例

案例介绍

按照斗地主的规则 完成洗牌发牌的动作

具体规则:

使用54张牌打乱顺序 三个玩家参与游戏,三个人交替摸牌,每人17张牌,最后三张留作底牌

案例分析

  • 准备牌

  牌可以设置为一个ArrayList<String>,每个字符串为一张牌

  张牌由花色数字两部分组成 我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装

  牌由Collections类的shuffle方法进行随机排序

  • 发牌

  将每个人以及底牌设计为ArrayList<String>,将最后3张牌直接存于底牌 剩余牌通过对3取模依次发牌

  • 看牌

  直接打印每个集合

代码:

public static void main(String[] args) {
//创建一个集合用于存储扑克牌
ArrayList<String> list = new ArrayList<>();
//定义两个数组存放花色和牌的点数
String[] colors={"♠","♣","♥","♦"};
String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
//将两张特殊的牌放入集合
list.add("大王");
list.add("小王");
//使用嵌套增强for循环将花色和点数存入集合
for (String color : colors) {
for (String number : numbers) {
list.add(color+number);
}
}
//使用Collections集合工具类里的shuffle进行洗牌
Collections.shuffle(list);
//创建四个集合 分别是第一个人、第二个人、第三个人、底牌
ArrayList<String> person1 = new ArrayList<>();
ArrayList<String> person2 = new ArrayList<>();
ArrayList<String> person3 = new ArrayList<>();
ArrayList<String> cards = new ArrayList<>();

//使用for进行遍历添加集合
for (int i = 0; i < list.size(); i++) {
if (i>=51){
//给底牌进行发牌
cards.add(list.get(i));
}else if (i%3==0){
//给底牌进行发牌
person1.add(list.get(i));
}else if (i%3==1){
//给底牌进行发牌
person2.add(list.get(i));
}else if (i%3==2){
//给底牌进行发牌
person3.add(list.get(i));
}
}
//查看所有人的牌
System.out.println("张三:"+person1);
System.out.println("李四:"+person2);
System.out.println("王五:"+person3);
System.out.println("底牌:"+cards);

}
posted @   baimingze  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示