我正在尝试用 Java 制作一个基本的扫雷游戏。
我正在制定一种方法,根据用户选择的难度来计算田野中的地雷数量。
假设该字段共有 64 个单元格,并且用户选择了“高级”难度。假设 50% 的单元格将布满地雷,因此总共有 32 个地雷 (场总震级/100 * 50)。
我遇到的问题是返回值始终为 0。
这是我正在编写的方法:
public int calculateMines ()
{
int mines;
mines = 0;
float probability;
probability = (float) 0.0;
int magnitude;
magnitude = 0;
char dificulty;
dificulty = '0';
magnitude = this.getMagnitude();
dificulty = this.getDificulty();
switch (dificulty)
{
case 'B':
case 'b':
probability = (float) ((magnitude/100) * 20);
break;
case 'I':
case 'i':
probability = (float) ((magnitude/100) * 30);
break;
case 'A':
case 'a':
probability = (float) ((magnitude/100) * 50);
break;
default:
probability = -1;
System.err.println("EEROR!");
break;
}
mines = (int) probability;
return mines;
}
我做错了什么?
最佳答案
如果幅度
小于100
,则由于整数除法,概率
将为0
。你可以这样做
probability = (float) ((magnitude/100.0) * 20);
关于Java 扫雷 : Calculating the amount of mines in a field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26538000/