妞一个斗地主发牌程序!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了妞一个斗地主发牌程序!!!相关的知识,希望对你有一定的参考价值。

    学习java三个星期,利用所学的知识做了一个三人斗地主发牌程序,闲话少叙,上代码

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 import java.util.List;
 4 
 5 /**
 6  * 三人斗地主程序 功能:将一副牌随机分发给地主(20张牌),农民A(17张牌),农民B (17张牌)
 7  * 步骤:1、洗牌阶段:将54张牌储存到ArraryList 容器中(批量储存,for循环)
 8  * 2、发牌阶段:打乱数组中元素的顺序,取出三个元素,首先放到装有地主牌的容器中 利用for循环嵌套,分段给牌(存数据)到地主、农民A、农民B
 9  * 三个容器当中,一家17张,外层循环控制循环次数,内层循环控制每家的牌数
10  * 
11  * @author kimi
12  *
13  */
14 
15 public class Landlords {
16     public static void play() {
17         String[] arr = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; // 定义数组用来储存基本牌组
18         List<String> pokerList = new ArrayList<>(); // 定义容器存储54张牌
19         List<String> xList = new ArrayList<>(); // 定义容器储存地主的牌
20         List<String> aList = new ArrayList<>(); // 定义容器储存农民A的牌
21         List<String> bList = new ArrayList<>(); // 定义容器存储农民B的牌
22         for (int i = 0; i < arr.length; i++) {
23             pokerList.add("红桃" + arr[i]);
24             pokerList.add("黑桃" + arr[i]); // 循环存入数据
25             pokerList.add("梅花" + arr[i]);
26             pokerList.add("方块" + arr[i]);
27         }
28         pokerList.add("大鬼");
29         pokerList.add("小鬼");
30         Collections.shuffle(pokerList); // 打乱牌组的顺序
31         xList.add(pokerList.get(0));
32         xList.add(pokerList.get(1)); // 复制三张牌给地主
33         xList.add(pokerList.get(2));
34         pokerList.remove(0);
35         pokerList.remove(1); // 删除牌组中的三张牌
36         pokerList.remove(2);
37         // ----------开始发牌----------------
38         for (int i = 0; i < 17; i++) {
39             xList.add(pokerList.get(i));
40         }
41         for (int i = 17; i < 34; i++) {
42             aList.add(pokerList.get(i));
43         }
44         for (int i = 34; i < 51; i++) {
45             bList.add(pokerList.get(i));
46         }
47         System.out.println("地主的牌:" + xList);
48         System.out.println("农民A的牌:" + aList);
49         System.out.println("农民B的牌:" + bList);
50     }
51 
52     public static void main(String[] args) {
53         play();
54     }
55 
56 }

运行结果如下,当然每次运行结果都不一样

地主的牌:[黑桃3, 红桃9, 红桃K, 红桃9, 红桃J, 方块K, 梅花Q, 梅花2, 方块Q, 黑桃9, 红桃6, 方块10, 梅花3, 黑桃K, 黑桃10, 方块3, 红桃Q, 梅花K, 方块9, 红桃5]
农民A的牌:[黑桃J, 黑桃4, 黑桃6, 黑桃7, 方块7, 红桃7, 梅花J, 方块4, 黑桃A, 方块8, 梅花4, 小鬼, 大鬼, 方块2, 梅花8, 梅花5, 梅花7]
农民B的牌:[红桃2, 红桃8, 梅花10, 梅花A, 黑桃8, 红桃A, 梅花9, 红桃10, 方块J, 方块6, 方块A, 黑桃Q, 红桃4, 黑桃5, 黑桃2, 方块5, 红桃3]

 

以上是关于妞一个斗地主发牌程序!!!的主要内容,如果未能解决你的问题,请参考以下文章

斗地主发牌程序

代码实现:模拟斗地主洗牌和发牌,牌没有排序

ArrayList模拟斗地主的洗牌,发牌和看牌

斗地主之洗牌发牌----Java篇

代码实现:模拟斗地主洗牌和发牌并对牌进行排序的代码实现

揭秘欢乐豆诈骗!Java 如何用集合实现欢乐斗地主发牌+源码解析