2 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
以下是您的代碼的問(wèn)題:
您永遠(yuǎn)不會(huì)返回該roll(...)方法生成的隨機(jī)值
public int roll(int rand){
rand = r.nextInt(value);
return value;
}
將其更改為
public int roll(int rand) {
return r.nextInt(rand);
}
在 for 循環(huán)中,您只需調(diào)用該roll() 方法即可。由于它已經(jīng)計(jì)算出骰子的隨機(jī)值,因此您無(wú)需r.nextInt()再次調(diào)用。
value = r.nextInt(user.roll(sides)) + 1;
value2 = r.nextInt(comp.roll(sides)) + 1;
將其更改為
value = user.roll(sides) + 1;
value2 = comp.roll(sides) + 1;
現(xiàn)在使用打印出值:
System.out.printf("%s rolled: %d\n", user.getOwner(), value);
System.out.print("Computer rolled: " + value2 + "\n\n");
執(zhí)行上述步驟后,您的代碼將按預(yù)期工作。另外作為旁注,不要使用含義不明確的變量名,如value、value2等。

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
每當(dāng)您制作一個(gè)新骰子時(shí),您的骰子value
永遠(yuǎn)不會(huì)從零更改,從而導(dǎo)致該錯(cuò)誤彈出,因?yàn)楦鶕?jù)您的 Die 類(lèi),每當(dāng)您調(diào)用 roll() 時(shí)它將查看的范圍是 0 到 0。更改value
為用戶(hù)投入的價(jià)值并制造新的模具。
添加回答
舉報(bào)