我在组织方面遇到了麻烦

时间:2017-03-17 22:05:06

标签: java code-organization

我刚学会了如何在java中使用不同的类,但我不清楚如何使用。我也想知道如何在我的代码中创建一个足够的机制来启动和停止我的游戏。例如,当某人输入您不应该输入的内容时,它将允许他们再次输入。请记住,我还没有完成这个小游戏。

package Horror;

import java.util.Scanner;

public class main {
    public static void main (String[] args){
        //Creating a scanner to get user input
        Scanner input = new Scanner(System.in);

        //Game Story | Introduction
        System.out.println("You find yourself in a car, but you have no idea how you got there. It's raining outside and you spot a house through your cold window. You see something in the glovebox.");
        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
        String contlol = input.nextLine();
        System.out.println("Choices:");
        System.out.println("'Leave'");
        System.out.println("'Open Glovebox'");
        String firstchoice = input.nextLine();
        //Choice of leaving the car without opening the glovebox
        if (firstchoice.equalsIgnoreCase("Leave")){
            System.out.println("You get outside of the car. It's dark and rainy and you have no other choice than to enter the safest place that's closest to you. The house");
            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
            String cont1 = input.nextLine();
            System.out.println("Choices:");
            System.out.println("'Walk'");
            String in = input.nextLine();
            //Choice of Walking to the house
            if (in.equalsIgnoreCase("Walk")){
                System.out.println("You begin to walk towards the house. The door creaks open, and you find yourself in a dusty, cold house. The house doens't seem like it has had anybody in it for years, and there is an upstairs and a kitchen.");
                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                String cont2 = input.nextLine();
                System.out.println("Choices:");
                System.out.println("'Kitchen'");
                System.out.println("'Upstairs'");
                System.out.println("'Living Room'");
                String gimme = input.nextLine();
                if (gimme.equalsIgnoreCase("Kitchen")){
                    System.out.println("You walk into the dark kitchen. You find a light switch to the side, and the room brightens up a tiny bit. You see that the stove is on. Someone is boiling water.");
                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                    String gay = input.nextLine();
                    System.out.println("Choices");
                    System.out.println("'Run'");
                    System.out.println("'Stay'");
                    String utters = input.nextLine();
                    if (utters.equalsIgnoreCase("Run")){
                        System.out.println("You run to the door helplessly. You find that the door is locked... From the outside.");
                        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                        String k = input.nextLine();
                        System.out.println("Choices:");
                        System.out.println("'Upstairs'");
                        System.out.println("'Living Room'");
                        String kkk = input.nextLine();
                        if (kkk.equalsIgnoreCase("Upstairs")){
                            System.out.println("As you start your journey upstairs, the stairs start creaking, and you hear someone. After a while, you convince yourself it was your imagination.");
                            System.out.println("Once you get upstairs, you find a bathroom, and a bedroom.");
                            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                            String rape = input.nextLine();
                            System.out.println("Choices:");
                            System.out.println("'Bathroom'");
                            System.out.println("'Bedroom'");
                    }
                }else if (utters.equalsIgnoreCase("Stay")){
                    System.out.println("You walk toward the boiling pot of water. Inside, you see someone, but not yourself...");
                    System.out.println("You turn around, but not quick enough to evade the knife that is being hurled at you. It sticks inside your heart.");
                    System.out.println("You start to slowly die, watching the creature above you stare down into your eyes.");
                    System.out.println("YOU LOSE. . .");
                    return;
                }
                }else if (gimme.equalsIgnoreCase("Living Room")){
                    System.out.println("You walk into the small, but somehow spacious living room. There is a television, ceiling fan, record player, couches, and other living room items.");
                    System.out.println("As soon as you walk into the living room, the telvesion turns on to a news channel, and the ceiling fan starts spinning.");
                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                    String dick = input.nextLine();
                    System.out.println("Choices:");
                    System.out.println("'Run'");
                    System.out.println("'Investigate'");
                    String meme = input.nextLine();
                    if (meme.equalsIgnoreCase("Investigate")){
                        System.out.println("You circle around the living room. You find a cassette tape inside the telveison. You hear something behind you.");
                        System.out.println("You turn around, but no one's there. You turn back around and the cassette tape is gone.");
                        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                        String gutknife = input.nextLine();
                        System.out.println("Choices:");
                        System.out.println("'Upstairs'");
                        System.out.println("'Kitchen'");
                        String search = input.nextLine();
                        if (search.equalsIgnoreCase("Upstairs")){
                            System.out.println("As you start your journey upstairs, the stairs start creaking, and you hear someone. After a while, you convince yourself it was your imagination.");
                            System.out.println("Once you get upstairs, you find a bathroom, and a bedroom.");
                            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                            String rape = input.nextLine();
                            System.out.println("Choices:");
                            System.out.println("'Bathroom'");
                            System.out.println("'Bedroom'");
                            String fight = input.nextLine();
                            if (fight.equalsIgnoreCase("Bathroom")){
                                System.out.println("As you walk into the bathroom, you flip on the light switch. You find a sink, toilet, mirror, and a bath tub with the shower curtains covering it.");
                                System.out.println("You hear water dripping.");
                                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                String poop = input.nextLine();
                                System.out.println("Choices:");
                                System.out.println("'Investigate'");
                                System.out.println("'Look in Mirror'");
                                String gimmedat = input.nextLine();
                            }else if (fight.equalsIgnoreCase("Bedroom")){
                                System.out.println("You walk in to a roomy bedroom. You think to yourself that it must be the master bedroom. You start looking around.");
                                System.out.println("After inspecting the room for a few minutes, you find a bloody knife on the drawer, it's right next to a dead body lying next to you feet.");
                                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                String cont0101 = input.nextLine();
                                System.out.println("Choices:");
                                System.out.println("'Scream'");
                                System.out.println("'Examine'");
                                String gaymemes = input.nextLine();
                                if (gaymemes.equalsIgnoreCase("Examine")){

                                }
                            }
                        }
                    }
                } else if (gimme.equalsIgnoreCase("Upstairs")){
                    System.out.println("As you start your journey upstairs, the stairs start creaking, and you hear someone. After a while, you convince yourself it was your imagination.");
                    System.out.println("Once you get upstairs, you find a bathroom, and a bedroom.");
                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                    String rape = input.nextLine();
                    System.out.println("Choices:");
                    System.out.println("'Bathroom'");
                    System.out.println("'Bedroom'");
                    String xdd = input.nextLine();
                    if (xdd.equalsIgnoreCase("Bathroom")){
                        System.out.println("As you walk into the bathroom, you flip on the light switch. You find a sink, toilet, mirror, and a bath tub with the shower curtains covering it.");
                        System.out.println("You hear water dripping.");
                        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                        String poop = input.nextLine();
                        System.out.println("Choices:");
                        System.out.println("'Investigate'");
                        System.out.println("'Look in Mirror'");
                        String gimmedat = input.nextLine();
                }else if (xdd.equalsIgnoreCase("Bedroom")){
                    System.out.println("You walk in to a roomy bedroom. You think to yourself that it must be the master bedroom. You start looking around.");
                    System.out.println("After inspecting the room for a few minutes, you find a bloody knife on the drawer, it's right next to a dead body lying next to you feet.");
                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                    String cont0101 = input.nextLine();
                    System.out.println("Choices:");
                    System.out.println("'Scream'");
                    System.out.println("'Examine'");
                    String rapeme = input.nextLine();
                    if (rapeme.equalsIgnoreCase("Examine")){

                    }
                }
            }
            }
        }else if (firstchoice.equalsIgnoreCase("Open Glovebox")){
            System.out.println("You find a note in the glovebox. It reads: 'They've taken it away from me. They told me I was crazy. But I'll prove them wrong. I will take it back. I will make this right. You don't know me. But I am there. Watching.");
            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
            String cont3 = input.nextLine();
            System.out.println("Choices:");
            System.out.println("Leave");
            String getin = input.nextLine();
            if (getin.equalsIgnoreCase("Leave")){
                System.out.println("You get outside of the car. It's dark and rainy and you have no other choice than to enter the safest place that's closest to you. The house");
                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                String cont69 = input.nextLine();
                System.out.println("Choices:");
                System.out.println("'Walk'");
                String fat = input.nextLine();
                if (fat.equalsIgnoreCase("Walk")){
                    System.out.println("You begin to walk towards the house. The door creaks open, and you find yourself in a dusty, cold house. The house doens't seem like it has had anybody in it for years, and there is an upstairs and a kitchen.");
                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                    String cont2 = input.nextLine();
                    System.out.println("Choices:");
                    System.out.println("'Kitchen'");
                    System.out.println("'Upstairs'");
                    System.out.println("'Living Room'");
                    String gimme = input.nextLine();
                    if (gimme.equalsIgnoreCase("Kitchen")){
                        System.out.println("You walk into the dark kitchen. You find a light switch to the side, and the room brightens up a tiny bit. You see that the stove is on. Someone is boiling water.");
                        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                        String gay = input.nextLine();
                        System.out.println("Choices");
                        System.out.println("'Run'");
                        System.out.println("'Stay'");
                        String utters = input.nextLine();
                        if (utters.equalsIgnoreCase("Run")){
                            System.out.println("You run to the door helplessly. You find that the door is locked... From the outside.");
                            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                            String k = input.nextLine();
                            System.out.println("Choices:");
                            System.out.println("'Upstairs'");
                            System.out.println("'Living Room'");
                            String kkk = input.nextLine();
                            if (kkk.equalsIgnoreCase("Upstairs")){
                                System.out.println("As you start your journey upstairs, the stairs start creaking, and you hear someone. After a while, you convince yourself it was your imagination.");
                                System.out.println("Once you get upstairs, you find a bathroom, and a bedroom.");
                                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                String rape = input.nextLine();
                                System.out.println("Choices:");
                                System.out.println("'Bathroom'");
                                System.out.println("'Bedroom'");
                                String xdd = input.nextLine();
                                if (xdd.equalsIgnoreCase("Bathroom")){
                                    System.out.println("As you walk into the bathroom, you flip on the light switch. You find a sink, toilet, mirror, and a bath tub with the shower curtains covering it.");
                                    System.out.println("You hear water dripping.");
                                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                    String poop = input.nextLine();
                                    System.out.println("Choices:");
                                    System.out.println("'Investigate'");
                                    System.out.println("'Look in Mirror'");
                                    String gimmedat = input.nextLine();
                                    }else if (xdd.equalsIgnoreCase("Bedroom")){
                                        System.out.println("You walk in to a roomy bedroom. You think to yourself that it must be the master bedroom. You start looking around.");
                                        System.out.println("After inspecting the room for a few minutes, you find a bloody knife on the drawer, it's right next to a dead body lying next to you feet.");
                                        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                        String cont0101 = input.nextLine();
                                        System.out.println("Choices:");
                                        System.out.println("'Scream'");
                                        System.out.println("'Examine'");
                                        String ugh = input.nextLine();
                                        if (ugh.equalsIgnoreCase("Examine")){

                                        }
                                    }
                                }
                            }else if (utters.equalsIgnoreCase("Stay")){
                                System.out.println("You walk toward the boiling pot of water. Inside, you see someone, but not yourself...");
                                System.out.println("You turn around, but not quick enough to evade the knife that is being hurled at you. It sticks inside your heart.");
                                System.out.println("You start to slowly die, watching the creature above you stare down into your eyes.");
                                System.out.println("YOU LOSE. . .");
                                return;
                            }
                        }else if (gimme.equalsIgnoreCase("Upstairs")){
                            System.out.println("As you start your journey upstairs, the stairs start creaking, and you hear someone. After a while, you convince yourself it was your imagination.");
                            System.out.println("Once you get upstairs, you find a bathroom, and a bedroom.");
                            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                            String rape = input.nextLine();
                            System.out.println("Choices:");
                            System.out.println("'Bathroom'");
                            System.out.println("'Bedroom'");
                            String xdd = input.nextLine();
                            if (xdd.equalsIgnoreCase("Bathroom")){
                                System.out.println("As you walk into the bathroom, you flip on the light switch. You find a sink, toilet, mirror, and a bath tub with the shower curtains covering it.");
                                System.out.println("You hear water dripping.");
                                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                String poop = input.nextLine();
                                System.out.println("Choices:");
                                System.out.println("'Investigate'");
                                System.out.println("'Look in Mirror'");
                                String gimmedat = input.nextLine();
                                }
                    }else if (gimme.equalsIgnoreCase("Living Room")){
                        System.out.println("You walk into the small, but somehow spacious living room. There is a television, ceiling fan, record player, couches, and other living room items.");
                        System.out.println("As soon as you walk into the living room, the telvesion turns on to a news channel, and the ceiling fan starts spinning.");
                        System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                        String dick = input.nextLine();
                        System.out.println("Choices:");
                        System.out.println("'Run'");
                        System.out.println("'Investigate'");
                        String meme = input.nextLine();
                        if (meme.equalsIgnoreCase("Investigate")){
                            System.out.println("You circle around the living room. You find a cassette tape inside the telveison. You hear something behind you.");
                            System.out.println("You turn around, but no one's there. You turn back around and the cassette tape is gone.");
                            System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                            String gutknife = input.nextLine();
                            System.out.println("Choices:");
                            System.out.println("'Upstairs'");
                            System.out.println("'Kitchen'");
                            String search = input.nextLine();
                            if (search.equalsIgnoreCase("Kitchen")){
                                System.out.println("You walk into the dark kitchen. You find a light switch to the side, and the room brightens up a tiny bit. You see that the stove is on. Someone is boiling water.");
                                System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                String gay = input.nextLine();
                                System.out.println("Choices");
                                System.out.println("'Run'");
                                System.out.println("'Stay'");
                                String utters = input.nextLine();
                                if (utters.equalsIgnoreCase("Run")){
                                    System.out.println("You run to the door helplessly. You find that the door is locked... From the outside.");
                                    System.out.println("PRESS ANY KEY TO CONTINUE. . .");
                                    String k = input.nextLine();
                                    System.out.println("Choices:");
                                    System.out.println("'Upstairs'");
                                    String kkk = input.nextLine();
                                    }else if (utters.equalsIgnoreCase("Stay")){
                                        System.out.println("You walk toward the boiling pot of water. Inside, you see someone, but not yourself...");
                                        System.out.println("You turn around, but not quick enough to evade the knife that is being hurled at you. It sticks inside your heart.");
                                        System.out.println("You start to slowly die, watching the creature above you stare down into your eyes.");
                                        System.out.println("YOU LOSE. . .");
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            }
    }
}

1 个答案:

答案 0 :(得分:3)

这里的内容基本上是state machine。你打印一些东西,然后提出一些选择;用户输入其中一个选项,然后转到某个不同的状态" (即一个不同的地方),你在那里打印东西,提出选择,转移到一个新的状态......等等。

你可以代表一个像这样的州:

class State {
  String message;
  Map<String, State> choices = new LinkedHashMap<>();
}

(为清晰起见,故意留下裸露)

并构建一些像这样的状态:

State start = new State();
start.message = "You find yourself in a car...";

State leaveTheCar = new State();
leaveTheCar.message = "You get outside of the car...";

State openGlovebox = new State();
openGlovebox.message = "You find a note...";

State dead = new State();
dead.message = "You're dead.";

像这样一起加入各州:

start.choices.put("Leave", leaveTheCar);
start.choices.put("Open glovebox", openGlovebox);

leaveTheCar.choices.put("Get back in car", start);
leaveTheCar.choices.put("Blah", dead);

openGlovebox.choices.put("Bloo", dead);

所以,你说的是,当你刚开始时,你可以选择&#34;离开&#34;,然后你就转移到&#34;离开车& #34;州或者打开手套箱&#34;州;并且你可以回到车里,或做一些导致你死亡的事情。

您可以将其绘制为state transition diagram,其中&#34;节点&#34;是状态,&#34;边缘&#34;是选择:

enter image description here

您需要创建这些State个实例的加载,并将它们连接在一起,以适应您的游戏。但是,一旦你拥有了,那就是“玩”的逻辑。非常简单:

State state = start;
while (true) {
  System.out.println(state.message);
  if (state.choices.isEmpty()) {
    break;  // No choices: game over.
  }

  while (true) {  // Keep going until user enters a valid choice.
    System.out.println("Choices:");
    for (String key : state.choices.keySet()) {
      System.out.println("'%s'%n", key);
    }
    String choice = input.nextLine();
    if (state.choices.containsKey(choice)) {
      state = state.choices.get(choice);  // Go to the next state.
      break;
    }

    System.out.println("Choose again!");
  }
}

要实现相关但略有不同的方法,请查看State design pattern