- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该设计资料为经过指导导师审核并通过答辩,确保了内容准确、结构清晰。
计算机学院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中进行输出。
由于本程序采用鼠标操作,则在鼠标移动的同时,必须同时消隐原位置的鼠标图案,并且重新附上鼠标处原游戏界面图案。由于鼠标移动的不确
您可能关注的文档
最近下载
- 俄国构成主义设计运动报告.ppt VIP
- 2025南方电网保山供电局项目制用工招聘(3人)笔试参考题库附答案解析.docx VIP
- 2025年广东省中学生天文知识竞赛试题(及答案).docx VIP
- 电镀基础知识100问.pdf VIP
- 党课:9.3纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵PPT课件.pptx VIP
- 高中数学--等差数列知识点归纳和习题检测.doc VIP
- 云南省2025年中考英语真题含答案.pptx VIP
- SW硅墨烯免拆模外墙保温系统工程作业指导书.docx VIP
- 2025-2026学年粤教花城版(2024)初中音乐七年级上册教学计划及进度表.docx
- 2025杭州电力设备制造有限公司招聘70人(第二批)笔试备考试题及答案解析.docx VIP
文档评论(0)