Java Android棋盘游戏的实现设计

Java Android棋盘游戏的实现设计,java,android,Java,Android,我正在开发一款android版的棋盘游戏。我以前从未设计过游戏、android应用程序(除了1-2个hello world应用程序)甚至GUI程序(做了很多CLI),我对设计有一些疑问 游戏是基于回合的,所以这里没有实时考虑,我想知道什么是最好的。该游戏包括相当简单的2-3选项选择,玩家必须做出每个决定,对于初学者来说,我想让它“基于文本”,即有一个带有游戏“日志”的文本视图,每当人类玩家必须做出决定时,都会给他2-3个按钮,上面有他可以玩的选项。游戏由几轮和几级组成 我开始在没有GUI和AI玩

我正在开发一款android版的棋盘游戏。我以前从未设计过游戏、android应用程序(除了1-2个hello world应用程序)甚至GUI程序(做了很多CLI),我对设计有一些疑问

游戏是基于回合的,所以这里没有实时考虑,我想知道什么是最好的。该游戏包括相当简单的2-3选项选择,玩家必须做出每个决定,对于初学者来说,我想让它“基于文本”,即有一个带有游戏“日志”的文本视图,每当人类玩家必须做出决定时,都会给他2-3个按钮,上面有他可以玩的选项。游戏由几轮和几级组成

我开始在没有GUI和AI玩家的情况下实现游戏“核心”。然后,我试图找出如何允许人类玩家、GUI等。我当前的设计思想是一个
GameEventListener
类,它将被告知游戏中的不同事件(回合开始、回合结束、某个玩家做了某个动作等),并让活动实现它,因此它可以在屏幕上绘制/写入发生的事情,等等


但是,我不确定这是否是最好的方法,也不确定Android部分应该如何实现(例如,我希望在一些事件之后,玩家可以“继续”按钮,这样他可以看到在游戏继续之前做了什么-我如何等待按钮被按下?如果我从侦听器功能返回,游戏将继续)。有关于如何继续的建议吗?

既然你的游戏是基于回合的,那么我认为像GameEventListener这样的设计是可以的。 基本上,这种GUI可以通过响应事件来实现。您可以将每个UI组件分配给侦听器。 例如,button.setOnClickListener(您的listener类)

对于不同的按钮,您可以分别为它们创建不同的侦听器类,也可以在一个GameEventListener中收集它们。如果对事件作出反应的操作并不复杂,我们甚至可以使用匿名类:

button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v){
                          //do your operations here(e.g. get input, update UI)
                    }});

您可以在这里查看我的四分体掉落游戏,了解GUI和我的一些方法 它是俄罗斯方块的克隆,可以通过互联网与其他玩家一起玩。如果您需要一些GUI代码方面的帮助,Ed Burnette的“Hello,Android”是一本好书

已更新

它与您正在设计的非常相似

有以下包层次结构

-com.aunndroid.Engine  (handling game logic) 
-com.aunndroid.View    (managing 2D Views)
-com.aunndroid.Tolk    (communication between deivces)

你能在回答中详细说明你的方法吗?我对你的措辞有点困惑。UI组件是响应游戏事件还是响应游戏事件?我如何实现“等待用户按下按钮继续”之类的功能?