Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中基于文本的冒险游戏资源清册系统_Java_Inventory - Fatal编程技术网

Java中基于文本的冒险游戏资源清册系统

Java中基于文本的冒险游戏资源清册系统,java,inventory,Java,Inventory,我正在用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;

我正在用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;

我需要能够有特定的项目在某些房间。有人有什么建议吗

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

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

import java.util.ArrayList;
import java.util.List;
显然,扫描仪已经被导入。接下来,我们必须创建列表:

List<String> inv = new ArrayList<String>();
这是一个非常简单的“扫描输入”类代码。我想这不是什么新鲜事。现在是有趣的部分:

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!");
}
太棒了!我们所做的只是在条件语句前面加一个感叹号(意思是相反的)。如果您不明白,请查看下面的内容


不管怎样,很高兴我能帮助你(这是一个叫做简易库存的原因!)。如果你有任何问题,回答你想问的任何问题(即使我需要再做一个教程)。如果这对你没有用,请留下反馈(因为你已经知道你在做什么),并告诉我如何变得更好。谢谢

您需要将每组项存储在单独的数据结构中。或者,您可以为每个
项目
指定一个属性,该属性将指定其组,并且当显示某个组中的项目时,您将只考虑具有给定组的项目。您可以发布
项目
代码吗?
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!");
}