美文网首页
Java类与对象之扑克练习

Java类与对象之扑克练习

作者: 失忆的鱼不会思念 | 来源:发表于2017-12-29 10:41 被阅读0次

    任务目的

    1.培养编程思维,提高分析问题能力
    2.掌握类的抽象与设计
    3.掌握循环,分支条件的用法
    4.掌握各种集合类的使用(Map,List,Set)

    任务描述

    1.定义一个单张扑克类(考虑需要哪些属性),定义一个一副扑克牌类,该类包含一个单张扑克对象的数组(不考虑大小王)。实现一个模拟扑克发牌洗牌的算法;
    2.电脑随机发出5张牌,判断是以下哪种牌型?(提示,利用Map,List,Set等各种集合的特性可以简化判断)

    package com.company;
    
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
    
                  Poker poker = new Poker();
                    poker.output();
                    poker.shuffle();//洗牌
                    System.out.println();
                    poker.output();
        }
    }
    
    package com.company;
    
    
    /**
     * Created by ttc on 17-12-29.
     */
    public class Poker {
            private Card[] cards=new Card[52];
            private String[]colors={"红桃", "方片", "黑桃","草花"};
            private int[]valus={1,2,3,4,5,6,7,8,9,10,11,12,13};
            public Poker()
            {
                for (int i = 0;i<cards.length;i++)
                {
                    Card card = new Card();
                    card.setColor(colors[i/13]);
                    card.setValue(valus[i%13]);
                    cards[i]=card;
                }
            }
            public void output() {
                for (int i = 0; i < cards.length; i++) {
                    if (i % 13 == 0) {
                        System.out.println();
                    }
                    Card card = cards[i];
                    System.out.print(card + "\t");
                }
            }
                //洗牌方法
                public void shuffle()
                {
                    for(int i = 0; i < cards.length; i++)
                    {
                        //生成一个0-51之间的随机数,拿这个随机数作为数组下标,找到一张牌
                        int index = (int)(Math.random() * 52);
                        Card cardTemp = cards[index];
                        //和当前的牌进行交换
                        cards[index] = cards[i];//随机找到的那张牌的位置的牌换成当前循环到的那张牌
                        cards[i] = cardTemp;//当前的牌换成随机出来的那张牌
    
                    }
                }
    
            }
    
    
    
    package com.company;
    
    /**
     * Created by ttc on 17-12-28.
     */
    public class Card {
    
        private String color;
        private int value;
        public String toString()
        {
            String str="";
            if (value==11)
            {
                str="J";
            }
            else if (value==12)
            {
                str="Q";
            }
            else if (value==13)
            {
                str="K";
            }
            else if (value==1)
            {
                str="A";
            }
            else
            {
                str = value+"";
            }
            return color+str;
        }
        public String getColor() {
            return color;
        }
    
        public void setColor(String color) {
            this.color = color;
        }
    
        public int getValue() {
            return value;
        }
    
        public void setValue(int value) {
            this.value = value;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Java类与对象之扑克练习

          本文链接:https://www.haomeiwen.com/subject/mdhigxtx.html