3.0 KiB
斗兽棋.魔改的三版本实现
[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.大致图像
(a方在左 默认为红色,b方在右 默认为蓝色)
二、后端逻辑
行棋规则实现
吃子规则判定
双方轮流移动:判断能否移动,移动结果显示(字幕提示)
三、待完善的软件需求
子菜单:选择单机还是联网
左右留白用于各自功能实现:如计时,
顶部留白用于主控功能:认输,回主界面,音乐暂停等
网络版开发v2.0
一、增加需求
基于游戏服务器,加入联网通信功能
主要工作:
1.实现socket通信
2.JSON数据解析以及封装——协议见“游戏服务器及通信协议.pdf”
3.多线程编程——建议把通信模块实现为一个单独的新线程,主程序和通信模块之间需要交互,超时判断(来自服务器,接受并处理)
4.游戏逻辑调整
一些约定:
1.红0蓝1 通信协议中的side=0;红棋先手
2.棋子约定 chessman 0到6
3.服务器配置文件config.txt可改
客户端:
-
申请加入对战 -> 先后手规则
-
过程中可以叫停游戏或者主动退出游戏(弃权)
二、开发流程
(一)UI设计
-----增加相关按钮,增加提示,增加每一步的提示
(二)功能实现
-----与服务器数据交换