ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:18.07KB ,
资源ID:4494601      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4494601.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计实验报告.docx

1、C语言课程设计实验报告实验报告课程名称:C语言课程设计实验项目:五子棋游戏设计专业班级:计专1502姓名:孙奇学号:实验室号:实验组号:实验时间:批阅时间:指导教师:成绩:沈阳工业大学实验报告(适用计算机程序设计类)专业班级:计专1502学号:姓名:孙奇实验名称:五子棋游戏设计1.实验内容:(1)掌握C语言的基本语法结构、程序设计方法和一些常见的算法;(2)掌握对程序排查错误的能力。2.实验内容:(1)实现双人对战的简单步骤和规则,能够判断输赢;(2)双方轮流使用键盘的“”、“”、“”、“”键控制棋子在屏幕上的位置,按“空格”键放置棋子,判断棋子应放置在棋盘范围内且不能已经有棋子,否则使用扬声

2、器提示不能放置;(3)当一方的棋子数在行、列或对角线上连续达到5个(无禁手判断),则为胜方,在屏幕上显示胜利一方,按任意键退出程序。3.实验方案(程序设计说明)(1)算法设计思路棋盘设计为1919格,初始状态光标在棋盘的左上,黑棋先走,轮流落子,当一方连成五子或下满棋盘时,游戏结束。当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表无棋子,1代表黑棋,2代表白棋。这样程序的主要工作是接收棋手按键操作,双方轮流使用键盘的“”、“”、“”、“”键控制光标移动,空格键表示

3、落子。一旦接收到空格键,说明棋手落子,先判断是否是有效位置,也就是说棋子应在棋盘内或棋盘的空位置上,无效位置时利用扬声器发声警示。落子成功后,马上判断以该位置为中心的八个方向相邻的是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出胜利一方的信息。如果想在对弈的过程中退出游戏,可以按Esc键。(2)程序功能流程图4程序运行结果(1)规则界面(2)对弈界面(3)获胜界面5出现的问题及解决方法(1)游戏开始时,棋子原来初始在棋盘中央,一旦中央落子后,初始棋子与已有棋子重叠,为了解决问题将初始棋子移动到棋盘左上方棋盘以外。(2)棋子都为空心圆,在棋盘不好区分正在控制的棋子,改为已确定落子的棋

4、子为实心圆,正在控制的棋子为空心圆。附件A沈阳工业大学实验报告(适用计算机程序设计类)专业班级:计专1502学号:姓名:孙奇实验程序:本程序在WindowsXPSP3操作系统及开发环境下调试通过。#include#include#include#include#include#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b#defineSPACE0x3920#defineBILI20#defineJZ4#defineJS3#defineSIZE19intboxSIZESIZE;

5、intstep_x,step_y;intkey;intflag=1;voidattentoin();voiddraw_box();voiddraw_cicle(intx,inty,intcolor);voiddraw_slice(intx,inty,intcolor);voidchange();voidjudgewho(intx,inty);voidjudgekey();intjudgeresult(intx,inty);voidattention() charch; window(1,1,80,25); textbackground(LIGHTBLUE); textcolor(YELLOW)

6、; clrscr(); gotoxy(15,4); printf(PlayRules:); gotoxy(15,8); printf(,Right,Up,DownKeytomovePiece); gotoxy(15,12); printf(); gotoxy(15,16); printf(); gotoxy(15,20); printf(DoyouaccepttheabovePlayingRules?Y/N:); while(1) gotoxy(60,20); ch=getche(); if(ch=Y|ch=y) break; elseif(ch=N|ch=n) window(1,1,80,2

7、5); textbackground(BLACK); textcolor(LIGHTGRAY); clrscr(); exit(0); gotoxy(51,12); printf(); voiddraw_box() intx1,x2,y1,y2; setbkcolor(LIGHTBLUE); setcolor(YELLOW); gotoxy(7,2); printf(Left,Right,Up,DownKEYtomove,Spacetoput,ESC-quit.); for(x1=1,y1=1,y2=18;x1=18;x1+) line(x1+JZ)*BILI,(y1+JS)*BILI,(x1

8、+JZ)*BILI,(y2+JS)*BILI); for(x1=1,y1=1,x2=18;y1=18;y1+) line(x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI); for(x1=1;x1=18;x1+) for(y1=1;y1=18;y1+) boxx1y1=0;voiddraw_circle(intx,inty,intcolor) setcolor(color); setlinestyle(SOLID_LINE,0,1); x=(x+JZ)*BILI; y=(y+JS)*BILI; circle(x,y,8);voiddraw_

9、slice(intx,inty,intcolor) x=(x+JZ)*BILI; y=(y+JS)*BILI; setcolor(color); setfillstyle(SOLID_FILL,color); circle(x,y,8); floodfill(x,y,color); setcolor(color); setfillstyle(SOLID_FILL,color); pieslice(x,y,0,360,8); setcolor(color);voidjudgekey() inti; intj; switch(key) caseLEFT: if(step_x-1=1;i-) if(

10、boxij=0) draw_circle(step_x,step_y,LIGHTBLUE); break; if(i18) break; else for(i=step_x+1,j=step_y;i18)break; step_x=i; judgewho(step_x,step_y); break; caseDOWN: if(step_y+1)18) break; else for(i=step_x,j=step_y+1;j18)break; step_y=j; judgewho(step_x,step_y); break; caseUP: if(step_y-1)=1;j-) if(boxi

11、j=0) draw_circle(step_x,step_y,LIGHTBLUE); break; if(j=1&step_x=1&step_y=1;j-) if(boxjk=flag) n1+; else break; /* 水平向右数 */ for(j=x,k=y;j=5) return(1); break; /* 垂直向上数 */ n1=0; n2=0; for(j=x,k=y;k=1;k-) if(boxjk=flag) n1+; else break; /* 垂直向下数 */ for(j=x,k=y;k=5) return(1); break; /* 向左上方数 */ n1=0; n

12、2=0; for(j=x,k=y;j=1,k=1;j-,k-) if(boxjk=flag) n1+; else break; /* 向右下方数 */ for(j=x,k=y;j=18,k=5) return(1); break; /* 向右上方数 */ n1=0; n2=0; for(j=x,k=y;j=1;j+,k-) if(boxjk=flag) n1+; else break; /* 向左下方数 */ for(j=x,k=y;j=1,k=5) return(1); break; return(0); break; voidmain() intgdriver=VGA,gmode=VGAHI; clrscr(); attention(); initgraph(&gdriver,&gmode,c:tcbgi); flag=1; draw_box(); do step_x=0; step_y=0; judgewho(step_x-1,step_y-1); do while(bioskey(1)=0); key=bioskey(0); judgekey(); while(key!=SPACE&key!=ESC); while(key!=ESC); closegraph();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1