1、 课程设计说明书 课程名称: C 语言课程设计 设计题目: 中国象棋 专业: 计算机科学与技术 班级:_ 姓名: 学号:_ 评分: 指导教师: 2012 年 6 月 26 日 目 录 摘要 前言 功能描述 配置要求 总体设计(个人负责模块) 一、功能模块设计 二、数据结构设计 三、函数功能描述 四、代码实现 五、运行结果 小结 摘 要 中国象棋是一款很古老、很受欢迎的游戏,其开发过程有一定的技巧和方法,其中 涉及到函数调用、二维数组、键盘操作等方面的知识。本游戏的开发者需要基本掌握复 杂情况下函数的编写以及调用能力、二维数组的运用能力、复杂算法的设计能力等。 前 言 中国象棋是一款经典的智力游
2、戏, 具有悠久的历史, 早在战国时期就有了关于中国象 棋的记载,经过几千年的流传,目前仍然是中国家喻户晓的棋类游戏,颇受欢迎。因此, 我们决定借这次机会通过用 C 语言将中国象棋实现出来, 当然, 我们也借鉴了前人的一些 技巧经验。有不足之处,希望老师能够谅解,我们以后将会再接再厉。 功能描述 本人负责棋子帅(将) 、象(相) 、士(仕) 、卒(兵)子函数的编写,它们的所能实 现的功能分别是: (1)帅(将) :控制棋子帅(将)能符合现实情况下的游戏规则而行走,例如帅(将) 只能在规定范围内向上或向左、右、下行走一格,最后返回一个行走正确或行走错误的数 据。 (2)象(相) :控制棋子象(相)
3、能符合现实情况下的游戏规则而行走,例如象(相) 只能在自己领域内走“田”字格,且中间不能有其他棋子阻挡,最后返回一个行走正确 或行走错误的数据。 (3)士(仕) :控制棋子士(仕)能符合现实情况下的游戏规则而行走,例如士(仕) 只能在规定范围内斜着跨一格,然后返回一个行走正确或行走错误的数据。 (4)卒(兵) :控制棋子卒(兵)能符合现实情况下的游戏规则而行走,例如卒(兵) 只能一次走一格,同时在自己领域内只能向前走,而在对方领域内可向前、左、右方向走 一格,最后返回一个行走正确或行走错误的数据。 配置要求 (1) 硬件配置 CPU:Pentium III 600 内存:64MB 硬盘剩余空间
4、:128MB (2) 软件环境 Visual C+6.0 及其以上版本 总体设计(个人负责模块) 本人为小组成员,负责的模块是:棋子帅(将) 、象(相) 、士(仕) 、卒(兵)子函 数的设计与编写。 一、系统模块设计 1、系统模块图 本人所负责的模块共有四个小项目组成,分别是控制棋子正确行走的帅(将) 、象 (相) 、士(仕) 、卒(兵)子函数。 (1)帅(将) 该子函数主要负责控制维持棋子帅(将)的正确行走,返回正确或错误的数据信息。 (2)象(相) 该子函数主要负责控制维持棋子象(相)的正确行走,返回正确或错误的数据信息。 (3)士(仕) 该子函数主要负责控制维持棋子士(仕)的正确行走,返
5、回正确或错误的数据信息。 (4)卒(兵) 该子函数主要负责控制维持棋子卒(兵)的正确行走,返回正确或错误的数据信息。 调 调 用 调 调 调 用 用 用 用 图 1. 系统模块图 主函数 帅(将) 象(相) 士(仕) 卒(兵) 2、任务执行流程图 在玩家进行游戏移动棋子帅(将) 、象(相) 、士(仕) 、卒(兵)的时候,主函数调 用这几个子函数的执行流程图均为: 图 2. 任务执行流程图 二、数据结构设计 四个子函数均定义了局部变量 x1,x2,y1,y2,table10, 通过主函数调用将玩家从键盘输 入的值传递给 x1,x2,y1,y2. table10是在主函数中定义的一个二维数组, 在
6、子函数中同样控 制棋盘的输出。 三、函数功能描述 1.chekshuai ( ) 函数原型:int checkshuai(int x1,int y1,int x2,int y2,int table10) 开始 输入目标位 置的坐标 符 合 规 则 吗? 符合规则返 回 1 不符合规则 返回 0 输出规则提 示信息 checkshuai( )函数控制棋子帅(将)的正确行走,通过主函数将初始位置的坐标 x1,y1 与目标位置的坐标 x2,y2 传递给该子函数,从而判别帅(将)的行走是否符合 规则。 2.checkxiang ( ) 函数原型:int checkxiang(int x1,int y1,int x2,int y2,int table10) checkxiang( )函数控制棋子象(相)的正确行走,通过主函数将初始位置的坐标 x1,y1 与目标位置的坐标 x2,y2 传递给该子函数,从而判别象(相)的行走是否符合 规则。 3.checks