集合案例扑克牌

编程入门 行业动态 更新时间:2024-10-20 03:20:21

集合案例<a href=https://www.elefans.com/category/jswz/34/1766301.html style=扑克牌"/>

集合案例扑克牌

扑克牌

  • 欢迎打开这篇文章
    • 1,案例
      • 1-1 思路分析
    • 2,开始编写代码
      • 2-1 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
      • 2-2 往牌盒里塞牌
      • 2-3 洗牌,把牌打散,用collections的shuffle()方法实现
      • 2-4 定义三名玩家与底牌集合,还有发牌操作,也就是遍历集合给三个玩家发牌
      • 2-5 看牌,也就是三个玩家分别遍历自己的牌
      • 2-6 方法调用执行,查看结果
      • 2-7 整体代码
    • 3,进行优化
      • 3-1 创建hashmap,键是编号,值是牌与arrayList存储编号
      • 3-2 定义花色点数
      • 3-3 从0开始往hashmap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号
      • 3-4 洗牌
      • 3-5 发牌 (发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)
      • 3-6 定义看牌(遍历TreeSet集合,获取编号,到Hashmap集合找到对应的牌)
      • 3-7 方法调用和执行
      • 3-8 改进代码如下
    • 5,总结

欢迎打开这篇文章

你好! 这是你了解 集合 所展示的欢迎页。如果你想学习如何使用集合, 可以仔细阅读这篇文章,了解一下基本语法知识。

1,案例

** 需求:通过程序实现斗地主过程中的洗牌,发牌和看牌。**

1-1 思路分析

  • 1,创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
  • 2,往牌盒里塞牌
  • 3,洗牌,把牌打散,用collections的shuffle()方法实现
  • 4,发牌,也就是遍历集合给三个玩家发牌
  • 5,看牌,也就是三个玩家分别遍历自己的牌

2,开始编写代码

2-1 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现

 //创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现ArrayList<String> array = new ArrayList<String>();

2-2 往牌盒里塞牌

//往牌盒里塞牌String colors[] = {"♠","♥","♣","♦"}; //花色String numbers[] = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; //数字for (String color:colors){for (String number:numbers){array.add(color+number);}}array.add("小王");array.add("大王");

2-3 洗牌,把牌打散,用collections的shuffle()方法实现

//洗牌,把牌打散,用collections的shuffle()方法实现Collections.shuffle(array);

2-4 定义三名玩家与底牌集合,还有发牌操作,也就是遍历集合给三个玩家发牌

  ArrayList<String> demo1 = new ArrayList<String>();//玩家1ArrayList<String> demo2 = new ArrayList<String>();//玩家2ArrayList<String> demo3 = new ArrayList<String>();//玩家3ArrayList<String> dipai = new ArrayList<String>();//底牌
//        发牌,也就是遍历集合给三个玩家发牌for (int i = 0;i<array.size();i++){String pai = array.get(i);//获取牌牌if (i>array.size()-3){dipai.add(pai);}else if(i%3==0){demo1.add(pai);}else if (i%3==1){demo2.add(pai);}else if(i%3==2){demo3.add(pai);}

2-5 看牌,也就是三个玩家分别遍历自己的牌

//看牌,也就是三个玩家分别遍历自己的牌public static void show(String name,ArrayList<String> array){System.out.print(name+"牌是:");for (String arrayList:array){System.out.print(arrayList+"");}System.out.println("");}

2-6 方法调用执行,查看结果

        show("demo1",demo1);show("demo2",demo2);show("demo3",demo3);show("dipai",dipai);

2-7 整体代码

public class demo {public static void main(String[] args) {//创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现ArrayList<String> array = new ArrayList<String>();//往牌盒里塞牌String colors[] = {"♠","♥","♣","♦"}; //花色String numbers[] = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; //数字for (String color:colors){for (String number:numbers){array.add(color+number);}}array.add("小王");array.add("大王");//洗牌,把牌打散,用collections的shuffle()方法实现Collections.shuffle(array);
//        System.out.println(array);ArrayList<String> demo1 = new ArrayList<String>();//玩家1ArrayList<String> demo2 = new ArrayList<String>();//玩家2ArrayList<String> demo3 = new ArrayList<String>();//玩家3ArrayList<String> dipai = new ArrayList<String>();//底牌
//        发牌,也就是遍历集合给三个玩家发牌for (int i = 0;i<array.size();i++){String pai = array.get(i);//获取牌牌if (i>array.size()-3){dipai.add(pai);}else if(i%3==0){demo1.add(pai);}else if (i%3==1){demo2.add(pai);}else if(i%3==2){demo3.add(pai);}}show("demo1",demo1);show("demo2",demo2);show("demo3",demo3);show("dipai",dipai);}//看牌,也就是三个玩家分别遍历自己的牌public static void show(String name,ArrayList<String> array){System.out.print(name+"牌是:");for (String arrayList:array){System.out.print(arrayList+"");}System.out.println("");}}

3,进行优化

3-1 创建hashmap,键是编号,值是牌与arrayList存储编号

        //创建hashmap,键是编号,值是牌HashMap<Integer,String> hm = new HashMap<Integer, String>();//创建arraylist,存储编号ArrayList<Integer> arrayList = new ArrayList<Integer>();

3-2 定义花色点数

//定义花色String colors[] = {"♦","♥","♠","♣"};//定义点数String numbers[] = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};

3-3 从0开始往hashmap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号

 //从0开始往hashmap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号int index = 0;for (String number:numbers){for (String color:colors){hm.put(index,color+number);arrayList.add(index);index++;}}hm.put(index,"小王");arrayList.add(index);index++;hm.put(index,"大王");arrayList.add(index);

3-4 洗牌

//洗牌(洗的编号),用collections的shuffle()方法实现Collections.shuffle(arrayList);

3-5 发牌 (发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)

TreeSet<Integer> demoSet = new TreeSet<Integer>();TreeSet<Integer> demo1Set = new TreeSet<Integer>();TreeSet<Integer> demo2Set = new TreeSet<Integer>();TreeSet<Integer> dpSet = new TreeSet<Integer>();for (int i = 0; i < arrayList.size(); i++) {int x = arrayList.get(i);if (i>=arrayList.size()-3){dpSet.add(x);}else if(i%3==0){demoSet.add(x);}else if(i%3==1){demo1Set.add(x);}else if (i%3==2){demo2Set.add(x);}}

3-6 定义看牌(遍历TreeSet集合,获取编号,到Hashmap集合找到对应的牌)

   public static void showPai(String name,TreeSet<Integer> treeSet,HashMap<Integer,String> hashMap){System.out.print(name+"的牌是:");for (Integer key:treeSet){String poker = hashMap.get(key);System.out.print(poker+"");}System.out.println("");}

3-7 方法调用和执行

showPai("demoSet",demoSet,hm);showPai("demo1Set",demo1Set,hm);showPai("demo2Set",demo2Set,hm);showPai("dpSet",dpSet,hm);

3-8 改进代码如下

package test1;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class PokerDemoPlus {public static void main(String[] args) {//创建hashmap,键是编号,值是牌HashMap<Integer,String> hm = new HashMap<Integer, String>();//创建arraylist,存储编号ArrayList<Integer> arrayList = new ArrayList<Integer>();//定义花色String colors[] = {"♦","♥","♠","♣"};//定义点数String numbers[] = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//从0开始往hashmap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号int index = 0;for (String number:numbers){for (String color:colors){hm.put(index,color+number);arrayList.add(index);index++;}}hm.put(index,"小王");arrayList.add(index);index++;hm.put(index,"大王");arrayList.add(index);//洗牌(洗的编号),用collections的shuffle()方法实现Collections.shuffle(arrayList);//发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)TreeSet<Integer> demoSet = new TreeSet<Integer>();TreeSet<Integer> demo1Set = new TreeSet<Integer>();TreeSet<Integer> demo2Set = new TreeSet<Integer>();TreeSet<Integer> dpSet = new TreeSet<Integer>();for (int i = 0; i < arrayList.size(); i++) {int x = arrayList.get(i);if (i>=arrayList.size()-3){dpSet.add(x);}else if(i%3==0){demoSet.add(x);}else if(i%3==1){demo1Set.add(x);}else if (i%3==2){demo2Set.add(x);}}showPai("demoSet",demoSet,hm);showPai("demo1Set",demo1Set,hm);showPai("demo2Set",demo2Set,hm);showPai("dpSet",dpSet,hm);}//定义看牌(遍历TreeSet集合,获取编号,到Hashmap集合找到对应的牌)public static void showPai(String name,TreeSet<Integer> treeSet,HashMap<Integer,String> hashMap){System.out.print(name+"的牌是:");for (Integer key:treeSet){String poker = hashMap.get(key);System.out.print(poker+"");}System.out.println("");}
}

5,总结

好好学好Java基础,冲冲冲

更多推荐

集合案例扑克牌

本文发布于:2024-03-08 18:59:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721935.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:扑克牌   案例

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!