欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    0911090103于双江《泡泡龙游戏》4025824.doc

    • 资源ID:3017092       资源大小:163KB        全文页数:23页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    0911090103于双江《泡泡龙游戏》4025824.doc

    一、题目(问题)描述我这次的课程设计是用C语言做一个小游戏泡泡龙。二、功能分析通过体验并分析后得出这泡泡龙游戏中主要功能包括:1.初始化新游戏的开局功能。2.方向掌握功能。3.发射功能。4.若有3个或3个以上颜色相同就消失功能。5.自动弹出下一个颜色(随机)功能。6.若全部泡泡都没了,就下一关。7.泡泡碰到指针则失败。三、系统设计1程序总体结构程序中由主模块负责协调各功能模块的工作。 跑泡龙是一个经典的小游戏,开局后,通过你掌握方向键进行射击,尽量把颜色相同的射到一块,3个或3个以上颜色一样的泡泡在一起就会消失,重复操作,控制方向,射击,当界面上的泡泡一个也没了,那么恭喜你,闯关成功。如果你射击的泡泡越来越多,最后碰到指针,那么很遗憾你失败了。 其结构图如下:泡泡龙程序系统开局控方向消失越来越多多多过关结束射击图2 泡泡龙的总体结构图2界面设计进入该游戏界面,你可以选择start/exit来选择是否要继续,点击start就可以自动进入游戏并开始玩。然后就根据规则玩此游戏。其界面图如下:图3 泡泡龙游戏的界面3输入方式设计此游戏为dos下程序,因此简化为键盘控制。上,下,左,右键用来移动指针的方向;回车用来射击;ESC 退出游戏 4重要数据的数据结构设计1> 泡泡龙界面数据#define VK_LEFT 0x4b00  /*控制方向的左键值*/ #define VK_RIGHT 0x4d00 /*控制方向的右键值*/#define VK_DOWN 0x5000 /*控制方向的下键值*/#define VK_UP 0x4800 /*控制方向的上键值*/#define VK_ESC 0x011b /*退出游戏*/#define VK_SPACE 0x3920 /*继续进行*/#define TRUE 1 /*正确*/#define FALSE 0 /*出现错误*/2> 泡泡龙界面内部数据 public: /*定义的全局变量*/float x,y; /*确定发射泡泡的方位*/int color; /*输入泡泡的颜色*/float radius; / *输入泡泡的半径大小*/int samecolor; /*判断泡泡颜色是否相同*/int clear_init; /*颜色相同的泡泡就消失*/ int notdrop; /* 泡泡没有碰到发射针就继续*/  int drop_init; /*颜色不相同的泡泡就累加 */5函数设计文件中函数的功能图如下:文件名函数原形函数功能函数处理描述;泡泡龙程序系统.Cvoid initboard()  选择输入输入在射击时的泡泡;circle1(bub.x,bub.y,10); 循环输入重复射击操作,泡泡循环射击;printbub();输出使界面内的泡泡越来越多,射击出很多不同颜色的泡泡;switch(key);循环操作循环控制方向键来确定射击的方向;exit(1);退出游戏失败,则退出;void clearboard();输出弧线利用for循环输出不同颜色的泡泡;void dropboard();输出泡泡利用for循环使相同颜色泡泡消失,不同颜色泡泡累加;void main();程序的主函数界面泡泡全部消失,成功进下一关,反之则失败退出。四、关键技术、难点及其解决方法此程序的关键是在游戏中,下面指针会循环的射击出不同颜色的小泡泡,而且使3个或3以上颜色相同的泡泡消失,不同颜色的累加,这些的各种表示方法五、测试方法1.按键测试。检查正确的输入时,是否界面正确表现;错误输入时,是否无效。2.程序运行测试。正确运行,观察是否异常;运行时中断,程序是否正确退出。六、总结课程设计是培养学生综合运用所学知识 ,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程,当今计算机应用在生活中可以说得是无处不在。掌握程序开发技术是十分重要的,而C语言又是最常见,因此做好C语言课程设计是十分必要的。自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。我做的是小游戏泡泡龙程序设计,虽然这程序不算很难,但对于我一个初学者来说,感觉很困难,也使第一次做课程设计,通过问同学,上网查资料,终于成功完成了此次课程设计。通过这次实训,使我对C语言有了更进一步的了解,也使我认识到理论与实践的结合才是最有效的。附1、使用说明1、 功能说明:泡泡龙游戏的操作非常,程序中已经定义到了,控制方向的上、下、左、右键,和控制发射的空格键。你只需要点开始进入游戏,就按照规则开是玩,通过你玩的会判断是进入下一关,还是失败退出。2、 用户手册:泡泡龙是一个简单经典的智力小游戏,手机上网上玩的人都比较多,大多是小朋友玩的比较多,有助于智力的开发,当然成年人也可以玩。附2、代码清单此文件主要包含涉及文件读写功能的函数。#include<iostream.h> #include<graphics.h> #include<conio.h> #include<dos.h> #include<bios.h> #include<stdlib.h> #include<math.h> #define VK_LEFT 0x4b00  /*上下左右键的值*/ #define VK_RIGHT 0x4d00 #define VK_DOWN 0x5000 #define VK_UP 0x4800 #define VK_ESC 0x011b #define VK_SPACE 0x3920 #define TRUE 1 #define FALSE 0 #define PI 3.141593 #define sqrt2 1.41421 #define y1 17.32051  int flag; circle1(int x,int y,float r) int i;  for(i=1;i<r;i+)  circle(x,y,i);    return 0;   class bubble public:  float x,y;  int color;  float radius;  int samecolor;  int clear_init;  int notdrop;  int drop_init; board114; void initboard()   /*/ int i,j,k;  for(i=0;i<114;i+)  boardi.y=i/19*2*y1+10+(i%19)/10*y1;   if(i%19)/10=0)boardi.x=(i%19)*20+10;   if(i%19)/10=1)boardi.x=(i%19)%10*20+20;   boardi.samecolor=FALSE;   boardi.clear_init=FALSE;   boardi.notdrop=FALSE;   boardi.drop_init=FALSE;   class startbub public:  float x,y;  float x2,y2;  int color;  float v;         /*bubble运动的速度*/  float radius;  float angle;  float moveangle;  startbub()  x=100.0;y=10.0+12*y1;angle=PI/2.0;moveangle=PI/2.0;v=1.0;  MakeBubble();  ShowAngle();  MoveBubble();  ChangeAngle();  ClearBubble();  DropBubble(); bub;  initbub()  bub.x=100;  bub.y=10+12*y1;  return 0;   printboard()                  /*/ int i;  for(i=0;i<114;i+)  if(boardi.color!=0)      setcolor(boardi.color);       circle1(boardi.x,boardi.y,10);       setfillstyle(SOLID_FILL,boardi.color); bar(boardi.x-sqrt2*4.4,boardi.y-sqrt2*4.4,boardi.x+sqrt2*4.4,boardi.y+sqrt2*4.4);          else setcolor(BLACK); circle1(boardi.x,boardi.y,10); setfillstyle(SOLID_FILL,BLACK); bar(boardi.x-sqrt2*4.4,boardi.y-sqrt2*4.4,boardi.x+sqrt2*4.4,boardi.y+sqrt2*4.4);    return 0;  startbub:MakeBubble()    /*/  color=random(6)+1;  return 0;  startbub:ShowAngle()     /*/ setcolor(BLACK);  setlinestyle(SOLID_LINE,10,10);  line(100.0,10+12*y1,x2,y2);  x2=100.0+30.0*cos(angle);  y2=10+12*y1-30.0*sin(angle);  setcolor(8);  line(100.0,10+12*y1,x2,y2);  setcolor(color);  circle1(100.0,10+12*y1,10);  return 0;  printbub()  setcolor(bub.color);  circle1(bub.x,bub.y,10);  bar(bub.x-sqrt2*5.0,bub.y-sqrt2*5.0,bub.x+sqrt2*5.0,bub.y+sqrt2*5.0);  bub.ShowAngle();  return 0;  clearbub()  setcolor(BLACK);  circle1(bub.x,bub.y,10);  bar(bub.x-sqrt2*5.0,bub.y-sqrt2*5.0,bub.x+sqrt2*5.0,bub.y+sqrt2*5.0);  bub.ShowAngle();  return 0; int startbub:MoveBubble()   /*/ int i,j;  int flag1;  flag=0; float min=30000.0;  float *length;      /*boardi到bub的距离的平方*/  while(1)     clearbub();   for(i=0;i<114;i+)   lengthi=(boardi.x-x)*(boardi.x-x)+(boardi.y-y)*(boardi.y-y);    if(lengthi<400.0&&boardi.color!=0)flag1=1;break;      if(flag1=1)break;   if(x<12)x=12;moveangle=PI-moveangle;   if(x>188)x=188;moveangle=PI-moveangle;   if(y<10)break;   x=x+2*cos(moveangle);   y=y-2*sin(moveangle);   printbub();   for(i=0;i<114;i+)  lengthi=(boardi.x-x)*(boardi.x-x)+(boardi.y-y)*(boardi.y-y);   if(lengthi<min&&boardi.color=0)min=lengthi;flag=i;     boardflag.color=color;   x=100;   y=20*10*y1+10;   color=0;   return flag;  startbub:ChangeAngle()  /*/ int key;  int flag_1=0;  bioskey(1);  key=bioskey(0);  switch(key)    case VK_RIGHT:   if(angle>PI/36.0)angle=angle-PI/72.0;moveangle=angle;ShowAngle();break;  case VK_LEFT:   if(angle<PI-PI/36.0)angle=angle+PI/72.0;moveangle=angle;ShowAngle();break;  case VK_SPACE:   MoveBubble();ShowAngle();moveangle=angle;flag_1=1;break;  case VK_ESC:   exit(1);    return flag_1;  startbub:ClearBubble()  /*/  return 0;  startbub:DropBubble()  /*/ return 0;  void clearboard() int quit=FALSE;  int i,j;  int sum=0;  int color=boardflag.color;  float m,n;  boardflag.samecolor=TRUE;  for(;)    for(i=0;i<114;i+)         if(boardi.color=color&&boardi.samecolor=TRUE&&boardi.clear_init=FALSE)     break;     if(i=113)quit=TRUE;break;        if(quit=TRUE)break;   for(j=0;j<114;j+)       m=boardj.x-boardi.x;    n=boardj.y-boardi.y;     if(m*m+n*n<450.0&&boardj.color=color)     boardj.samecolor=TRUE;      boardi.clear_init=TRUE;          for(i=0;i<114;i+)  if(boardi.samecolor=TRUE)  sum+;    if(sum>=3)  for(i=0;i<114;i+)  if(boardi.samecolor=TRUE)  boardi.color=0;   void dropboard()/*/ int quit=FALSE;  int i,j;  int m,n;  for(i=0;i<114;i+)  boardi.notdrop=FALSE;   boardi.drop_init=FALSE;    for(i=0;i<10;i+)  if(boardi.color!=0)boardi.notdrop=TRUE;   for(;)        for(i=0;i<114;i+)     if(boardi.notdrop=TRUE&&boardi.drop_init=FALSE)break;      if(i=113)quit=TRUE;break;          if(quit=TRUE)break;       if(boardi.notdrop=TRUE&&boardi.drop_init=FALSE)       for(j=0;j<114;j+)           m=boardi.x-boardj.x;      n=boardi.y-boardj.y; if(m*m+n*n<450.0&&boardj.color!=0) boardj.notdrop=TRUE;  boardi.drop_init=TRUE;          for(i=0;i<114;i+)   if(boardi.notdrop=FALSE)      boardi.color=0;    void main() int i;  int gdriver=DETECT,gmode;  initgraph(&gdriver,&gmode,"g:bc31bgi");         randomize();  initboard();  for(i=0;i<114;i+)  bub.MakeBubble();  printboard();   bub.ShowAngle();printboard();   for(;bub.ChangeAngle()=0;)bub.ShowAngle();printboard();   clearboard();   dropboard();   dropboard();   initboard();   initbub();   

    注意事项

    本文(0911090103于双江《泡泡龙游戏》4025824.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开