Java 斯卡恩';s骰子游戏:comp_总分数未更新
下面的代码是电脑玩游戏代码的一部分。问题是电脑播放时,comp_的总分数没有得到更新。 请帮忙Java 斯卡恩';s骰子游戏:comp_总分数未更新,java,android,Java,Android,下面的代码是电脑玩游戏代码的一部分。问题是电脑播放时,comp_的总分数没有得到更新。 请帮忙 while(comp_turn_score < 20) { //roll logic rollValue = rolldice(); Log.v("\nComputer Roll:",Integer.toString(rollValue)); if(rollValue != 1) {
while(comp_turn_score < 20)
{
//roll logic
rollValue = rolldice();
Log.v("\nComputer Roll:",Integer.toString(rollValue));
if(rollValue != 1)
{
comp_turn_score += rollValue;
updateLabel("Computer's Turn Score: " + comp_turn_score);
return;
}
else //computer roll a 1
{
//reset turn score to 0 and give control to user
comp_turn_score = 0;
updateLabel("\nComputer rolled a 1! Your's Turn");
rollb.setEnabled(true);
}
}
//computer holds
comp_overall_score+= comp_turn_score;
updateLabel("\nComputer Holds! Your's Turn");
if(checkWinner()) return;
rollb.setEnabled(true);
}
private void updateLabel(String s)
{
lable.setText("\nYour score: " + user_overall_score + " Computer Score: " + comp_overall_score +" " + s);
}
while(综合得分<20)
{
//滚动逻辑
rollValue=rolldice();
Log.v(“\n计算机卷:”,Integer.toString(rollValue));
如果(rollValue!=1)
{
综合得分+=滚动值;
更新标签(“计算机的回合分数:+comp_回合分数”);
返回;
}
其他//计算机卷a 1
{
//将回合分数重置为0,并将控制权交给用户
综合得分=0;
updateLabel(“\n计算机掷1!轮到你了”);
rollb.setEnabled(真);
}
}
//计算机舱
综合得分+=综合得分;
updateLabel(“\n计算机等待!轮到你了”);
if(checkWinner())返回;
rollb.setEnabled(真);
}
私有void updateLabel(字符串s)
{
lable.setText(“\n您的分数:+user\u-totall\u-score+”计算机分数:+comp\u-totall\u-score+”+s);
}
删除return语句,所有语句都将按计划工作
删除return语句,所有语句都将按计划工作。看起来只有当值==1时,它才会更新。return将停止函数。我想您是在寻找中断/继续而不是返回
比较转折点得分的初始值是多少?变量rollValue
的值是多少?您可以将else
块中的comp turn\u分数更改为0
。不要忘记,这个变量决定了循环条件。基本上,rollvalue是在1到6之间生成的一个随机数,每次相对于rollvalue,comp_turn_分数都会更新。看起来,它只会在值==1时更新。返回将停止函数。我想您是在寻找中断/继续而不是返回比较转折点得分的初始值是多少?变量rollValue
的值是多少?您可以将else
块中的comp turn\u分数更改为0
。不要忘记,这个变量决定了循环的条件。基本上,rollvalue是在1到6之间生成的一个随机数,并且comp_turn_分数每次都会根据rollvalue进行更新
if(rollValue != 1)
{
comp_turn_score += rollValue;
updateLabel("Computer's Turn Score: " + comp_turn_score);
return;
}