我试图用Java制作基本的MineSweeper游戏。
我正在制作一种方法,根据用户选择的难度计算现场的地雷数量。
假设该字段总共有64个单元格,用户选择了" Advanced"困难。让我们说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;
}
我做错了什么?
答案 0 :(得分:1)
如果magnitude
小于100
,则由于整数除法,probability
将为0
。你可以做到
probability = (float) ((magnitude/100.0) * 20);