吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5153|回复: 6
收起左侧

[Java 转载] 分享一个模拟斗地主发牌的小代码!哈

[复制链接]
tutu1973 发表于 2017-6-27 23:14
有需要的可以看看!哈
import java.util.ArrayList;
import java.util.Collections;

public class LianXi斗地主 {
        public static void main(String[] args) {
                //买牌
                String[] arr = {"黑桃","红桃","方片","梅花"};
                String[] arr2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
               
                ArrayList<String> box = new ArrayList<String>();
                //添加每张牌
                for (int i = 0; i < arr.length; i++) {
                        //获取每一个花色
                        for (int j = 0; j < arr2.length; j++) {
                                //获取每一个数
                                box.add(arr[i] + arr2[j]);
                        }
                       
                }
                box.add("大王");
                box.add("小王");
                //System.out.println(box.size());
               
                 //洗牌
                Collections.shuffle(box);
                //System.out.println(box);
               
                 //发牌
                ArrayList<String> 林志玲 = new ArrayList<String>();
                ArrayList<String> 林心如 = new ArrayList<String>();
                ArrayList<String> 舒淇 = new ArrayList<String>();
               
                //留三张底牌给地主
                for (int i = 0; i < box.size() - 3; i++) {
                        /*
                         *  i = 0;i % 3 = 0;
                         *  i = 1;i % 3 = 1;
                         *  i = 2;i % 3 = 2;
                         *  i = 3;i % 3 = 0;
                         *  i = 4;i % 4 = 1;
                         *  i = 5;i % 5 = 2;
                         */
                       
                        if(i % 3 == 0) {
                                林志玲.add(box.get(i));
                        }
                        else if(i % 3 == 1) {
                                林心如.add(box.get(i));
                        }
                        else if(i % 3 == 2) {
                                舒淇.add(box.get(i));
                        }
                }
               
                System.out.println("林志玲:" + 林志玲);
                System.out.println("林心如:" + 林心如);
                System.out.println("舒淇:" + 舒淇);
         
       
                System.out.println("底牌:");
        /*        System.out.println(box.get(box.size() - 1));
                System.out.println(box.get(box.size() - 2));
                System.out.println(box.get(box.size() - 3));*/
               
                for (int i = box.size() - 3; i < box.size(); i++) {
                        System.out.println(box.get(i));
                }
        }
       
}

work04.zip

683 Bytes, 下载次数: 7, 下载积分: 吾爱币 -1 CB

源代码

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

heoo 发表于 2017-6-27 23:36
java吗
 楼主| tutu1973 发表于 2017-6-27 23:42
dj1149 发表于 2017-6-27 23:50
本帖最后由 dj1149 于 2017-6-27 23:55 编辑

不随机发牌有什么意思。
在发牌里加个
                       
[Java] 纯文本查看 复制代码
 Random r = new Random(54);//我也不知道多少张牌
                        if(i % 3 == 0) {
                                林志玲.add(box.get(r.next()));
                        }
                        else if(i % 3 == 1) {
                                林心如.add(box.get(r.next()));
                        }
                        else if(i % 3 == 2) {
                                舒淇.add(box.get(r.next()));
                        }


哦 没去掉重复
那就多多加个数组

[Java] 纯文本查看 复制代码
List<Double> nums = new ArrayList<Double>();
int temp = r.next();
temp.add(temp);
if(!nums.contains(temp)) { //判断不重复
       //发牌
    }
}
绘梨衣 发表于 2017-6-28 00:03
原来是Java啊
trombe108 发表于 2017-6-28 00:13
不是很懂,学学而已。
qianzm1015 发表于 2017-6-28 09:43
学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 01:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表