gpt4 book ai didi

java - 有帮助组织我的类(class)吗?

转载 作者:行者123 更新时间:2023-12-01 18:37:36 25 4
gpt4 key购买 nike

我正在尝试为我试图用 Java 构建的棋盘游戏创建一个名为 Terrain 的类,但我会尝试使这篇文章尽可能通用,以便可以用任何 OOP 语言、伪代码对其进行解释。

这个游戏有 36 个六角形图 block ,每个图 block 都是不同的地形。地形有 8 种类型,如沼泽、森林、山地等。每种地形可以容纳您可以进行的移动次数,还可以容纳生物和建筑物(这是两个不同的类别),或者至少具有与特定地形相关的生物和建筑物.

我不确定我是否想要一个枚举来表示 8 种地形,或者是否有必要。

本质上,我希望能够对这个类执行以下操作:

Terrain t0 = new Swamp();
Terrain t1 = new Forest();

然后我希望能够将每个地形的邻居与该特定地形相关联,例如:

//terrain 0, neighbour 0
t0.n0 = t1;
//terrain 0, neighbour 1
t0.n1 = t7;
//terrain 0, neighbour 2
t0.n2 = t8;
//terrain 0, neighbour 3
t0.n3 = t2;
//terrain 0, neighbour 4
t0.n4 = t23;
//terrain 0, neighbour 5
t0.n5 = t22;

等等

我认为应该是这样的:

public class Terrain{
public int moves = 0;
public Terrain(int m){
moves = m;
}
}

我真的不知道如何处理我所说的地形类型......

我已经手工计算出了游戏板每个图 block 的所有连接应该是什么,但我不确定如何将其转换为代码,或转换为地形类。如果有人有任何建议,我将非常感激。

最佳答案

使用enum定义地形(在Java中):

enum Terrain {    
Forest(12), Mountain(9); // And other Terrain types...
private int move;
private Terrain(int mo) {
move=mo;
}
public int getMove(){
return move;
}
}

使用 Terrain 枚举,您可以执行以下操作:

    Terrain t0= Terrain.Forest;
Terrain t2= Terrain.Mountain;
Terrain t6= .....

Tiles 也可以是一个 enum 并包含其他方法和 Terrain 数组/或其他一些数据结构类型

关于java - 有帮助组织我的类(class)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21240667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com