斗地主案例思路分析及代码实现
2021-11-24 15:55
260 查看
斗地主案例需求分析及代码实现
/* 斗地主综合案例: 1.准备牌 2.洗牌 3.发牌 4.看牌 */ import java.util.ArrayList; import java.util.Collections; public class DouDiZhu { public static void main(String[] args) { //1.准备牌 //定义一个存储54张牌的ArrayList集合,泛型使用String ArrayList<String> poker = new ArrayList<>(); //定义两个数组,一个数组存储拍的花色,一个数组存储牌的序号 String[] colors = {"♠","♥","♣","♦"}; String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; //先把大王和小王存储到poker集合中 poker.add("大王"); poker.add("小王"); //循环嵌套遍历两个数组,组装52张牌 for (String color : colors) { for (String number : numbers) { //把组装好的牌存储到poker集合中 poker.add(color+number); } } //System.out.println(poker); /* 2.洗牌 使用集合的工具类Collections中的方法 static void shuffle(List<?> list) 使用默认的随机源随机排列指定的列表。 */ Collections.shuffle(poker); //System.out.println(poker); /* 3.发牌 */ //定义4个集合,存储玩家的牌和底牌 ArrayList<String> player01 = new ArrayList<>(); ArrayList<String> player02 = new ArrayList<>(); ArrayList<String> player03 = new ArrayList<>(); ArrayList<String> diPai = new ArrayList<>(); /* 遍历poker集合,获取每一张牌 使用poker结合的索引%3给三个玩家轮流发牌 剩余三张牌给底牌 注意: 先判断底牌(i>=51),否则牌就发没了 */ for (int i = 0; i < poker.size(); i++) { //获取每一张牌 String p = poker.get(i); //轮流发牌 if (i>=51){ //给底牌发牌 diPai.add(p); }else if (i%3==0){ //给玩家1发牌 player01.add(p); }else if (i%3==1){ //给玩家2发牌 player02.add(p); }else if (i%3==2){ //给玩家3发牌 player03.add(p); } } //4.看牌 System.out.println("刘德华:"+player01); System.out.println("周润发:"+player02); System.out.println("周星驰:"+player03); System.out.println("底牌:"+diPai); } }
相关文章推荐
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)——daidingdaidingdaiding
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)——daidingdaiding
- plupload 实现照片上传并且预览(思路分析加代码)
- 青蛙跳台阶衍生之变态跳台阶(递归,思路分析及代码实现)
- 面向对象_老师学生案例加入抽烟功能分析及代码实现
- 编写程序描述影视歌三栖艺人 需求说明:请使用面向对象的思想,设计自定义类,描述影视歌三梄艺人。 实现思路及关键代码 1)分析影视歌三栖艺人的特性 a)可以演电影 b)可以演电视剧 c)可以唱歌
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_10 斗地主案例(双列)_2_斗地主案例的代码实现...
- 数组模拟队列思路分析及代码实现
- 用js写“算24”游戏的思路分析与实现代码
- 回溯算法的一些案例分析(c代码实现)
- 【使用DIV+CSS重写网站首页案例】步骤分析与代码实现
- UML中关于类之间的五种关系以及代码实现案例分析
- Spark GraphX图计算简单案例【代码实现,源码分析】
- 抢红包案例分析以及代码实现(二)
- 【JS 设计模式 】用组合模式来实现树形导航--代码结构思路分析(一)
- 用Hive+Hadoop集群实现《飞机票购买人群分类案例》思路+代码 (实验数据待整理)
- Spark商业案例与性能调优实战100课》第16课:商业案例之NBA篮球运动员大数据分析系统架构和实现思路
- java代码实现highchart与数据库数据结合完整案例分析(一)---饼状图
- java代码实现highchart与数据库数据结合完整案例分析(二)---折线图
- 韦东山嵌入式第一期学习笔记DAY_15——14_8改进上一节代码与用C实现面向对象编程思路分析