象棋程序设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优秀计算机专业设计,顺利答辩过论文资料,欢迎参考下载!!!

计算机学院20034级 程序设计高级实验C大型作业报告 题目:中国象棋系统双人对下游戏程序。 系统功能说明 本游戏程序为中国象棋双人对下,只要有一方的将(帅)被对方吃掉后系统自动判断输赢,并显示Black is winning the game或(Red is winning the game)。在走棋过程中,系统自动提示红(黑)方走。如果有一方想放弃本局,就可以点击象棋框右边的退出框。如果一局结束后想继续走,则只要用鼠标点击右边的开始框,则进行新一局游戏(具体游戏界面见附录二)。 使用说明 (1)本程序所使用库函数说明 includestdio.h stdio.h中的基本函数; includeprocess.h process.h中的exit(0)函数; includedos.h dos.h中相关鼠标操作设置; includemath.h math.h中的fabs()函数; includeconio.h includegraphics.h graphics.h中的 setcolor(),setfillstyle(),line(),moveto(), floodfill(),circle(),rectange()等函数; (2)程序使用说明 鼠标点击棋子一下(棋子外圈变红色),则可以移动当前的棋子;鼠标点击两下(棋子外圈变白色),则取消当前所选的棋子。 程序结构 程序结构说明 见中国象棋流程图(附录一)。 重要数据的说明 见附录二 棋子半径R=17, 棋盘框窗口(60,50,380,410),操作者框窗口(460,40,570,90), 开始框窗口(460,110,570,160),退出框窗口(460,180,570,230), 游戏说明框窗口(460,240,570,410)。 程序函数清单 自己所编的小型汉字库 void get_hz(int hanzi,unsigned char bur[]); 显示汉字 void print_hz(unsigned char *mat,int color,int x,int y); 画棋子 void drawQizi(struct mouse* mouse1,int color); 初始化游戏(显示游戏棋盘包括操作、开始、退出、游戏说明框,棋子) void showQiPan(); 鼠标初始化 void initmouse(); 初始鼠标位置 void cursttoxy(int x,int y); 显示开始框 showKSK(int color); 显示退出框 showTCK(int color); 显示说明框 showSMK(int color); 显示操作框 showCZK(int color); 取消当前鼠标位置 void cancelMouse(int x,int y); 显示鼠标位置 void showMouse(int x,int y); 读取当前鼠标位置 void readmouse(int* bottom,int* mousex,int* mousey); 判断各个棋子的步法 int judgestepright(struct mouse* mouse0, struct mouse* mouse1,int a[10][9]); 是否退出游戏 int isoutgame(int mousex,int mousey); 是否存在棋子 int isexistQi(struct mouse *mouse,int a[10][9],int number); 是否开始游戏 int begingame(int mousex,int mousey); 判断输赢 int checkwin(int temp); 是否要取消当前要移动的起子 int iscancelQizi(struct mouse* mouse0,struct mouse* mouse1) 改变棋子 void changeQizi(struct mouse* mouse0,struct mouse* mouse1); 改变棋子边框颜色 void changecolor(struct mouse* mouse0); 游戏界面初始化 void newGame(); 结束游戏 void GameOver(); 系统设计难点及其解决方法 由于本游戏是在TC下运行的,而TC不能直接输出汉字,则在游戏界面上的汉字输出有一定的问题。在本程序中,故我们采用自行设计16×16 的点阵的汉字模型,采用汉字显示原理在TC中进行输出。 由于本程序采用鼠标操作,则在鼠标移动的同时,必须同时消隐原位置的鼠标图案,并且重新附上鼠标处原游戏界面图案。由于鼠标移动的不确

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档