006 关于顺子的判断修改

本文讨论了对顺子类的单元测试过程及发现的问题,并提供了代码修正方案。

    对于没有经过单元测试的类,我实在是放心不下,于是我给Junko写了单元测试,代码如下:

/**
 * <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代码:

/**
 * <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;
	}
}

转载于:https://my.oschina.net/u/2011113/blog/314062

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值