(原创)五子棋程序设计思路(一)
(原创)五子棋程序设计思路(一)
五子棋,周所周知了,不再赘述。这里只是想整理一下设计思路,尽量用接口,不太关心怎么实现,希望能把接口做好。欢迎大家批评和指正。
首先,五子棋涉及到棋盘、棋子、黑棋、白棋、两个玩家等基本名词、棋型等;涉及下棋规则(对黑棋有无禁手,落子是否有时间限制等)。先把这些定义好。
棋盘有宽和高(如果谁发明一个矩形的棋盘也可以了)
棋子有在棋盘上的坐标值X和Y,还有表示是黑是白的枚举
因为每次都是黑先下,所以程序只关心是黑该下还是白该下,至于执黑和执白的玩家是谁则不关心;就是说,程序只认为是
黑子、白字依次落子,是否有人在玩,玩家是谁则并不关心。
玩家是通过绑定的办法,绑定到执黑或执白上的。这样,程序在计算下棋算法的时候应该会好办些。
玩家包括名字、绑定到黑方还是白方
棋型,比较复杂了,到时候再细考虑,棋型用来选择落子策略
规则,目前只考虑是否有禁手,以及落子前的等待时间。
至于下棋时依次落子,应该属于业务逻辑了。
业务逻辑,在游戏开始后,负责指定是黑方落子还是白方落子,计算落子前的等待时间,判断是否落子到禁手点,谁胜谁负等。
界面,负责棋盘、棋子的绘制,以及各个界面的绘制包括设置游戏规则(禁手、落子等待时间等)界面,开始游戏界面,显示游戏提示信息(该谁走,游戏结束时谁胜谁负等)界面等
游戏程序,负责设置游戏规则(禁手、落子等待时间等),开始游戏,显示游戏提示信息(该谁走,游戏结束时谁胜谁负等)