2 回答
TA贡献1831条经验 获得超10个赞
ArrayList<Button> tempList = new ArrayList<>();
改为使用,因为否则您将缺少方法(尽管将变量从ArrayList
to转换为List
不会引起任何投诉)。
该if
情况可能是(i+1) < MAXLEVELS
因为,i
是0
基础,curLevel
是1
基础。
最简单的可能是初始化curLevel = 0
并仅将其显示为curLevel + 1
...否则您将始终必须考虑业务逻辑中的+1
/-1
偏移量,我认为这是“无用的复杂性”...以便游戏开始在 level 0
,同时 level1
显示在 GUI 上。
TA贡献1809条经验 获得超8个赞
看起来您正在尝试为buttons已执行点击事件的按钮查找可用的任何匹配项。
为此,我建议您使用 找到完全匹配viewId,您可以更改您的方法,如下所示。
private void buttonLogic(View v) {
boolean hasAnyMatch = false;
// Assumption is curLevel will always be less than MAXLEVELS
for (int i = 0; i <= curLevel; i++) {
if (v.getId() == buttons.get(i).getId()) {
hasAnyMatch = true;
break;
}
}
if (hasAnyMatch) {
curGuess++;
checkWin ();
} else {
lostGame ();
}
}
添加回答
举报