码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-07-04 22:26:39      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:add   imp   code   功能   学习java   public   做了   i++   import   

    学习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]

 

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

标签:add   imp   code   功能   学习java   public   做了   i++   import   

原文地址:http://www.cnblogs.com/flash3/p/7118753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!