gpt4 book ai didi

java - 用java编写一个简单的文字游戏。如何显示拾取的元素

转载 作者:太空宇宙 更新时间:2023-11-04 14:42:32 25 4
gpt4 key购买 nike

我正在尝试编写(“没错,你带来了:”+ ThreeItems)部分,以便它指定每个项目,而不仅仅是变量“twoItems”中输入内容的副本

System.out.println("What items did you bring with again? (pick 3)");
System.out.println("(Crowbar, pistol, knife, key, flask, dynamite, flint, quill & parchment, devilishly good looks");
String threeItems = s.nextLine();

此时,我想显示用户挑选的三个项目,而不是直接打印用户写的内容。我考虑过执行 if else 语句,但项目的数量会导致该部分代码变得极度嵌套,这是我不希望的。

System.out.println("That's right, you brought: " + threeItems);

谢谢大家对我的帮助! stackoverflow 是一个很棒的社区,我很高兴成为其中的一员!

最佳答案

您可以使用映射来构建您的项目,其中键是应用程序指定的项目名称,值是一个简单的 boolean 值,该 boolean 值将项目标记为您的角色拥有。当用户输入与 map 中的项目匹配时,您可以设置 boolean 标志。

使用此数据结构,您只需迭代 map 并将“拥有”的任何项目名称添加到 threeItems输出变量。

如何进行映射取决于您。您的代码当前似乎建议用户在一行上输入逗号分隔的项目列表,然后按 Enter 键。这可以工作,但容易出错,并且您必须解析输入。

我建议使用一个循环,要求用户一次输入一个项目名称,并提供退出循环的方法。

跟进 @Krzysztof 来回复下面的评论:我没有意识到您需要保持所选列表的顺序。如果您坚持使用 map ,那么您可以使用整数而不是 boolean 值,其中任何非零值都表示该项目已被拥有,并且该值将是该项目的顺序。此解决方案的问题在于, map 虽然在早期场景中很有用,但现在却成为了障碍。

现在,我建议使用列表或更确切地说,使用 ArrayList,而不是使用 Map。其他人建议使用列表和数组,但我会以更 Java 风格的方式推荐它们:

创建 static final ArrayList<String>并在构造函数或初始化 block 中用项目对象(实际上只是项目名称)填充它。 ( ArrayList tutorial here 。) 为拥有的项目创建一个类似的 ArrayList,该列表最初为空。当用户输入项目库存时填充列表。列表中该项目的索引+1就是它的拥有位置。不要对第一、第二、第三等表现得可爱。使用 KISS:第 1 项:... 第 2 项:... 等等。

关于java - 用java编写一个简单的文字游戏。如何显示拾取的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24788918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com