用JAVA实现简单的扑克牌洗牌发牌并排序

您所在的位置:网站首页 简单扑克牌游戏怎么做 用JAVA实现简单的扑克牌洗牌发牌并排序

用JAVA实现简单的扑克牌洗牌发牌并排序

2024-07-13 22:24| 来源: 网络整理| 查看: 265

用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤:

创建一个HashMap集合对象创建一个ArrayList集合对象生成一副扑克牌将扑克牌按照键值关系添加到HashMap集合中开始洗牌(洗键)开始发牌(用TreeSet集合创建玩家对象)创建看牌方法调用看牌方法

我们首先要明确使用HashMap集合来存放扑克牌,将索引号作为键,而扑克牌作为值,使之对应。所以一开始要做的是创建HashMap对象和ArrayList对象,也就是我们的第一步:

1.创建一个HashMap集合对象和ArrayList集合对象 //创建一个HashMap集合对象 HashMap map = new HashMap(); //创建一个ArrayList集合对象 ArrayList array = new ArrayList();

紧接着我们需要知道一副扑克牌里都有哪些花色和数字。

2.生成一副扑克牌 String[] colors = {"♦", "♣", "♥", "♠"}; String[] numbers = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

缺少了大小王,我们下面再说。现在应该将所有的牌放入HashMap集合中,并且生成键与扑克牌对应。

3.将扑克牌按照键值关系添加到HashMap集合中 int index = 0;//定义键 for (String number : numbers) { for(String color : colors) { map.put(index, color + number);//将键与值对应起来 array.add(index);//将索引也添加到ArrayList集合里,方便洗牌 index++; } } //添加大小王(注意索引,大王的索引应该在小王之后) map.put(index, "小王"); array.add(index); index++; map.put(index, "大王"); array.add(index);

接着我们就可以开始对键随机排序了,这里我们用Collections。

4.开始洗牌(洗键) Collections.shuffle(array);//随机排序的其实是ArrayList集合,因为它和HashMap集合的键是一样的 5.开始发牌(用TreeSet集合创建玩家对象) //用TreeSet集合会自动自然排序,也就是发到手里的牌会自动按照大小排好,当然这里也是通过索引排的 TreeSet player1 = new TreeSet(); TreeSet player2 = new TreeSet(); TreeSet player3 = new TreeSet(); TreeSet dp = new TreeSet(); //对已经随机排序后的ArrayList集合开始遍历 for(int i = 0;i= array.size()-3) { dp.add(poker); //剩下的平均分给三个玩家 }else if(i % 3 == 0) { player1.add(poker); }else if(i % 3 == 1) { player2.add(poker); }else if(i % 3 == 2) { player3.add(poker); } }

接着最后一步,我们需要创建一个看牌方法,最后再调用方法。

6.创建看牌方法 //创建看牌方法 public static void lookpoker(String name,TreeSet list,HashMap map) { System.out.print(name+"的牌是:"); //遍历每一个玩家分到的索引,再将索引做键来取牌 for (Integer out : list) { System.out.print(map.get(out)+" "); } System.out.println(); }

最后的最后,来调用方法

//调用看牌方法 lookpoker("玩家一", player1, map); lookpoker("玩家二", player2, map); lookpoker("玩家三", player3, map); lookpoker("底牌", dp, map);

最终运行代码出来的结果就是

//玩家一的牌是:♣2 ♥4 ♥5 ♥6 ♦7 ♠7 ♣8 ♠8 ♥9 ♣10 ♥10 ♠10 ♣Q ♦K ♣K ♠K ♣A //玩家二的牌是:♠2 ♦3 ♣3 ♥3 ♣4 ♦6 ♠6 ♥7 ♦8 ♥8 ♠9 ♦10 ♦J ♦Q ♦A ♥A 小王 //玩家三的牌是:♦2 ♥2 ♠3 ♠4 ♦5 ♣5 ♠5 ♣6 ♣7 ♦9 ♣J ♥J ♠J ♥Q ♠Q ♥K ♠A //底牌的牌是:♦4 ♣9 大王


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3