




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*学院计算机与信息科学系实验报告 学年第 学期 任课老师: 课程名称班级座号姓名实验题目实验时间实验开始日期: 报告提交日期: 实验目的、要求使用图形函数设计棋盘,利用按键扫描进行移动棋子,设计五字棋游戏。实验步骤与内容1.(1)主要设计思想:利用WHILE语句进行按键的扫描 (2)主要程序说明:int main() /*主函数*/ int gdriver,gmode; int key; gdriver=DETECT; Initialization(); /*运行数据输入子函数*/ initgraph(&gdriver,&gmode,c:tc); /*初始化图形函数*/ Drawing(scale); /*画棋盘函数*/ Do /*按键扫描*/ while (bioskey(1)=0); key=bioskey(0); KeyAction(key); while(Esc!=key&found=2); /*玩家自己选择要退出,还是以分出胜负*/否 开始 closegraph();Found=1 if(found=1)运行子函数Initialization printf(the blue win); else初始化图形 printf(the blond win); 红胜蓝胜 getch(); 画棋盘 结束输入运行指令 KeyAtion()是没输入ESC且未分出胜负 开始int ResultCheck(int flag) 计算x,y int x,y,j,k; 1=1 int n1,n2; x=(globalx-240)/20; y=(globaly-100)/20; n1,n2赋值 while(1) n1=0; J=x,k=y n2=0; for(j=x,k=y;j=1;j-)否 j=1 if(ajk=flag) n1+;否是 elseajk=flag break; 是 for(j=x,k=y;j=5) 否 j=1;k-) 是 if(ajk=flag) n1+; N2+ j+ else break ;N1+n2-1=5 for(j=x,k=y;k=5) return(flag); n1=0; n2=0; for(j=x,k=y;(j=1)&(k=1);j-,k-) if(ajk=flag) n1+; else break; 返回2 for(j=x,k=y;(j=scale)&(k=5) return(flag); n1=0; n2=0; for(j=x,k=y;(j=1);j+,k-) if(ajk=flag) n1+; else break; for(j=x,k=y;(j=1)&(k=5) return(flag); 开始 return(2);输入scale color i=0int Initialization()否 iscale int i,j; printf(please input scale(scale=30):);是 scanf(%d,&scale); j=0 printf(what are you color?(1-blue 6-brown)n); scanf(%d,&color);否 jscale for(i=0;iscale;i+) for(j=0;jscale;j+)是 aij=2; return 0; aij=2 j+void DrawCircle(int x,int y,int color) 返回 0 setcolor(color); circle(x,y,8); 结束 开始void MoveUp(int i,int j)Globaly-=20 globaly-=20; if(aij-1=2|i=0|j-1=scale|j-1=scale)是否在棋盘内,或是否下字 DrawCircle(globalx,globaly,color); if(i=0|j=scale|j=scale) DrawCircle(globalx,globaly+20,WHITE);是 else下字画圆 if(aij=2) DrawCircle(globalx,globaly+20,WHITE);是否在棋盘外是否 画白圆aij=2是 画白圆 结束 开始int Drawing(int n)设背景颜色 int i; setbkcolor(WHITE);设线条颜色 setcolor(4); for(i=0;i=n;i+) i=0 line(startx+i*20,starty,startx+i*20,starty+n*20); i0&j0&iscale&jscale&aij=2) colorexchange(i,j); 结束 开始void KeyAction(int key)A=(globalx-240)/20 int a,b; a=(globalx-240)/20;B=(globaly-100)/20 b=(globaly-100)/20; switch(key) temp case UP:MoveUp(a,b); break; case DOWN:MoveDown(a,b); break; case LEFT:MoveLeft(a,b); break; case RIGHT:MoveRight(a,b); break; case kongge: judge(a,b); break; judgeright leftmovedownmoveup (3)源程序:#include #include #include 结束#define Esc 0x11b#define UP 0x4800#define DOWN 0x5000#define LEFT 0x4b00#define RIGHT 0x4d00#define kongge 0x3920int scale,color,mult=20,found=2,radia=10,a3030;int startx=240,starty=100;int globaly=100,globalx=220;int ResultCheck(int flag) /*胜负判断*/int Initialization() /*输入棋盘数据函数*/void DrawCircle(int x,int y,int color)/*画圆函数*/void MoveUp(int i,int j) /*向上移动的函数*/void MoveRight(int i,int j)void MoveLeft(int i,int j)void MoveDown(int i,int j)int Drawing(int n) /*画棋盘函数*/void colorexchange(int i,int j) /*换方*/void judge(int i,int j)void KeyAction(int key)int main() (4)实验结果:试验过程记录实验结果记录以及与预期结果比较以及分析总结以及心得体会这次的C语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 德州数学新课标考试题及答案
- 天文系考试题目及答案
- 时空量子纠缠-洞察及研究
- 2025年公需科目人工智能与健康试题及答案
- 2025年公需科目考试试题集及答案
- 2025年公需科目《专业技术人员创新能力培养》题库(含答案)
- 2025年高级电工证考试试题含答案
- 系统实施与管理办法
- 人道救助管理办法无锡
- 蜀绣地标保护管理办法
- 豌豆栽培种植技术
- 3.1生活在新型民主国家 教案 -2025-2026学年统编版道德与法治九年级上册
- 内镜中心课件
- 脑血管造影进修汇报总结
- 2025年运城社区专职工作人员招聘真题
- 钢材供货方案及保证措施范本
- 急性出血性疾病的早期识别与处理
- JJF 2258-2025关联法天然气发热量测定仪校准规范
- 2025秋统编版(2024)道德与法治一年级上册教学计划
- 2024中国地质大学(武汉)辅导员招聘笔试真题
- 科创板开户测试题及答案
评论
0/150
提交评论