Java骰子游戏中的反问题

时间:2017-02-11 23:03:40

标签: java

Java Dice游戏中的反问题

2 个答案:

答案 0 :(得分:0)

完成后,您只调用Stats()方法一次,因此userWins++userLoss++语句只调用一次。您应该在DispOutcome()方法中移动这些语句,以便为每个游戏调用它们。您已经检查了(guess == dicesum),这是他们去的地方。

答案 1 :(得分:0)

我可以看到2个问题:

问题#1。

percentW = (userWins / games);
percentL = (userLoss / games);

变量userWinsgamesuserLoss都是整数。所以这些划分将被视为整数算术。这将导致percentWpercentL成为0.0

提示:要使用浮点强制执行除法,请将其中一个或两个操作数转换为double。你有没有被教过如何从一种原始类型转换为另一种原始类型?

问题#2。

变量的增量发生在Stats方法中。 Stats方法只调用一次。因此,变量只会增加一次。

提示:如果Stats的目的是打印出统计数据,那么你用错误的方法递增得分。

顺便说一下,风格和其他方面存在一些问题:

  • 方法名称不应以Java中的大写字母开头。

  • 缩进不一致。我怀疑您在源文件中使用TAB字符。如果将代码剪切并粘贴到Markdown ...以及其他上下文中,则会导致问题。例如Linux / Mac与Windows!

    最好将IDE配置为使用SP字符进行缩进。

  • 您使用{ ... }的方式存在问题。例如:

    {
        if (guess == dicesum)
            System.out.println("You won!");
        else if (guess != dicesum)
            System.out.println("Sorry! You lost!");
    } 
    

    如果你看一下,那些括号在那里没有用处。

  • 在这样的声明中:

        GuessNum(); //call GuessNum method
    

    评论是(IMO)有害的。它说代码中没有任何东西是不完全明显的。事实上,它真正做的只是分散读者。

  • 此代码应为OO。您严重依赖static方法和static变量。 (也许这是下一课......)