如何在方法中存储信息,以便以后可以使用其他方法?

时间:2018-01-14 18:09:27

标签: java methods switch-statement

我是Java的新手,很抱歉,如果这是愚蠢的,明显的或措辞不好。我还不太了解我不知道的事情。

所以我决定,因为我必须学习Java,所以我先跳进去,然后试着去找出它。到目前为止,它运作得体。我正在尝试通过编写一些简单的小程序来强化我已经知道的一些基本概念。

我决定写一个基于文本的小冒险游戏,到目前为止它运作良好。我正在使用扫描仪和开关调用使用扫描仪和开关调用其他方法的方法。这一切都很好。

到目前为止,这是一个非常线性的直线,就像一个旧的选择你自己的冒险书。但是,我想添加一个玩家库存。我对如何做到这一点有一个非常含糊的想法,但我对我想要它做的事情有一个非常明确的想法。

所以,基本上我想存储一条说明玩家有特定项目的信息。我希望能够同时测试多个项目的存在。而且我希望能够告诉玩家他在游戏中的任何一点上有什么物品。

我真的不知道如何更好地提出问题。

我最好的猜测就是做

之类的事情
int key, potion;
key = 0
potion = 2

然后测试每一个的值

if (key = 0) {
System.out.println("you don't have the key ");
}
if (key > 0) {
System.out.prinln("You unlock the door");
}

我正在将每个新房间作为一个单独的方法,所以整个游戏只是一个很大的方法链。所以我希望有关项目的信息可以存储在一个单独的方法中,我可以通过开关或者当前房间方法中的if / else来访问玩家。因此,玩家正在解锁room2中的一扇门,这就是它自己的方法,他拿起了room1中的密钥,这是它自己的方法,密钥在inventory方法中存储为整数。但关键是一次使用,因此关键整数设置为0并且方法room3启动。如果这是有道理的。

再次,对不起,如果这是非常愚蠢的基本内容。我对编程很陌生。

1 个答案:

答案 0 :(得分:0)

没问题,我赞赏你选择学习编程。这是基本的数据结构。如果你想保留一个值,在大多数编程语言中,你将拥有一个数组。我认为打破逻辑是一个好主意,即(存储项目,测试> 1,列出项目)。第一步是尽可能简单,然后通过重构添加getter / setter。最终,您的目标是首先使最基本的代码工作(像这样),然后使用getter / setter和/或HashMap重构为面向对象的类。

1:

public class PlayerInventory
{
    private String[] inventoryStr = new String[20]; // basic implementation

inventoryStr[0] = "Phone";
inventoryStr[0] = "Book";
}

2:

int arrayLength = inventoryStr.length;

3:

for(int i=0; i < inventoryStr.length; i++) {
    System.out.println( inventoryStr[i] );
}

重构(在为此编写单元测试之后)

1 * :(带列表)

    import java.util.*;  
    import java.util.*;  

    public class CollectionGetterSetter {  
        private List<String> playerInventory;  

        public void setPlayerInventory(List<String> inv) {  
            this.playerInventory = inv;  
        }  

        public List<String> getPlayerInventory() {  
            return this.playerInventory;  
        }  

        public static void main(String[] args) {  
            CollectionGetterSetter app = new CollectionGetterSetter();  
            List<String> PlayerInventory = new ArrayList();  
            PlayerInventory.add("phone");  
            PlayerInventory.add("book");  
            PlayerInventory.add("glasses");  
            PlayerInventory.add("nav");  

            app.setPlayerInventory(PlayerInventory);  

            System.out.println("Player 1: " + PlayerInventory);    

            List<String> PlayerInventory2 = new ArrayList();  
            PlayerInventory2.add("cap");  
            PlayerInventory2.add("gown");  
            PlayerInventory2.add("foo");  
            PlayerInventory2.add("bar");  

        }  

    }