⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pokerhand.java

📁 一个风靡世界的扑克牌游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.util.Random;
class Card
{
	protected String suit;
	protected int number;
	protected String name;
	public Card()
	{}
	public Card(String suit,int number,String name)
	{
		this.suit = suit;
		this.number = number;
	    this.name = name;
	}
   
    public String toString()
	{
		return name + " of " + suit;
	}

    public String getName()
	{
		return name;
	}

    public String getSuit()
	{
		return suit;
	}

    public int getNumber()
	{
		return number;
	}

}


class Ace extends Card
{
	public Ace(String suit)
	{
		super(suit,14,"Ace");
	}
}

class Two extends Card
{
	public Two(String suit)
	{
		super(suit,2,"Two");
	}
}

class Three extends Card
{
	public Three(String suit)
	{
		super (suit, 3,"Three");
	}
}


class Four extends Card
{
	public Four(String suit)
	{
		super(suit,4,"Four");
	}
}

class Five extends Card
{
	public Five(String suit)
	{
		super(suit,5,"Five");
	}
}

class Six extends Card
{
	public Six(String suit)
	{
		super(suit,6,"Six");
	}
}

class Seven extends Card
{
	public Seven(String suit)
	{
		super(suit,7,"Seven");
	}
}

class Eight extends Card
{
	public Eight(String suit)
	{
		super(suit,8,"Eight");
	}
}

class Nine extends Card
{
	public Nine(String suit)
	{
		super(suit,9,"Nine");
	}
}

class Ten extends Card
{
	public Ten(String suit)
	{
		super(suit,10,"Ten");
	}
}

class Jack extends Card
{
	public Jack(String suit)
	{
		super(suit,11,"Jack");
	}
}

class Queen extends Card
{
	public Queen(String suit)
	{
		super(suit,12,"Queen");
	}
}

class King extends Card
{
	public King(String suit)
	{
		super(suit,13,"King");
	}
}

class RoyalFlush extends PokerHand
{
	public RoyalFlush(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}
    public PokerHand discard()
	{
		return this;
	}
    
	public int getValue()
	{
		return 1000000000;
	}
}

class Flush extends PokerHand
{
	public Flush(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}
    public PokerHand discard()
	{
		return this;
	}
     
	public int getValue()
	{
		if (CardsOfHand[0].getSuit().equals("Spades"))
		{
			return 100000*4+CardsOfHand[0].getNumber();
		}
	    else if (CardsOfHand[0].getSuit().equals("Hearts"))
		{
			return 100000*3+CardsOfHand[0].getNumber();
		}
	    else if (CardsOfHand[0].getSuit().equals("Clubs"))
		{
			return 100000*2+CardsOfHand[0].getNumber();
		}
	    else if (CardsOfHand[0].getSuit().equals("Diamonds"))
		{
			return 100000+CardsOfHand[0].getNumber();
		}
	    return 0;
	}
}

class Straight extends PokerHand
{
	public Straight(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}
 
    public PokerHand discard()
	{
		return this;
	}
    public int getValue()
	{
		return CardsOfHand[0].getNumber()*10000;
	}
}

class StraightFlush extends PokerHand
{
	public StraightFlush(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}

    public PokerHand discard()
	{
		return this;
	}
    public int getValue()
	{
		if (CardsOfHand[0].getSuit().equals("Spades"))
		{
			return 100000000*CardsOfHand[0].getNumber()+4;
		}
	    else if (CardsOfHand[0].getSuit().equals("Hearts"))
		{
			return 100000000*CardsOfHand[0].getNumber()+3;
		}
	    else if (CardsOfHand[0].getSuit().equals("Clubs"))
		{
			return 100000000*CardsOfHand[0].getNumber()+2;
		}
	    else if (CardsOfHand[0].getSuit().equals("Diamonds"))
		{
			return 100000000*CardsOfHand[0].getNumber()+1;
		}
	    return 0;
	}
}

class FourOfAKind extends PokerHand
{
	public FourOfAKind(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}
    
	public PokerHand discard()
	{
		if (CardsOfHand[0].getNumber() == CardsOfHand[3].getNumber())
		{
		    discard(4);
		}
	    else if (CardsOfHand[1].getNumber() == CardsOfHand[4].getNumber())
		{
			discard(0);
		}
	    
		return this.categorize();
	}

    public int getValue()
	{
		return CardsOfHand[1].getNumber()*10000000;
	}
}

class FullHouse extends PokerHand
{
	public FullHouse(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}

    public PokerHand discard()
	{
		return this;
	}
    
	public int getValue()
	{
	    if (CardsOfHand[0].getNumber() == CardsOfHand[2].getNumber())
	    {
            return 1000000*CardsOfHand[0].getNumber()+100000*CardsOfHand[3].getNumber();
	    }
	
        else 
	    {
			return 1000000*CardsOfHand[3].getNumber()+100000*CardsOfHand[0].getNumber();
	    }
	    
	}
}

class ThreeOfAKind extends PokerHand
{
	public ThreeOfAKind(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}

    public PokerHand discard()
	{
		if (CardsOfHand[0].getNumber() == CardsOfHand[2].getNumber())
		{
			discard(3,4);
		}
	    else if (CardsOfHand[1].getNumber() == CardsOfHand[3].getNumber())
		{
			discard(1,4);
		}    
		
		return this.categorize();
	}

    public int getValue()
	{
   		return CardsOfHand[2].getNumber()*1000;
	}

}

class TwoPairs extends PokerHand
{
	public TwoPairs(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}

    public PokerHand discard()
	{
		if ( (CardsOfHand[0].getNumber() == CardsOfHand[1].getNumber())
			&& (CardsOfHand[2].getNumber() == CardsOfHand[3].getNumber() ) )
		{
			discard(4);
		}
	    else if ( (CardsOfHand[0].getNumber() == CardsOfHand[1].getNumber())
			&& (CardsOfHand[3].getNumber() == CardsOfHand[4].getNumber() ) )
		{
			discard(2);
		}
	    else if ( (CardsOfHand[1].getNumber() == CardsOfHand[2].getNumber())
			&& (CardsOfHand[3].getNumber() == CardsOfHand[4].getNumber() ) )
		{
			discard(0);
		}
	
	    return this.categorize();
	}

    public int getValue()
	{
		return CardsOfHand[1].getNumber()*100+CardsOfHand[3].getNumber()*10;
	}
}

class APair extends PokerHand
{
	public APair(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}

    public PokerHand discard()
	{
		if (CardsOfHand[0].getNumber() == CardsOfHand[1].getNumber())
		{
			discard(2,3,4);
		}
	    else if (CardsOfHand[1].getNumber() == CardsOfHand[2].getNumber())
		{
			discard(0,3,4);
		}
	    else if (CardsOfHand[2].getNumber() == CardsOfHand[3].getNumber())
		{
			discard(0,1,4);
		}
	    else if (CardsOfHand[3].getNumber() == CardsOfHand[4].getNumber())
		{
			discard(0,1,2);
		}
	    return this.categorize();
	}
    
	public int getValue()
	{
		if (CardsOfHand[0].getNumber() == CardsOfHand[1].getNumber())
		{
			return CardsOfHand[0].getNumber()*10;
		}
	    else if (CardsOfHand[1].getNumber() == CardsOfHand[2].getNumber())
		{
			return CardsOfHand[1].getNumber()*10;
		}
	    else if (CardsOfHand[2].getNumber() == CardsOfHand[3].getNumber())
		{
			return CardsOfHand[2].getNumber()*10;
		}
	    else if (CardsOfHand[3].getNumber() == CardsOfHand[4].getNumber())
		{
			return CardsOfHand[3].getNumber()*10;
		}
	    return 0;
	}

}

class CardHigh extends PokerHand
{
	public CardHigh(Card[] cards , DeckOfCards deck)
    {
		super(cards,deck);
	}
    public PokerHand discard()
	{
		discard(2,3,4);
	    return this.categorize();
	}
    public int getValue()
	{
		return CardsOfHand[0].getNumber();
	}
}


class DeckOfCards
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -