Java MineSweeper:计算字段中的地雷数量

时间:2014-10-23 21:45:00

标签: java minesweeper

我试图用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;
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果magnitude小于100,则由于整数除法,probability将为0。你可以做到

probability = (float) ((magnitude/100.0) * 20);