基于Java文本的冒险游戏,我的主要方法下放什么

标签 java

我正在用 java 制作一个基于文本的冒险游戏,我是计算机科学一年级的学生。

我创建了一个房间、导出、生物、元素和世界级,并放入了类(class)中提供给我的 API。这只是基本方法和一些构造函数。

如果我们将所有其他类聚集在一起并创建游戏,我们应该创建一个 textAdventure 类。

玩家和游戏类给了我,我的教授完成了所有必要的代码,以使游戏在该类中运行。

我的问题是我不知道如何从我的 TextAdventure 类开始,这也是我的主要方法所在。

所以我对如何创建一个起始房间以及如何在该房间中设置通向另一个房间的导出感到困惑。

这是一些代码

public class MyTextAdventure {

    private Room room1;    
    private Room room2;    
    private Room room3;    
    private Room room4;   
    private Room room5; 
    private Room room6;
    private Room room7; 
    private Room room9;
    private Room room10;




public static void main(String [] args){

}

如果我想让玩家从 room1 开始,我可以这样做吗?

public static void main(String [] args){


public Room startingRoom;

}

我已经在 room 类中声明了 startingRoom

如果我的技能不好,我很抱歉,我只是不知道自己在做什么以及从哪里开始。

最佳答案

使用数组来跟踪您的房间。这使您可以避免跟踪 10 个不同的变量名称。它还允许您对数组索引进行数学运算。例如,如果您想将当前房间从 3 设置为 4,则无需检查哪个房间已设置为当前房间。你可以这样做 currentRoom++

尝试这样的事情。

public class MyTextAdventure {

    private Room[] rooms; //array for all rooms
    int currentRoom = 0;
    boolean over;

    //class constructor
    public MyTextAdventure() {
        rooms = new Room[10]; //Initialize new room array of size 10
        over = false; //game is not over yet

        for(int i = 0; i < rooms.length; i++) {
            //Initialize all rooms
            rooms[i] = new Room();
        }
    }

    public void start() {
        //do your game loop in here
        while(!over) {

        }   
    }

}

public static void main(String [] args){
    MyTextAdventure adventure = new MyTextAdventure();
    adventure.start();
}

主函数应该只是开始你的游戏。函数和类的设计应该能够完成明确的单一任务。命名类、函数和变量,以便您准确地知道它们在做什么。

使用当前房间作为整数允许您将其用作数组索引。例如,如果您想获取当前房间,您可以为函数执行此操作。

public Room getCurrentRoom() {
    return rooms[currentRoom];
}

关于基于Java文本的冒险游戏,我的主要方法下放什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33027965/

相关文章:

java - JToggleButton API 中可能存在错误?

java - 来自 Guava 或 Java 枚举的 ImmutableSet

java - Eclipse tomcat java.lang.ClassNotFoundException : com. web.servlets.SearchServiceServlet

java - Levenshtein Distance 仅在字符串的一部分(Java)

java - 字节数组与整数数组

java - TreeMap 以 TreeSet 为值,如何从该 TreeSet 中删除元素?

java - 我正在尝试创建一个秒表应用程序,但在添加膝上按钮和继续按钮时遇到问题

java - 多svn分支中多模块maven项目的最佳实践是什么

java - Jacoco 排除类

java - Apache Camel : Is it possible to configure WMQ without using Spring?