黑马程序员技术交流社区

标题: 排序的综合应用 [打印本页]

作者: 蝶的历练    时间: 2013-4-1 23:46
标题: 排序的综合应用
本帖最后由 田磊阳 于 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)

怎样才能够把牌洗乱

怎样才能够把牌洗乱

作者: 曹德君    时间: 2013-4-2 00:13
   if(i%ns.length==0){
                                System.out.println();
}
这段代码不是很明白什么意思????能解释一下吗?
作者: 黑马_位志国    时间: 2013-4-2 11:19
将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张不同的牌,并且随机打印,打印出的牌没有排序。
作者: 蝶的历练    时间: 2013-4-2 12:45
黑马_位志国 发表于 2013-4-2 11:19
将Test3.java更改为如下:
class Test3
{

运行不了啊
作者: 田磊阳    时间: 2013-4-3 22:14
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2