我一直致力于这个yahtzee项目并遇到了一个问题。 dice_number数组似乎没有获得随机生成的值。 oneScore TextView始终显示“ - ”。我正在发布我的代码。提前感谢您提供的任何帮助。此外,如果您需要查看代码,请告诉我。
switch (v.getId()) {
case R.id.rollBtn:
for(i = 0; i < 5; i++){
randnum = random.nextInt(5);
if(i == 0){
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
else if(i == 1){
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
else if(i == 2){
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
else if(i == 3){
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
else if(i == 4){
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
else if(i == 5){
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
}
break;
case R.id.onesBtn:
for (i = 0; i < 5; i++)
{
if (dice_number[i] == 1) {
dice_count[0] += 1;
oneScore.setText(Integer.toString(dice_count[0]));
}
else
oneScore.setText("--");
}
答案 0 :(得分:1)
第二个for循环重新设置每个数字的文本。所以如果你有一个数组
dice_number = {3, 2, 1, 1, 4}
TextView
将设置为--
,然后设置为--
,然后设置为1
(如果dice_count[0]
为0),则设置为2
,然后--
,所以你会看到dice_number[4]
的结果,这是最后一个--
。
您需要构造一个字符串或使用多个TextViews
来查看整个数组,而不仅仅是最后一个元素。
此外,第一个for循环中的if语句在我所知道的范围内没有做任何事情。
答案 1 :(得分:1)
不是答案,只是建议的重构:
case R.id.rollBtn:
for(i = 0; i < 5; i++){
randnum = random.nextInt(5);
images[i].setImageResource(image_array[randnum]);
dice_number[i] = randnum;
}
break;
事实上,永远不会达到if(i == 5) {..}
所说的代码段,因为i
的值始终为0,1,2,3或4。