[源码和文档分享]基于VC++实现的中国象棋-双人象棋游戏

1 问题描述

1.1 要求

设计棋盘,棋子等数据,两个玩家可以依次输入数据控制某一个棋子的移动,并且可以判断一步棋是否合法,不合法不能移动,游戏可以存档,读档,记录下棋的过程,如能按棋谱走棋更佳。

1.2 问题分析

1.2.1 象棋记谱规则

红方从右往左为一至九列(用汉字),黑方从左往右为1至9列(用阿拉伯数字)

若欲移动的棋子那列没有与该棋子相同的棋子,则记为:

棋子+列号+动作+步数,其中,列号按6.1的规则产生,动作有进、退、平三种:往对方棋盘方向走为进,往己方棋盘方向走为退,在同一行上移动为平

步数:若棋子移动时不改变列,则记为移动的行数(红方汉字黑方阿拉伯数字);若棋子移动时改变列或棋子走斜线,则记为移动到的新列号。例如:

马三进一 红方第三列的马向黑方棋盘方向走一步,移动到第一列

卒3进1 黑方第3列的卒向红方棋盘方向走1步,未改变列

车二平五 红方第二列的车走到第五列,未改变行

象9退7 黑方第9列的象向己方棋盘方向走一步,移动到第七列

该列有重子且移动的棋子不为兵、卒,则记为:

位置+棋子+动作+步数,其中动作和步数的记法与上述相同

位置分为前、后两种,在己方前进方向的为前,己方后退方向的为后。例如:

前炮进一 红方位于棋盘前方的炮前进一步(红方共两个炮,不会混淆)

该列有重子且移动的棋子不为兵、卒,则记为:

位置+列号+动作+步数,其中动作和步数的记法与6.2相同

位置分为前、中前、中、中后、后五种,望文生义。例如:

前五进一 红方位于最前方的兵前进一步

1.2.2 目标

在控制台界面绘制棋盘和棋子

设计光标系统,可用键盘方向键控制棋子移动,能用鼠标更佳

可判断每步棋是否合法,不合法不能移动

可存档、读档、记录下棋过程

按棋谱走棋(可选)

计时、暂停(可选)

自动判断胜负(可选)

联机对战(可选)

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1646.html

你可能感兴趣的:([源码和文档分享]基于VC++实现的中国象棋-双人象棋游戏)