A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wx_J25HxI5W 中级黑马   /  2015-6-23 22:56  /  1500 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有更好方法的大神,分享一下思路,或者代码,非常感谢。
代码如下,仅供参考。觉得注释少了的童鞋可以提问。

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
/**
* 需求:创建一副扑克牌,洗牌,发牌
* 思路:扑克牌一共54张,留下3张地主牌,将剩下的51张牌等分给3个对象。
* @author
*/
public class qqDouDiZhu {

        public static void main(String[] args) {
                /**定义一个集合,用于接收一整副扑克牌*/
                LinkedList<String> ld = new LinkedList<String>();
                /**定义三个字符串,用于接收发完后的三份扑克牌*/
                LinkedList<String> str1 = new LinkedList<String>();
                LinkedList<String> str2 = new LinkedList<String>();
                LinkedList<String> str3 = new LinkedList<String>();
               
                while(true){
                        Scanner sn = new Scanner(System.in);
                        System.out.println("1:开始斗地主");
                        System.out.println("2:退出斗地主");
                        System.out.println("请输入数字");
                        String st = sn.nextLine();
                        switch(st){
                        case "1":
                        /**定义两个数组,用来创建一副扑克牌*/
                        String[] colors = {"黑桃","红桃","梅花","方片"};
                        String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
                        /**循环装牌*/
                        for(String co : colors){
                                for(String nb : numbers){
                                        ld.add(co.concat(nb));
                                }
                        }
                        ld.add("大鬼");
                        ld.add("小鬼");
                        /**洗牌*/
                        Collections.shuffle((LinkedList<String>) ld);
                        /**打印洗牌之后的顺序,用于验证发牌的顺序是否正确*/
                        System.out.println("洗牌之后的顺序:"+ld);
                        /**发牌*/
                        for(int x=1; x<18; x++){
                                str1.add(ld.removeFirst());
                                str2.add(ld.removeFirst());
                                str3.add(ld.removeFirst());
                        }
                        System.out.println("地主str1的牌是:"+ str1);
                        System.out.println("农民str2的牌是:"+ str2);
                        System.out.println("农民str3的牌是:"+ str3);
                        System.out.println("地主底牌:"+ld);
                        case"2":
                                break;
                        }
                }
        }
}

评分

参与人数 1黑马币 +10 收起 理由
小朱 + 10 很给力!

查看全部评分

16 个回复

倒序浏览
表示现在还看不懂呀
回复 使用道具 举报
支持一个   大半夜还在为了技术分而奋斗着  加油  骚年  我看好你
回复 使用道具 举报
牛奋 来自手机 中级黑马 2015-6-23 23:50:50
板凳
牛逼啊,大神带我飞。
回复 使用道具 举报
学习了
回复 使用道具 举报
马也keyboard 来自手机 中级黑马 2015-6-24 00:09:30
地板
挺有意思的   学习了
回复 使用道具 举报
楼主,为什么要在主函数类的前面加public(public class qqDouDiZhu)呢?我运行的时按Ctrl+C退出运行时会报错:Exception in thread "main" java.lang.NoClassDefFoundError,将public删除后就OK了。求解释
回复 使用道具 举报
支持 ,支持
回复 使用道具 举报
八戒 中级黑马 2015-6-24 17:51:43
9#
学习ing................................
回复 使用道具 举报
学习一下                    
回复 使用道具 举报
学习了!
回复 使用道具 举报
最好搞个出牌规则
回复 使用道具 举报
表示看不懂啊
回复 使用道具 举报
主思路挺不错的。
回复 使用道具 举报
这个有点意思
回复 使用道具 举报
挺不错的额
回复 使用道具 举报
还需要好好琢磨,刚接触集合
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马