1.准备牌:54张牌,存储到一个集合中特殊牌:大王小王
其他52张牌:
定义一个数组/集合,存储4种花色:♥♠♣♦
定义一个数组/集合,存储13个序号:2,A,K....3
循环嵌套遍历两个数组/集合,组装52张牌:♠2♠A♠K♠3,♥2♥A♥K♥3
2.洗牌
使用集合工具类Collections的方法
static void shuffle(List<?> list)使用指定的随机源对指定列表进行置换。
会随机的打乱集台中元素的顺序
3.发牌:
要求:1人17张牌,剩余3张作为底牌,一人—张轮流发牌:集合的索引(O-53)%3
定义4个集合,存储3个玩家的牌和庭牌
索引%2,有两个值(0,1)0%62=O 19%2=1 2%2=O 39%2=1
索引%3,有三个值(0,1,2) 0%3=0 19%3=1 29%63=2 3%3=o
索引>=51改底牌发牌
4.看牌:
直接打印集合,遍历存储玩家和底牌的集合
分析图:
案例的代码实现:
斗地主综合案例:
1.准备牌
2.洗牌
3.发牌
4.看牌
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 (String number:numbers){ for (String color: colors){ //System.out.println(color+number); list.add(color+number); } } Collections.shuffle(list); ArrayList<String> list1 = new ArrayList<>(); ArrayList<String> list2 = new ArrayList<>(); ArrayList<String> list3 = new ArrayList<>(); ArrayList<String> diPai = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { String s = list.get(i); if (i>=51){ diPai.add(s); }else if (i%3==0){ list1.add(s); }else if (i%3==1){ list2.add(s); }else if (i%3==2){ list3.add(s); } } System.out.println("刘德华"+list1); System.out.println("周星驰"+list2); System.out.println("发哥"+list3); System.out.println("达叔"+diPai); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)