ITPub博客

首页 > IT职业 > IT职场 > Java第三季 简易扑克牌游戏

Java第三季 简易扑克牌游戏

IT职场 作者:galebird 时间:2021-09-09 08:58:00 0 删除 编辑
/**
 * 扑克牌类
 * @author:凌_惜
 * @date:2016年11月7日 下午1:56:12
 */
public class Card {

    private String color;  //花色
    private String number;   //牌数

    public Card() {

    }
    public Card(String color, String number) {
        this.color = color;
        this.number = number;
    }
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }   
}
/**
 * 玩家
 * @author:凌_惜
 * @date:2016年11月7日 下午2:06:37
 */
public class Player {

    private String id; //ID
    private String name; //姓名
    private List cards; //手牌 

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public List getCards() {
        return cards;
    }
    public void setCards(List cards) {
        this.cards = cards;
    }

}
/**
 * 比较规则类
 * @author:凌_惜
 * @date:2016年11月7日 下午2:26:59
 */
public class Compara implements Comparator {

    @Override
    public int compare(Card o1, Card o2) {
        String colors = "方块 梅花 红桃 黑桃";
        String numbers = "2 3 4 5 6 7 8 9 10 J Q K A";

        //比较数字大小,选出最大的手牌
        int result = numbers.indexOf(o1.getNumber()) - numbers.indexOf(o2.getNumber());
        if (result  0) {
            return 1;
        } else {
            //比较花色大小,选出最大的手牌
            int result2 = colors.indexOf(o1.getColor()) - colors.indexOf(o2.getColor());
            if (result2  0) {
                return 1;
            } else {
                return 0;
            }
        }
    }
}
/**
 * 测试类
 * @author:凌_惜
 * @date:2016年11月7日 下午2:38:59
 */
public class CardGameTest {

    public static void main(String[] args) {
        System.out.println("==========开始创建一副扑克牌(不含大小王)==========");
        String[] colors = {"方块","梅花","红桃","黑桃"};
        String[] numbers = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
        List cardList = new ArrayList();
        for (String c : colors) {
            for (int i = 0; i  list = new ArrayList();
        for (int i = 1; i  p1 = new ArrayList();
        List p2 = new ArrayList();      
        for (int i = 0; i  BigCards = new ArrayList();
        BigCards.add(p1.get(1));
        BigCards.add(p2.get(1));
        //拿两个玩家最大的牌进行比较
        Collections.sort(BigCards,new Compara());
        System.out.println("***玩家:" + list.get(0).getName() + "最大的手牌为:" + p1.get(1).getColor() + p1.get(1).getNumber());
        System.out.println("***玩家:" + list.get(1).getName() + "最大的手牌为:" + p2.get(1).getColor() + p2.get(1).getNumber());
        //比较谁获胜
        if (BigCards.get(1).equals(p1.get(1))) {            
            System.out.println("==========玩家:" + list.get(0).getName() + "获胜==========");
        } else {
            System.out.println("==========玩家:" + list.get(1).getName() + "获胜==========");
        }
        //显示玩家获取的手牌
        String card1 = p1.get(0).getColor() + p1.get(0).getNumber();
        String card2 = p1.get(1).getColor() + p1.get(1).getNumber();
        String card3 = p2.get(0).getColor() + p2.get(0).getNumber();
        String card4 = p2.get(1).getColor() + p2.get(1).getNumber();
        System.out.println("---玩家" + list.get(0).getName() + "的手牌为:[" + card1 + ","+ card2 + "]");
        System.out.println("---玩家" + list.get(1).getName() + "的手牌为:[" + card3 + ","+ card4 + "]");      
    }
}

图片描述

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1331/viewspace-2807505/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: PHP建议命名规范
请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    92
  • 访问量
    577