Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 得分游戏执行不正确_Java - Fatal编程技术网

Java 得分游戏执行不正确

Java 得分游戏执行不正确,java,Java,任何提示都将不胜感激 一些数据也可能有用。所有罢工人数为300人 我已经按照老师的要求删除了我的信息。我尝试删除帖子,但堆栈溢出不允许我删除。很抱歉给您带来不便。您的逻辑分布很差。在一个if语句中,你打印出他们罢工,然后在下面的几个语句中,你检查是否罢工 在适用的情况下,您应该合并这些声明 例如: if (pinsDown1 == 10) { isStrike = true; } if(isStrike) { s

任何提示都将不胜感激

一些数据也可能有用。所有罢工人数为300人


我已经按照老师的要求删除了我的信息。我尝试删除帖子,但堆栈溢出不允许我删除。很抱歉给您带来不便。

您的逻辑分布很差。在一个if语句中,你打印出他们罢工,然后在下面的几个语句中,你检查是否罢工

在适用的情况下,您应该合并这些声明

例如:

        if (pinsDown1 == 10) {
            isStrike = true;
        }

 if(isStrike) {
            score += pinsDown1;
            score += pinsDown2;
            if(isStrike && pinsDown1 == 10) {
                isTwoStrikes = true;
            }
            isStrike = false;
            System.out.println("The score is: " + score);
        }

可以是单个if语句。您应该修改您的代码,因为这种情况有更多的实例,这使得阅读和理解非常困难。此外,您不需要使用任何函数,它们也可能有助于减少在整个代码中重复的次数

我会给你一个专业提示,一开始可能很难使用,但会节省你很多时间

编写单元测试!这将迫使您对其进行更好的建模

首先,假装你不在乎用户的输入。创建一个名为Game的java类。添加一个名为init()的方法来设置游戏。添加另一个方法shot(int pins),它允许您击倒一些pins。添加另一个返回分数的方法getScore()

现在您可以编写一个测试了。测试应该在游戏开始时进行,进行射击,并检查分数。如果分数是错误的,它应该抛出一个错误

然后再添加一个测试,也许是为了检查备胎的得分

慢慢地构建它,直到您测试了所有案例。也许您需要一个方法来返回您正在播放的帧?最后,添加用户输入。每当用户转弯时,报告帧和分数


我希望这有帮助

首先,我看不到任何“帧”的数据结构除此之外,每一个“框架”都应该记录两次(或三次!)“抛出”中的每一次抛出的“引脚”的位置。强烈建议(如上所述):请重构您的代码,以利用“类”。在“main()”中应该有尽可能少的代码。当然,在类之外没有“业务逻辑”。但你眼前的问题在别处。在这里查看如何评分:。请注意,“完美游戏”的分数为{30、60、90、120、150、180、210、240、270、300}问:运气好吗?bowlingjenius.com链接有助于找出您的算术错误吗?我们意识到这对一个初学者要求很高。。。但是,是否有兴趣将代码重构成至少一个额外的类(甚至只是一个“游戏”,您可以从main“抛出”…但该类拥有所有“逻辑”)?,和/或尝试“单元测试”?请保持我们的联系。我投票结束这个问题作为离题,因为它不再是问题了。我同意“逻辑分散得很糟糕”。要解决这个问题,OP应该将代码重构为“类”。例如,一个“游戏”对象,由10个“帧”对象组成。我同意。我再重复一遍:编写“单元测试”的前提是,您已经将“业务逻辑”封装到具有可测试行为的类中。