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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蝶的历练 中级黑马   /  2013-4-1 23:46  /  1846 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 田磊阳 于 2013-4-4 09:36 编辑

class Test3
{
        public static void main(String[] args)
        {
                //通过无参数构造创建
                /*
                Poker p=new Poker();               
                p.setColor("红桃");
                p.setNumber("10");
                */
                //通过有参构造创建
                //Poker p=new Poker("红桃","10");
                //p.color="红桃";
                //p.number="10";

                //System.out.println(p.getColor()+p.getNumber());


                //花色
                String[] cs={"红桃","黑桃","方块","梅花"};
                //值
                String[] ns={"A" ,"2" ,"3","4" ,"5", "6", "7", "8", "9", "10", "J", "Q", "K"};
                //描述扑克盒
                Poker[] ps=new Poker[cs.length*ns.length];
               
                int index=0;//用来控制ps数组中的每一张扑克牌的下标。
                for(int i=0;i<cs.length;i++){//控制花色
                        
                        for(int j=0;j<ns.length;j++){//控制值
                                
                                //ps[index]=new Poker(cs,ns[j]);
                                ps[index]=new Poker();
                                ps[index].setColor(cs);
                                ps[index].setNumber(ns[j]);
                                index++;
                        }
                }

                for(int i=0;i<ps.length;i++){
                        if(i%ns.length==0){
                                System.out.println();
                        }
                        ps.show();
                }


        }
}


class Poker
{
        private String color;//花色
        private String number;//值
        //无参构造
        Poker(){
        }
        //有参构造  参数代表的是扑克的花色与值
        Poker(String color,String number){
                //在构造方法中使用this  因为Poker构造方法中的局部变量color,number与类中的成员变量重名。

                this.color=color;
                this.number=number;
        }
        //color属性的set方法
        public void setColor(String color){
                this.color=color;
        }
        //number属性的set方法
        public void setNumber(String number){
                this.number=number;
        }
        //color属性的get方法
        public String getColor(){
                return color;
        }
        //number属性的get方法
        public String getNumber(){
                return number;
        }


        //用来显示扑克内容

        void show(){
               
                System.out.print(color+number+" ");
        }

}

QQ截图20130401234359.jpg (30.91 KB, 下载次数: 41)

怎样才能够把牌洗乱

怎样才能够把牌洗乱

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

4 个回复

倒序浏览
   if(i%ns.length==0){
                                System.out.println();
}
这段代码不是很明白什么意思????能解释一下吗?

点评

如果i的值是13或13的倍数,就换行  发表于 2013-4-2 09:53
这段代码的意思是:如果i的值等于13,就换行。  发表于 2013-4-2 09:51
回复 使用道具 举报
将Test3.java更改为如下:
class Test3
{
        public static void main(String[] args)
        {

                //花色
                String[] cs={"红桃","黑桃","方块","梅花"};
                //值
                String[] ns={"A" ,"2" ,"3","4" ,"5", "6", "7", "8", "9", "10", "J", "Q", "K"};
                //描述扑克盒
//                Poker[] ps=new Poker[cs.length*ns.length];
                ArrayList<Poker> ps = new ArrayList<Poker>();
                ArrayList<Poker> newPs = new ArrayList<Poker>();
                for(int i=0;i<cs.length;i++){//控制花色
                        
                        for(int j=0;j<ns.length;j++){//控制值
                                       Poker p = new Poker();
                                       p.setColor(cs[i]);
                                       p.setNumber(ns[j]);
                                       ps.add(p);
                        }
                }
                Random r = new Random();
                for(int i = 0; i < 52; i++){
                        int index = r.nextInt(52 - i);
                        newPs.add(ps.get(index));
                        ps.remove(index);
                }
               
               for(int i = 0; i < newPs.size(); i++){
                       Poker p = newPs.get(i);
                      
                       if(i % 5 == 0){
                               System.out.println();
                       }
                      
                       p.show();
               }
        }
}

此程序可以一次打印出52张不同的牌,并且随机打印,打印出的牌没有排序。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
黑马_位志国 发表于 2013-4-2 11:19
将Test3.java更改为如下:
class Test3
{

运行不了啊

点评

出现的是什么问题?能具体说一下嘛?  发表于 2013-4-2 19:27
回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马