Java Simon说程序问题

时间:2015-11-17 23:09:29

标签: java if-statement for-loop joptionpane do-while

这是我在这个网站上的第一篇文章,所以如果我违反规则或我不知道的事情,我会非常抱歉。也就是说,我已被分配到我的老师做一个Simon Says课程,我正在努力学习课程,所以我正在寻找其他帮助途径。规则如下:

完成此作业的方法完全取决于您。代码必须完全按照指定的方式工作以获得适当的信用。你将设计游戏西蒙。西蒙有四种颜色:红色,蓝色,绿色和黄色。用户必须选择与Simon选择的颜色相同且颜色正确的颜色。西蒙选择的颜色必须是随机的。每一轮连续的西蒙都会在序列中添加另一种颜色。当用户失败时,Simon应该告诉用户他们持续了多少轮。你可以玩多少回合应该没有限制。此分配不需要GUI。如果您使用JOptionPane选择颜色,则必须使用红色,蓝色,绿色和黄色的字母快捷方式。您还必须包含游戏说明。您还必须跟踪每个游戏的高分,并允许用户输入他们的名称以获得高分。如果你关闭程序,你不必保持得分;只有在节目开放的时候。

当我执行我的代码时,当用户给出正确答案但在一个循环后终止时,它不会继续游戏。奇怪的是,如果我给它错误的答案,它似乎只是循环。最后,我想指出我的程序非常基本,因为老实说,我知道如何使用它。谢谢你的帮助

<div class="content-comment">

1 个答案:

答案 0 :(得分:0)

您的代码不需要很多,而且您的代码应该比它应该更难:)。

我发布了代码来展示我将如何使用两个单个for循环来制作程序,以及检查用户取消输入时正在创建的讨厌的 NullPointerException。 / p>

public String simon() {
    while(true){
        generateColor();
        for(int i = 0; i < colors.size(); i++){
            JOptionPane.showMessageDialog(null, "Color #"+i+" is: "+colors.get(i));
        }
        for(int i = 0; i < colors.size(); i++){
            String input = JOptionPane.showInputDialog("Type in #"+i+" color: ");
            if(input == null){
                System.out.println("User typed in wrong input");
                return "Program ended unsuspectively";
            }
            if(input.equalsIgnoreCase(colors.get(i))){
                System.out.println("You were correct!");
            }
            else{
                System.out.println("you wasnt correct");
                return "You ended with a score of: "+score;
            }
        }
        score++;
    }
}

private void generateColor(){
    int c = (int)(Math.random() * 4);
    colors.add(obj[c]);
}     

希望这有所帮助并度过美好的一天:)