双色球选号(四)——底部导航文本处理
核心代码:
// note*********************7、底部导航中间提示信息处理*********************
/**
* 求一个数的阶乘
*
* @param num
* 待求的数
* @return num的阶乘 num!
*/
// 注意:如果num过大,return值会超出范围,但这里对红色球做了限制,就不会有这个问题
public long factorial(int num) {
LogUtil.i(TAG, "num:" + num);
if (num < 0) {
throw new IllegalArgumentException("参数不对,num<0");
} else if (num == 0 || num == 1) {
return 1;
}else {
return num*factorial(num-1);
}
}
/**
* 获取总的球投注注数
*
* @return
*/
public long countNoteBall() {
long total = 0;
if (listRedSelected != null && listBlueSelected != null) {
if (listRedSelected.size() < 6) {// 不足一注
return 0;
}
// 红色球个数
long redBallCount = factorial(listRedSelected.size())
/ (factorial(6) * factorial(listRedSelected.size() - 6));
LogUtil.i(TAG, "redBallCount:" + redBallCount);
// 蓝色球个数
int blueBallCount = listBlueSelected.size();
// 总注数
total = redBallCount * blueBallCount;
return total;
}
return -1;
}
/**
* 底部导航提示信息
*/
public void changeBottomTip() {
// tv_game_choose_notice_zl
// 1、不足一注
// 注数判断
// 不足一注时,提示需要选择号码数量
if (countNoteBall() <= 0) {
// 1-1、红色球不够
if (listRedSelected.size() < 6) {
String notice = "还需要选择" + (6 - listRedSelected.size()) + "个红球";
BottomNavigatorManager.getBottomNavigatorManagerInstance().changeGameBottomNotice(notice );
} else if (listBlueSelected.size() < 1) {
// 1-2、蓝色球不够
String notice = "还需要选择" + 1 + "个蓝球";
BottomNavigatorManager.getBottomNavigatorManagerInstance().changeGameBottomNotice(notice);
}
} else {
// 2、大于一注
String notice = countNoteBall() + "注" + countNoteBall() * 2 + "元";
BottomNavigatorManager.getBottomNavigatorManagerInstance().changeGameBottomNotice(notice);
}
}
|
结果: |
|