Java 扫雷 : Calculating the amount of mines in a field

标签 java minesweeper

我正在尝试用 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/

相关文章:

java - CardView 不支持 TransitionDrawable?

java - 在 JOGL 中调整图形窗口大小和视口(viewport)转换

lua - 如何在 Lua 中用表初始化表?

Java MineSweeper 不计算右侧的炸弹

java - 编程挑战扫雷帮助 : How to check for a "*" in a 2D string array?

javascript - 扫雷算法解决方案

java - 如何将Java对象转换为Json格式化属性名

java - 位置 : 5. 处的格式错误的 SQL92 字符串需要 "call"?

java - 在 Groovy 中难以格式化日期

c++ - 如果带有 char 数组的语句无法正常工作