C语言课程设计试验报告_第1页
C语言课程设计试验报告_第2页
C语言课程设计试验报告_第3页
C语言课程设计试验报告_第4页
C语言课程设计试验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程名称:C语言课程设计实验项目:五子棋游戏设计专业班级:计专1502Iy7姓名:孙奇学号:JTJ|'■-——I''重实验室号:实验组号:实验时间:批阅时间:rI?指导教师:成绩:根源网络沈阳工业大学实验报告(合用计算机程序设计类)专业班级:计专1502学号:姓名:孙奇实验名称:五子棋游戏设计1?实验内容:1)掌握C语言的基本语法构造、程序设计方法和一些常有的算法;2)掌握对程序排查错误的能力。2?实验内容:1)实现双人对战的简单步骤和规则,能够判断胜败;2)两方轮番使用键盘的“T””键控制棋子在屏幕上的地点,按“空格”键搁置棋子,判断棋子应搁置在棋盘范围内且不可以已经有棋子,不然使用扬声器提示不可以搁置;(3)当一方的棋子数内行、列或对角线上连续达到5个(无禁手判断),则为胜方,在屏幕上显示成功一方,按随意键退出程序。3?实验方案(程序设计说明)(1)算法设计思路棋盘设计为19X格,初始状态光标在棋盘的左上,黑棋先走,轮漂泊子,当一方19连成五子或下满棋盘时,游戏结束。当游戏一方成功后显示成功信息。从程序表面看,这是一个二维平面图,因此数据用二维数组来表示,数组两个下标I.■_■■.能够表示棋盘上的地点,数组元素的值代表棋格上的状态,共有三种状况,分别是0代表无棋子,1代表黑棋,2代表白棋。这样程序的主要工作是接收棋手按键操作,两方轮流使用键盘的、、“?”、键控制光标挪动,“T”“J”空格键表示落子。一旦接收到空格键,说明棋手落子,先判断是不是有效地点,也就是说棋子应在棋盘内或棋盘的空地点上,无效地点时利用扬声器发声警告。落子成功后,立刻判断以该地点为中心的八个方向相邻的能否有同样颜色的棋子连成五子,假如连成五子,贝掰戏结束,输出成功一方的信息。假如想在棋战的过程中退出游戏,能够按Esc键。(2)程序功能流程图根源网络程序运转结果(1)规则界面(2)棋战界面获胜界面出现的问题及解决方法(1)游戏开始时,棋子本来初始在棋盘中央,一旦中央落子后,初始棋子与已有棋子重叠,为认识决问题将初始棋子挪动到棋盘左上方棋盘之外。棋子都为空心圆,在棋盘不好划分正在控制的棋子,改为已确立落子的棋子为实心圆,正在控制的棋子为空心圆。附件A沈阳工业大学实验报告(合用计算机程序设计类)专业班级:计专1502学号:姓名:孙奇实验程序:本程序在WindowsXPSP3操作系统及TurboC2.0开发环境下调试经过#include<stdio.h>#include<stdlib.h>#include<graphics.h>#include<bios.h>#include<conio.h>#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800:■■<■■■,#defineESC0x011b#defineSPACE0x3920■'.I#defineBILI20#defineJZ4#defineJS3#defineSIZE19intbox[SIZE][SIZE];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);clrscr( );gotoxy(15,4);printf("PlayRules:");gotoxy(15,8);printf("1.PressLeft,Right,Up,DownKeytomovePiece");gotoxy(15,12);printf("2.PressSpacetoplacethePiece");gotoxy(15,16);printf("3.DONOTpressSpaceoutsideofthechessboard");gotoxy(15,20);printf("DoyouaccepttheabovePlayingRules?[Y/N]:");while(1){m'gotoxy(60,20);ch=getche( );if(ch=='Y'||ch=='y')break;elseif(ch=='N'||ch=='n'){window(1,1,80,25);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+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++)box[x1][y1]=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_slice(intx,inty,intcolor)_{x=(x+JZ)*BILI;y=(y+JS)*BILI;setcolor(color);setfillstyle(SOLID_FILL,color);circle(x,y,8);,jfloodfill(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<0)break;else{for(i=step_x-1,j=step_y;i>=1;i--)if(box[i][j]==0){draw_circle(step_x,step_y,LIGHTBLUE);break;}if(i<1)break;step_x=i;judgewho(step_x,step_y);break;}caseRIGHT:if(step_x+1>18)break;else{for(i=step_x+1,j=step_y;i<=18;i++)if(box[i][j]==0){draw_circle(step_x,step_y,LIGHTBLUE);break;}if(i>18)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;jv=18;j++)if(box[i][j]==0){draw_circle(step_x,step_y,LIGHTBLUE);break;}if(j>18)break;step_y=j;judgewho(step_x,step_y);break;}caseUP:if((step_y-1)<0)break;else{for(i=step_x,j=step_y-1;j>=1;j--)if(box[i][j]==0){draw_circle(step_x,step_y,LIGHTBLUE);break;}if(j<1)break;step_y=j;judgewho(step_x,step_y);break;}caseESC:break;caseSPACE:if(step_x>=1&&step_x<=18&&step_y>=1&&step_y<=18)一{一一if(box[step_x][step_y]==0){box[step_x][step_y]=flag;if(flag==1){draw_slice(step_x,step_y,BLUE);一}一1J}Xy■IX*严else{draw_slice(step_x,step_y,WHITE);「J}T-if(judgeresult(step_x,step_y)==1){~一sound(1000);|delay(1000);nosound( );gotoxy(30,4);if(flag==1)根源网络{setbkcolor(BLUE);cleardevice( );setviewport(100,100,540,380,1);setfillstyle(1,2);setcolor(YELLOW);rectangle(0,0,439,279);floodfill(50,50,14);setcolor(12);settextstyle(1,0,5);outtextxy(20,20,"TheBlackWin!");setcolor(14);settextstyle(3,0,5);outtextxy(120,120,"TheBlackWin!");setcolor(14);settextstyle(2,0,8);getch( );closegraph( );exit(0);}if(flag==2){setbkcolor(BLUE);cleardevice( );setviewport(100,100,540,380,1);setfillstyle(1,2);setcolor(YELLOW);rectangle(0,0,439,279);floodfill(50,50,14);setcolor(12);settextstyle(1,0,8);outtextxy(20,20,"TheWhiteWin!");setcolor(14);settextstyle(3,0,5);outtextxy(120,120,"TheWhiteWin!");"■setcolor(14);settextstyle(2,0,8);getch( );closegraph( );exit(0);}}change( );break;}}elsebreak;}}voidchange( ){if(flag==1)flag=2;elseflag=1;}voidjudgewho(intx,inty){if(flag==1)draw_circle(x,y,BLUE);根源网络if(flag==2)draw_circle(x,y,WHITE);_}intjudgeresult(intx,inty){intj,k,n1,n2;while(1){n仁0;n2=0;/*水平向左数*/for(j=x,k=y;j>=1;j--){if(box[j][k]==flag)n1++;elsebreak;}x”T「/*水平向右数*/for(j=x,k=y;jv=18;j++){if(box[j][k]==flag)n2++;elsebreak;}if(n1+n2-1>=5){return(1);break;}/*垂直向上数*/n仁0;n2=0;for(j=x,k=y;k>=1;k--){if(box[j][k]==flag)n1++;elsebreak;}/*垂直向下数*/for(j=x,k=y;k<=18;k++){if(box[j][k]==flag)n2++;elsebreak;}if(n1+n2-1>=5){return(1);break;根源网络}/*向左上方数*/n仁0;n2=0;for(j=x,k=y;j>=1,k>=1;j--,k--){if(box[j][k]==flag)n1++;elsebreak;}/*向右下方数*/for(j=x,k=y;j<=18,k<=18;j++,k++){if(box[j][k]==flag)2++;elsebreak;}if(n1+n2-1>=5){return(1);break;}/*向右上方数*/n仁0;n2=0;for(j=x,k=y;jv=18,k>=1;j++,k--){if(box[j][k]==flag)n1++;elsebreak;}/*向左下方数*/for(j=x,k=y;j>=1,k<=18;j--,k++){if(box[j][k]==flag)n2++;elsebreak;}if(n1+n2-1>=5)1I..{return(1);break;}】「打'return(0);break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论