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

136 lines
3.0 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 斗兽棋.魔改的三版本实现
[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可改
客户端:
+ 申请加入对战 -> 先后手规则
+ 过程中可以叫停游戏或者主动退出游戏(弃权)
#### 二、开发流程
UI设计
-----增加相关按钮,增加提示,增加每一步的提示
(二)功能实现
-----与服务器数据交换