当前位置: 首页 > 知识库问答 >
问题:

显然我对基于文本的布尔类游戏有意见

缑永年
2023-03-14
Scanner sc = new Scanner (System.in);
String enter = new String ("Enter your name brave soul: ");
System.out.println (enter);
String name = sc.next();
System.out.println ("Your name is: " + name + "? Y/N");
boolean y = true; 
boolean n = false;
String yesorno = sc.next();

String intro1 = new String ("Welcome to Urieka! The objective of this game is quite simple, just find the key to escape.");


if (true) {System.out.println (intro1);}   //here
else if (false) {System.out.println (enter);} //here

我有个问题,如果用户输入y,我想打印简介1,如果输入错误,我想提示输入名称。它目前只打印简介1,不管我输入y还是否。

此外,我是否有办法再次运行该扫描仪,因为我假设如果我确实运行了该功能,并且用户输入n/false,那么它只会打印“输入您的名字勇敢的灵魂”,而不会打印其他内容。我是否需要在else if行的语句中添加一个扫描器?

共有3个答案

鲍俊杰
2023-03-14

你永远不会改变这些布尔值:

boolean y = true;
boolean n = false;

也尽量避免使用if(true),如前文所述:

if (true) {System.out.println (intro1);}   //here

实例化字符串对象时,不强制使用构造函数:

String enter = new String("Enter your name brave soul: ");
// IS THE SAME AS <=>
String enter = "Enter your name brave soul: ";

以下是我对你问题的解决方案:

Scanner scanner = new Scanner(System.in);
    boolean correctName = false;
    String name = "";

    while(!correctName){ //== Will run as long "correctName" is false. 
        System.out.println("Enter your name brave soul: ");
        name = scanner.next();
        System.out.println("Your name is: " + name + "? Y/N");
        String yesorno = scanner.next();
        correctName = "Y".equalsIgnoreCase(yesorno);  //== changes the boolean depending on the answer
    }
    System.out.println("Welcome to Urieka" + name + "! The objective of this game is quite simple, just find the key to escape.");
袁奇玮
2023-03-14

嗯<代码>真的总是真的,所以

if (true) { ... } 

将永远被处决。你应该这样做:

System.out.println("y".equalsIgnoreCase(yesorno) ? intro1 : enter);
施俊明
2023-03-14
if (true) {System.out.println (intro1);}   //here

这永远是真的,永远都会运行。其他人也永远不会跑。

你想要什么

if ("y".equalsIgnoreCase(yesorno)) {
   //...
}
 类似资料:
  • 在我的游戏中有几个类我写过,包括房间,灯,胸,爪哇,玩家,钥匙和地图。这些都经过了测试,并且是正确的,所以现在我正在编写我的adventure类,它是程序的驱动程序。我需要设置球员的房间位置[0][0],但我不知道怎么做。这是我到目前为止在我的房间和冒险课。

  • 我对编程游戏相当陌生;我已经3/4完成了,我有一个关于我制作的一个基于文本的小游戏的问题。。。所以在这个游戏中,我的

  • 所以我是Java编码的新手,我对C#有很好的经验,我知道它们非常相似。我目前正在通过创建一个文本冒险游戏来处理Java,游戏使用案例(案例1、案例2、默认等),目前我正在开发一个保存和加载功能,但我不知道如何保存一个使用案例来进一步编码的分支游戏,有人有什么想法吗?

  • 在我的大学课程中,我们必须创建一个基于文本的游戏,在这个游戏中,你可以进出房间收集物品。我仍在尝试掌握python和一般编码的诀窍,因此我一直在努力完成这个项目。在大多数情况下,我的代码可以正常工作,但我可以多次添加一个项目。如何将其添加到库存中,然后从文件室中删除,以防止用户多次添加?

  • 我试图制作一个简单的基于文本的游戏,在这个游戏中,你在一个由“#”组成的网格周围移动“@”,并试图找到出口。我已经改变了代码,使我更容易使网格更大或更小,而无需添加或删除大量代码,它一直给我这样的输出: 我不知道这是怎么回事!只有一个“@”应该出现:(我只是python的新手,所以如果您有任何改进的建议,请不要犹豫,然后发布它们!提前感谢,

  • 我正在写一个基于文本的游戏,我想把每个房间链接到另外四个房间——北、南、东、西。我现在从北边开始。用户应该能够键入“向北走”,并且应该调用北房间。 我使用了三个文件——一个是我写主要故事的地方,一个是调用故事中适当的房间,一个是导航以避免相互导入。 房间。py: actions.py: 航行py: 当我运行first_room.start()时,它应该打印第一个房间。然后我输入“向北走”,我希望它