card.java

来自「精通从JavaScript到Jsp范例程序设计」· Java 代码 · 共 49 行

JAVA
49
字号
package blackjack;
public class Card{

	private boolean[][] validCards = new boolean[4][13];
	private int cardRemaining;
	
	public Card(){
			setCardStatus( true );
	}
	
	public void setCardStatus( boolean valid ){
		for( int i=0; i<4; i++ )
			for( int j=0; j<13; j++ )
				validCards[i][j]=valid;
		cardRemaining = 52;			
	}
	
	public void setCardStatus( CardNumber cn,  boolean valid ){
		int kind = cn.getKind(), 
				number = cn.getNumber()-1;
		boolean isValid = validCards[ kind ][ number ];
		if( valid && !isValid )
			cardRemaining++;
		else if( !valid && isValid )
			cardRemaining--;
		validCards[kind][number]=valid;	
	}
	
	
	public void reset() {
		setCardStatus( true );	
	}
	
	public CardNumber getCardNumber(){
		int cardKind;
		int cardNumber;
		if( cardRemaining == 0 ) reset();
		do{
			cardKind = ((int)(Math.random()*131)%4);
			cardNumber = ((int)(Math.random()*457)%13);
		}
		while( !validCards[ cardKind ][ cardNumber ] );
		cardRemaining--;
		validCards[ cardKind ][ cardNumber ] = false;
		
		return new CardNumber( cardKind, cardNumber );
	}
	
}	

⌨️ 快捷键说明

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