Java用集合实现斗地主洗牌发牌 您所在的位置:网站首页 斗地主5667788大王 Java用集合实现斗地主洗牌发牌

Java用集合实现斗地主洗牌发牌

2023-10-17 14:59| 来源: 网络整理| 查看: 265

案列分析 准备4种花色牌与13种数值牌循环嵌套为52张牌,加两种特殊牌大王小王牌共54种,再进行洗牌发牌

文章目录 一、思路分析二、准备牌1.准备一个集合存放所有牌2.准备两个数组分别存取扑克牌的4种花色和13种数值3.进行嵌套组合形成52张牌加到所有牌中4.把特殊牌(大王,小王)加到所有牌集合中共54张牌 三、洗牌1.使用集合的工具类Collections中的方法使用默认随机源对指定列表进行置换 四、发牌1.创建4个集合分别存取 玩家1 玩家2 玩家3 地主牌2. 总牌数先取三张放到地主牌中和依次发牌玩家3.随机产生个地主 五、看牌六、运行效果七、代码总和

一、思路分析

思路

1.准备牌

准备一个集合存放所有牌 准备两个数组分别存取扑克牌的4种花色和13种数值 进行嵌套组合形成52张牌加到所有牌中 把特殊牌(大王,小王)加到所有牌集合中共54张牌

2.洗牌 使用集合的工具类Collections中的方法使用默认随机源对指定列表进行置换

3.发牌 创建4个集合分别存取 玩家1 玩家2 玩家3 地主牌 总牌数先取三张放到地主牌中 依次给玩家发牌 随机产生个地主

4.看牌 输出打印玩家和地主

二、准备牌 1.准备一个集合存放所有牌 ArrayList sum= new ArrayList();//存所有牌号 2.准备两个数组分别存取扑克牌的4种花色和13种数值 //定义两个数组存花色和牌数 String[] colors = {"♠","♥","♣","♦"}; String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; 3.进行嵌套组合形成52张牌加到所有牌中 //增强for循环嵌套遍历两个数组,组装52张牌 for (String color : colors) { for (String number : numbers) { sum.add(color+number); } } 4.把特殊牌(大王,小王)加到所有牌集合中共54张牌 //添加大王小王到集合当中 sum.add("大王"); sum.add("小王"); 三、洗牌 1.使用集合的工具类Collections中的方法使用默认随机源对指定列表进行置换 // 2.洗牌 public void Shffle(ArrayList sum) { //使用集合的工具类Collections中的方法 //static void shuffle(List list) 使用默认随机源对指定列表进行置换。 Collections.shuffle(sum); } 四、发牌 1.创建4个集合分别存取 玩家1 玩家2 玩家3 地主牌 ArrayList Player1 = new ArrayList();//玩家1 ArrayList Player2 = new ArrayList();//玩家2 ArrayList Player3 = new ArrayList();//玩家3 ArrayList Dipai = new ArrayList();//地主牌 2. 总牌数先取三张放到地主牌中和依次发牌玩家 for (int i = 0; i //给地主牌发牌 Dipai.add(p); } //因为i%3有三种结果就可以一张一张的给玩家发牌 else if (i % 3 == 0) { //给玩家1发牌 Player1.add(p); } else if (i % 3 == 1) { //给玩家2发牌 Player2.add(p); } else if (i % 3 == 2) { //给玩家3发牌 Player3.add(p); } } 3.随机产生个地主 Random random = new Random();//产生随机数 int a = random.nextInt(3) + 1;//控制随机数范围为 1,2,3 System.out.println("本局地主为" + a + "号玩家");//选出地主

给地主发地主牌

//判断地主是谁然后把地主牌给他 if(a==1) { //使用Collections.addAll方法 把集合Player1里面分别添加集合dipai里面的1,2,3元素 Collections.addAll(Player1, Dipai.get(0), Dipai.get(1), Dipai.get(2)); } if(a==2) { Collections.addAll(Player2, Dipai.get(0), Dipai.get(1), Dipai.get(2)); } if(a==3) { Collections.addAll(Player3, Dipai.get(0), Dipai.get(1), Dipai.get(2)); } } 五、看牌 //4.看牌 public void show() { System.out.println("1号玩家" +Player1); System.out.println("2号玩家" + Player2); System.out.println("3号玩家" + Player3); System.out.println("地主牌为"+ Dipai); } 六、运行效果

在这里插入图片描述

七、代码总和

斗地主案列主函数

import java.util.ArrayList; public class DouDiZhu_PRO { public static void main(String[] args) { ArrayList sum= new ArrayList();//存所有牌号 DouDiZhuPRO is = new DouDiZhuPRO(); // 1.准备牌 is.prepare(sum); // 2.洗牌 is.Shffle(sum); // 3.发牌 is.Deal(sum); // 4.看牌 is.show(); } }

斗地主案列的类

import java.util.ArrayList; import java.util.Collections; import java.util.Random; public class DouDiZhuPRO { private ArrayList sum; //存放所有牌的总集合 ArrayList Player1 = new ArrayList();//玩家1 ArrayList Player2 = new ArrayList();//玩家2 ArrayList Player3 = new ArrayList();//玩家3 ArrayList Dipai = new ArrayList();//地主牌 //1.准备牌 public void prepare(ArrayList sum) { //定义两个数组存花色和牌数 String[] colors = {"♠","♥","♣","♦"}; String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; //增强for循环嵌套遍历两个数组,组装52张牌 for (String color : colors) { for (String number : numbers) { sum.add(color+number); } } //添加大王小王到集合当中 sum.add("大王"); sum.add("小王"); } // 2.洗牌 public void Shffle(ArrayList sum) { //使用集合的工具类Collections中的方法 //static void shuffle(List list) 使用默认随机源对指定列表进行置换。 Collections.shuffle(sum); } // 3.发牌 public void Deal(ArrayList sum) { Random random = new Random();//产生随机数 int a = random.nextInt(3) + 1;//控制随机数范围为 1,2,3 System.out.println("本局地主为" + a + "号玩家");//选出地主 for (int i = 0; i //给地主牌发牌 Dipai.add(p); } //因为i%3有三种结果就可以一张一张的给玩家发牌 else if (i % 3 == 0) { //给玩家1发牌 Player1.add(p); } else if (i % 3 == 1) { //给玩家2发牌 Player2.add(p); } else if (i % 3 == 2) { //给玩家3发牌 Player3.add(p); } } //判断随机产生的地主是谁然后把地主牌给他 if(a==1) { //使用Collections.addAll方法 把集合Player1里面分别添加集合dipai里面的1,2,3元素 Collections.addAll(Player1, Dipai.get(0), Dipai.get(1), Dipai.get(2)); } if(a==2) { Collections.addAll(Player2, Dipai.get(0), Dipai.get(1), Dipai.get(2)); } if(a==3) { Collections.addAll(Player3, Dipai.get(0), Dipai.get(1), Dipai.get(2)); } } //4.看牌 public void show() { System.out.println("1号玩家" +Player1); System.out.println("2号玩家" + Player2); System.out.println("3号玩家" + Player3); System.out.println("地主牌为"+ Dipai); } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有