You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SafariChess/AboutGame.md

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.大致图像

image-20220825111106122

(a方在左 默认为红色b方在右 默认为蓝色)

二、后端逻辑

行棋规则实现

吃子规则判定

双方轮流移动:判断能否移动,移动结果显示(字幕提示)

三、待完善的软件需求

子菜单:选择单机还是联网

左右留白用于各自功能实现:如计时,

顶部留白用于主控功能:认输,回主界面,音乐暂停等

网络版开发v2.0

一、增加需求

基于游戏服务器,加入联网通信功能

主要工作:

1.实现socket通信

2.JSON数据解析以及封装——协议见“游戏服务器及通信协议.pdf”

3.多线程编程——建议把通信模块实现为一个单独的新线程,主程序和通信模块之间需要交互,超时判断(来自服务器,接受并处理)

4.游戏逻辑调整

一些约定:

1.红0蓝1 通信协议中的side=0红棋先手

2.棋子约定 chessman 0到6

3.服务器配置文件config.txt可改

客户端:

  • 申请加入对战 -> 先后手规则

  • 过程中可以叫停游戏或者主动退出游戏(弃权)

二、开发流程

UI设计

-----增加相关按钮,增加提示,增加每一步的提示

(二)功能实现

-----与服务器数据交换