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

Java中基于文本的冒险游戏的库存系统

楚洋
2023-03-14

我正在Java制作一个基于文本的冒险游戏。我需要让用户能够拿起物品并将其放入库存中,但我不确定如何做到!

这是我的项目当前的设置方式:

Items item0 = new Items(0);
    item0.setName("Map");


    Items item1 = new Items(1);
    item1.setName("Sword");

    Items[] itemize  = new Items[2];
    itemize[0] = item0;
    itemize[1] = item1;

我需要能够在某些房间里有特定的物品。有人有什么建议吗?

共有1个答案

洪和风
2023-03-14

Java爱好者!我发布了一个代码,我很快创建了一个关于在文本冒险中跟踪Java中的玩家清单的能力。这类代码还有很多其他用途(正如专家们所知),但今天我决定帮助初学者,并发布这段代码,以便在遇到困难时进行评论和在文本冒险中使用。这不是关于如何进行文本冒险的教程,只是添加了一个库存函数。现在我们开始:

我们需要做的第一件事是导入必要的先决条件:

import java.util.ArrayList;
import java.util.List;

显然,扫描仪已经导入。接下来,我们必须创建列表:

List<String> inv = new ArrayList<String>();

“列表”功能创建一个新列表。这将存储库存的所有数据;我把我的列表称为“inv”。现在我们有了第一个行动!我的是假设的(记住),但你可以做任何你想做的事情。

System.out.println("You see a rusty axe on the floor next to a can of pepsi.");
choice = scan.nextLine();

这是一种非常简单的“扫描输入”类型的代码。没什么新东西,我猜。现在是有趣的部分:

if (choice.equals("take axe")) {
    System.out.println("You pick up the axe");
    inv.add("axe");

你看到了吗?我们刚刚把斧子添加到了玩家清单中!就这么简单。我们现在可以使用以下方式显示库存:

System.out.println(inv);

做!现在用完一个项目。我将使用一个不同的例子,玩家拿起百事可乐:

System.out.println("You walk for awhile and start to become thirsty");
System.out.println(inv);
choice = scan.nextLine();

我们打印库存,以便玩家知道可以使用什么。现在看这个:

if (choice.equals("drink")) {
    if (inv.contains("pepsi")) {
        System.out.println("You drink a can of pepsi");
        inv.remove("pepsi");

没错!我们所做的就是使用remove函数。但现在假设玩家决定不喝百事可乐。我们将对前面的if语句进行“else if”:

if (inv.contains("pepsi")) {
    System.out.println("You drank pepsi");
    inv.remove("pepsi");
} else if (!inv.contains("pepsi")) {
    System.out.println("You have nothing to drink!");
}

太棒了!我们所做的只是在条件语句前面加一个感叹号(意思相反)。如果你不明白,请看下面。

无论如何,很高兴我能帮助你(这就是为什么它被称为简单库存!).如果你有任何问题,回复问你想问的任何问题(即使是为了我再做一个教程)。如果这对你没有用,请留下反馈(因为你已经知道你在做什么),告诉我如何做得更好。谢谢!

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

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

  • 本文向大家介绍基于javascript实现泡泡大冒险网页版小游戏,包括了基于javascript实现泡泡大冒险网页版小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一个很有趣的网页版游戏,有点类似金山打字游戏的青蛙过河,供大家参考,具体内容如下 效果图: 实现思路: 益智类小游戏,主要练习打字能力,基于jq开发。 1.在输入框输入泡泡对应文字,点击enter提交 2.与泡泡文字

  • 问题内容: 我对Java中的一些中间概念还很陌生。最近,我制作了一款名为DazzleQuest的文字冒险游戏,该游戏完全在开发者控制台/终端中运行。它以我的朋友为角色,因此我想向他们展示它,并通过将命令行和控制台的输出功能转移到一个简单的Swing界面(包括一个用于显示游戏输出的a和一个带有,处理来自用户的命令。 我的主类包含名为和的方法,我认为我需要将其与我的类及其子类[扩展] 集成在一起。 总

  • 我目前正在创建一个冒险游戏,你通过输入命令(北,南)通过一个地牢的房间移动。所以我试图用字典把每个房间连接在一起,这样我就可以用“北”、“南”等键来移动这些房间。但我似乎不明白。有什么想法吗?

  • 我正在为一个C项目做一个冒险游戏。目标基本上是拥有一组由类定义的房间。然后使用地图将它们链接在一起。除了检查是否没有房间和确保没有为空房间接受输入之外,我的一切都正常工作。例如,它会说“那里什么都没有”,然后重新提示用户移动的方向。当前,如果某个方向上没有空间,并且选择了该方向,我的程序就会崩溃。我现在已经设置好了它,至少确保输入了一个有效的方向(北、南、东或西),但它没有检查这个方向是否可用。有