
课程设计(论文)二人对战象棋.doc
33页课程设计报告书 目 录1.问题描述 ……………………………………………………………2.1.题目内容 ………………………………………………………… 22.基本要求 ………………………………………………………… 22.需求分析 ……………………………………………………………21.软件的基本功能 ………………………………………………… 22.输入/输出形式 ………………………………………………… 23.概要设计 ……………………………………………………………2.1.表现手法 ………………………………………………………… 22.流程图 …………………………………………………………… 33.层次关系 ………………………………………………………… 44.详细设计 …………………………………………………………… 4 1.数据成员、成员函数 …………………………………………… 4 2.伪代码算法 ………………………………………………………45.编码与调试分析 …………………………………………………….61.源代码 …………………………………………………………….62.调试分析 …………………………………………………………29.6.使用说明 ………………………………………………………… 297.测试结果 …………………………………………………………… 30.8.实习心得体会 ………………………………………………………331. 问题描述:本次程序设计实验所选题目为:双人象棋要求:设计棋盘,棋子等数据,两个玩家可以依次输入数据控制某一个棋子的移动,并且可以判断一步棋是否合法,不合法不能移动,游戏可以存档,读档,记录下棋的过程,如能按棋谱走棋更佳。
2. 需要分析: 1.软件的基本功能 初始化棋局、输出棋局、输入坐标、改变旗子后再次输出、顺序下棋、游戏未结束的循环控制2.输入/输出形式 通过输入数字坐标,控制相应旗子;输出通过字符组合出来的棋局,并附有相应提示3. 概要设计:1. 如何表现棋局 棋局的表现方式是本题目中最重要的问题,盖因棋局的表现方式直接决定着其他问题的解决办法 原来的最初设计,是主体为10*9的二维数组000000000 车马相士将士象马车 000000000 000000000 炮 炮 000000000 兵 兵 兵 兵 兵 000000000 000000000 000000000卒 卒 卒 卒 卒 000000000 砲 砲 000000000 000000000車馬象仕将仕象馬車将数组的每一位对应为棋盘中的一处落点,并且通过行列数作为坐标,用以定位每个落脚点。
通过坐标的输入达到交互目的旗子则通过将所在落点附以不同的值,来调用相应图片实现表现棋局然而,由于不知如何调用图片,作罢在参考网上资料以及与做相同题目的同学讨论后,二维数组主体和坐标输入思想不变,在表现上选择现在作品所采用的:直接在窗口用字符拼出棋盘的方法来表现棋局,并且用 switch语句来输出特定数组值对应的旗子switch(a[i][j]){case x : printf("y");break;...case x : printf("y");break; default:;} 2. 流程图: 3. 主函数层次:main(){ 初始化 输出棋盘 For(;;){ 输入始末坐标(红) 合法判断(红) 下棋生效 输出棋盘 输入始末坐标(黑) 合法判断(黑) 下棋生效 输出棋盘}结束}4. 详细设计:1.数据成员、成员函数:包含大循环的主函数:数据成员:二维数组 a[i][j] ; 坐标数字 i,j ; 主将特殊坐标 m1,n1,m2,n2;初末坐标 k,l,m,n; 其余形参 x,y,o,p,(一般是赋予末坐标m,n后用于较) 成员函数: 输出函数 display()2.伪码算法:主函数: int main(){{//初始化 start}{//输出 display}for(;;){{//红旗输入 get1}{ //红旗规则 rule1 }{//下棋生效 chang}{//是否吃掉黑方主将 end}{//是否将帅直面 rule3 }{//输出 display}{//是否将军 }{//黑棋输入 get2}{//黑棋规则 rule2}{//下棋生效 chang}{//是否吃掉红方主帅 end}{//将帅是否直面 rule3}{//输出 display}{//是否将军}}}输出函数:Display(){ 输出横坐标输出上半棋盘边框 输出上半棋盘 输出界河 输出下半棋盘边框 输出下半棋盘 输出纵坐标}5. 编码与调试分析:1. 源代码:display.h //display 头文件 #include






![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)





