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