# 斗兽棋.魔改的三版本实现 [TOC] ### 一、游戏角色 > 象Eleph>狮Lion>豹Leo>狼Wolf>狐Fox>鹰Eag>鼠Mse>[象] ### 二、游戏规则 - 行棋规则 > 所有动物可以上、下、左、右走一格 > > 所有动物不能进入己方兽穴 > > 鼠:唯一能进小河,并且不会与其他动物吃与被吃,但可以鼠类互吃 > > 狮:在河边时,可以纵横对直跳过河,但如果路线被对方在河里的老鼠所阻隔,则不能跳河 > > 狐:可以左上、左下、右上、右下方向走一格 > > 鹰:在无棋子、陷阱(可进入陷阱)阻隔情况下,直线走任意格 > > 陷阱:进入陷阱可以被任意兽类吃掉 - 胜负规则 > •任意动物进入对方兽穴 > > •对方所有动物被吃光 > > •所有对方活着的动物均被困住(均不可移动) > > •对方中途离开游戏 > > •对方走棋时间用完(单机版可不实现) > > •和棋:在连续100回合内,双方均无动物被吃 + 违例判负规则(网络版) > 7-3违例:连续7步内,如果同一动物连续超过3次进入同一棋格,在接下来的第8步将禁止该动物进入该棋格(若7步内有进入陷阱,则不受该限制,被追动物不受该限制) > > 17-5违例:连续17步棋内,如果只操作同一个动物,且该动物的活动范围不超过5个棋格,在接下来的第18步将禁止该动物进入上述5个棋格中的任意一个(若17步内有进入陷阱,则不受该限制) ### 单机版开发v1.0 #### 一、前端界面 监听鼠标动作 实现按钮等控件操作 绘制文字,图片 播放音乐、动画等 游戏提示 ex.大致图像 ![image-20220825111106122](C:\Users\DoubleQ\AppData\Roaming\Typora\typora-user-images\image-20220825111106122.png) (a方在左 默认为红色,b方在右 默认为蓝色) #### 二、后端逻辑 行棋规则实现 吃子规则判定 双方轮流移动:判断能否移动,移动结果显示(字幕提示) #### 三、待完善的软件需求 子菜单:选择单机还是联网 左右留白用于各自功能实现:如计时, 顶部留白用于主控功能:认输,回主界面,音乐暂停等 ### 网络版开发v2.0 #### 一、增加需求 > 基于游戏服务器,加入联网通信功能 > > 主要工作: > > 1.实现socket通信 > > 2.JSON数据解析以及封装——协议见“游戏服务器及通信协议.pdf” > > 3.多线程编程——建议把通信模块实现为一个单独的新线程,主程序和通信模块之间需要交互,超时判断(来自服务器,接受并处理) > > 4.游戏逻辑调整 一些约定: 1.红0蓝1 通信协议中的side=0;红棋先手 2.棋子约定 chessman 0到6 3.服务器配置文件config.txt可改 客户端: + 申请加入对战 -> 先后手规则 + 过程中可以叫停游戏或者主动退出游戏(弃权)