(原创)五子棋程序设计思路(一)

(原创)五子棋程序设计思路(一)

五子棋,周所周知了,不再赘述。这里只是想整理一下设计思路,尽量用接口,不太关心怎么实现,希望能把接口做好。欢迎大家批评和指正。

 

首先,五子棋涉及到棋盘、棋子、黑棋、白棋、两个玩家等基本名词、棋型等;涉及下棋规则(对黑棋有无禁手,落子是否有时间限制等)。先把这些定义好。

 

棋盘有宽和高(如果谁发明一个矩形的棋盘也可以了)

 

棋子有在棋盘上的坐标值X和Y,还有表示是黑是白的枚举

 

因为每次都是黑先下,所以程序只关心是黑该下还是白该下,至于执黑和执白的玩家是谁则不关心;就是说,程序只认为是

黑子、白字依次落子,是否有人在玩,玩家是谁则并不关心。

 

玩家是通过绑定的办法,绑定到执黑或执白上的。这样,程序在计算下棋算法的时候应该会好办些。

 

玩家包括名字、绑定到黑方还是白方

 

棋型,比较复杂了,到时候再细考虑,棋型用来选择落子策略

 

规则,目前只考虑是否有禁手,以及落子前的等待时间。

 

至于下棋时依次落子,应该属于业务逻辑了。

 

业务逻辑,在游戏开始后,负责指定是黑方落子还是白方落子,计算落子前的等待时间,判断是否落子到禁手点,谁胜谁负等。

 

界面,负责棋盘、棋子的绘制,以及各个界面的绘制包括设置游戏规则(禁手、落子等待时间等)界面,开始游戏界面,显示游戏提示信息(该谁走,游戏结束时谁胜谁负等)界面等

 

游戏程序,负责设置游戏规则(禁手、落子等待时间等),开始游戏,显示游戏提示信息(该谁走,游戏结束时谁胜谁负等)

 

posted on 2011-01-30 11:22  海阔天  阅读(9048)  评论(0编辑  收藏  举报

导航