Java学习记录(四)德州扑克的面向对象建模

本文记录了使用Java进行德州扑克的面向对象建模过程,包括枚举类Rank和Suit,单张扑克牌Card的建模,五张牌集合CardSet的设计。在实现中遇到Pair和Three of a Kind的重复计数问题,并给出了解决思路。最后进行了测试并反思了建模的不足,希望能写出更优的代码。
摘要由CSDN通过智能技术生成

德州扑克的面向对象建模

*使用了枚举(enum
*使用了Comparable接口

枚举类牌等级Rank 花色Suit

Rank.java

public enum Rank{
   
    ACE("A",1),TWO("2",2),THREE("3",3),FOUR("4",4),FIVE("5",5),
    SIX("6",6),SEVEN("7",7),EIGHT("8",8),NINE("9",9),TEN("10",10),
    JACK("J",11),QUEEN("Q",12),KING("K",13);
    private String name;
    private int r;
    Rank(String name, int r){
   
        this.name=name;
        this.r=r;
    }

    public int getR() {
   
        return r;
    }
}

Suit.java

public enum Suit{
   
    SPADE(1),HEART(2),CLUB(3),DIAMOND(4);
    private int index;

    public int getIndex() {
   
        return index;
    }

    Suit(int index){
   
        this.index=index;
    }
}
对单张扑克牌抽象建模

Card.java

public class Card {
   
    private Rank rank;
    private Suit suit;
    public Card(Rank rank,Suit suit){
   
        this.rank=rank;
        this.suit=suit;
    }

    public Rank getRank() {
   
        return rank;
    }

    public Suit getSuit() {
   
        return suit;
    }


    @Override
    public String toString() {
   
        return suit.name()+" "+rank.getR();
    }

}
五张扑克牌组成的集合

CardSet.java

import java.util.Arrays;
import java.util.Comparator;

public class CardSet implements Comparable {
   
    private Card[] cards = new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值