1、计算机技术基础(计算机技术基础(C C 语言)语言) 课程设计课程设计 一一. . 选题背景选题背景: 该游戏程序是一个集休闲, 娱乐为一身的游戏程序。 能在紧张的学习和工 作之余, 给你一个轻松大脑和身体的空间, 让你体会到在游戏中锻炼大脑思维的 乐趣。同时游戏该程序也给你一个创造新思路,发展新思维的新途径。 游戏的目的也很简单,就是让弹球在游戏区中尽可能少的弹碰,并根据 球停止点离左边强的距离来计算你所获得的积分。 二、二、设计思想:设计思想: 用比较常见的函数以及部分绘图函数来实现游戏的界面的制作。其运用 Bioskey()函数来设定键盘上左右键的功能,该程序中还定义了 SPORT()函
2、 数来进行该游戏的主要运算记分过程, 另外还定义了其他几个函数来实现该程序 的其他运行部分。 三程序流程图三程序流程图 N Y N Y N Y N Y N Y initiate Return(0) Return(1) 调用 initgr 调用 ball() 变量赋值 i=0 Setcolor(I+7); i- Main 函数 调用 sport() While() If() If() Oldx=place.x; SIDE BY SIDE SIDE BY SIDE N N Y Y N Y N Y Closegr() 调用 shouHZ 函数 if() q=p if() Return(i) 清屏 再
3、次调用 ball()函数 调用 paixu()函数 P!=NULL ShouHZ()内定义变量 If()=NULL Printf(“ error ”) i=0 inext=NULL; return 1; void initgr(void) /* BGI 初始化 */ int gd=DETECT,gm=0; /* 和 gd=VGA,gm=VGAHI 是同样效果 */ initgraph( int key() /*左右键功能函数*/ int key,number=0,n; for(;) if(bioskey(1) /*判断是否有键按下*/ key=bioskey(0); /*取键值*/ if(ke
4、y=VK_RIGHT) /*如果按下右键*/ number=number+2; if(number=200) number=200; setlinestyle(0,0,3); setcolor(14); /*力量槽*/ line(number+150,getmaxy()-49,number+150,getmaxy()-11); if(key=VK_LEFT) setcolor(1); for(n=152;n=0;i-) setcolor(i + 7); circle(place.x,place.y,i); dis() /*消去小球*/ int i; for(i =8;i=0;i-) setco
5、lor(1); circle(place.x,place.y,i); int paixu(ffile *h) /*将当前成绩与历史成绩比较并排序,然后一起存入链表 */ ffile *p,*q,*t; int j=1; float length; void *size; p=h-next; q=h; place.length=getmaxx()-100-place.x; /*球停下后离右边墙的距离*/ length=place.length; place.zonghe=place.ci*5+(1-(length-8)/400)*80;/*综合成绩(综合考虑 了距离和碰墙数)*/ setfill
6、style(SOLID_FILL,1); floodfill(155,30,3); sprintf(size,“%d“,place.length); outtextxy(155,30,size); while(p!=NULL) if(place.zonghedata) q=p; p=p-next; j+ +; if(place.zonghe=p-data) if(t=(ffile *)malloc(sizeof(ffile)=NULL) return 0; t-data=place.zonghe; t-next=q-next; q-next=t; place.time+; break; return(j); /*返回本次成绩在历史中排名*/ sport() /*小球运动功能*/ int oldx=0; /*记录先前的位置*/ float v; /*设定初始速度*/ in