006 關於順子的判斷修改

    對於沒有通過單元測試的類,我實在是放心不下,因而我給Junko寫了單元測試,代碼以下:java

/**
 * <p>Title: JunkoTest.java</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * @author Tunie 
 * @date 2014年9月16日
 * @version 1.0
 */
public class JunkoTest extends TestCase {

	public void testJudgeResult() {

		List<Card> list = new ArrayList<Card>();
		list.add(new Card(CardType.CARD_A));
		list.add(new Card(CardType.CARD_K));
		list.add(new Card(CardType.CARD_Q));
		list.add(new Card(CardType.CARD_J));
		list.add(new Card(CardType.CARD_10));
		list.add(new Card(CardType.CARD_9));
		
		CardGroup cardGroup = new CardGroup();
		cardGroup.addAll(list);
		
		HandCard junko = new Junko();
		boolean result = junko.judge(cardGroup);
		assertEquals(true, result);
	}

}

結果被我測出問題來了,問題有兩個,一個就是對牌數量的判斷,一個是那個循環位置的處理,列出最新的Junko代碼:ide

/**
 * <p>Title: Junko.java</p>
 * <p>Description: 順子</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * @author Tunie 
 * @date 2014年9月16日
 * @version 1.0
 */
public class Junko extends HandCard {
	
	public Junko() {
		setType(HandCardType.JUNKO);
	}

	@Override
	protected boolean determineConditions(CardGroup cardGroup) {
		return cardGroup.size() >= 5;
	}

	@Override
	protected boolean judgeResult(CardGroup cardGroup) {
		cardGroup.doSort(CardGroupSortType.DECREASE);
		boolean result = true;
		int score = cardGroup.getCard(0).getType();
		for(int i = 1; i <cardGroup.size() ; i ++ ) {
			score --;
			if(score != cardGroup.getCard(i).getType()){
				result = false;
				break;
			}
		}
		return result;
	}
}
相關文章
相關標籤/搜索