gpt4 book ai didi

Java - 创建方法数组

转载 作者:太空狗 更新时间:2023-10-29 22:41:58 24 4
gpt4 key购买 nike

我正在为学校进度设计一个基于文本的冒险游戏。我将每个“级别”设置为一个类,并将每个可探索区域(节点)设置为相应类中的一个方法。

让我烦恼的是从一个节点移动到另一个节点的代码。因为每个节点最多连接到四个其他节点,所以我必须在每个方法中重复极其相似的代码块。

我更愿意做的是在每个节点的开头包含一组方法,如下所示:

public static void zero()
{
... adjacentNodes[] = {one(), two(), three(), four()};
}

然后将该数组发送到一个通用方法,并将播放器发送到正确的节点:

public static void move(...[] adjacentNodes, int index)
{
adjacentNodes[index];
}

我简化了我的代码,但这是一般的想法。这可能吗?

最佳答案

每当您想到指向函数的指针时,您都会通过使用适配器模式(或变体)将其转换为 Java。它会是这样的:

public class Node {
...
public void goNorth() { ... }
public void goSouth() { ... }
public void goEast() { ... }
public void goWest() { ... }

interface MoveAction {
void move();
}

private MoveAction[] moveActions = new MoveAction[] {
new MoveAction() { public void move() { goNorth(); } },
new MoveAction() { public void move() { goSouth(); } },
new MoveAction() { public void move() { goEast(); } },
new MoveAction() { public void move() { goWest(); } },
};

public void move(int index) {
moveActions[index].move();
}
}

关于Java - 创建方法数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280727/

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