我正在用Java编写一个基本的tic tac toe游戏。 在我的Board课程中,我有一个摆动窗口,用于确定按下了哪个按钮。 TttGame是具有Board对象的类。
这个板的目标不是充当功能齐全的tic-tac-toe板,而是作为TttGame类控制所有逻辑的框架。因此,当按钮被按下按钮的ID时,我需要Board发送某种事件。
这样做最简单的方法是什么?
编辑:我找到了一个名为Observer模式的东西 - 这是最简单的方法吗?
答案 0 :(得分:3)
是的,观察者模式是您想要在此处应用的模式。创建一个Listener接口(BoardListener
),可能是这样的:
public interface BoardListener {
public void squareSelected(int x, int y);
}
然后在Set
类中维护List
或Board
个侦听器并循环浏览它们,在选择正方形时,在每个侦听器上调用squareSelected。
我会研究模型 - 视图 - 控制器模式,其中View会监听模型的更改,并且Controller会检测用户操作并相应地更改模型。
答案 1 :(得分:0)
我建议稍微改变你的设计。拥有游戏逻辑并跟踪棋盘上的棋子位置都可以在“引擎”(或一系列没有视觉显示的类别)中完成。
然后,您将拥有一个中间类,用于将所有片段位置传递到可互换的显示类。它还可以处理从显示类到引擎的任何通信(例如单击以放置X或O)
P.S。我在考虑跳棋,而不是在打字时打字,但设计仍然适用