程序设计基础课程设计俄罗斯方块游戏 .doc
《程序设计基础课程设计俄罗斯方块游戏 .doc》由会员分享,可在线阅读,更多相关《程序设计基础课程设计俄罗斯方块游戏 .doc(66页珍藏版)》请在三一办公上搜索。
1、程序设计基础课程设计俄罗斯方块游戏院 系:计算机科学技术学院班 级:网络10-1班组 长:组 员:指导教师:2010年12月31日一 实践的目的和要求加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力。二 实践内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等
2、。三 实践任务1欢迎画面2. 附加声音界面3俄罗斯方块课程设计系统(自己设计界面)四 设计流程五 个人动画1.雪花*#include#include#include#includeint change1=10;void Pr() int fr=392,392,440,294,262,262,220,294,392,392, 440,532,440,392,262,262,220,294,392,294, 262,247,220,196,392,294,330,294,262,262, 220,294,330,294,262,294,22,247,220,196;setcolor(change1
3、/10);settextstyle(0,0,3);outtextxy(100,200,Welcome to our Game!);outtextxy(180,300,li zhao long);outtextxy(400,20,yang fei);outtextxy(10,20,hao jia jun);outtextxy(400,400,liu long);outtextxy(20,400,liu ming jing);outtextxy(240,100,san zu);sound(frchange1/10);2.叶旋*#include #include#include#include#in
4、clude#include#define pi 3.1415926int fr3=392,330,392,294,330,294,262,262,247, 220,247,262,247,262,294,330,392,330, 392,587,523,494,523,262,247,220,247, 262,247,262,294,262,392,440,494,523, 494,523,494,440,392,440,392,262,294, 330,349,330,349,392,262,294,330,330, 392,440,494,523,494,523,587,523,587,
5、659,392,262,294,330,349,330,349,330, 294,262,247,262;int tim3=2,6,2,6, 2,6,10,2,2, 2,2,2,4, 4,2,12,2,6, 2,6,2,4,10,2, 2,2,2, 2,4,4,2, 8,2, 2,2,4, 2,2,2,2, 2,4, 8,2,2, 2,4,2,2, 2,2, 2,4,6, 2,2,2,4, 2,2, 2,2,2, 4,8,2,2, 2,4, 2,2,2, 4,2,2,10;void interrupt (*handler)();void interrupt music3();void Inet
6、(void) int gd=DETECT ,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,c:TC3BGI); cleardevice();void interrupt music3() static int flag=0,note=0,fre,dur; if(flag=(int)(dur*3) flag=0; nosound(); fre=fr3note; dur=tim3note; sound(fre); note+; if(note=77) note=0; handler(); flag+; void Donghua3()
7、 char ch; int i,j=0,x,p,y,k=1,gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,); handler=getvect(0x1c); setvect(0x1c,music3); p=0; while(!kbhit() if(p=200)p=0; j+=10; for(i=0;i=2000;i+) x=300+100*cos(2*i*pi/1000)*sin(i*pi/1000+j*pi/1000); y=240+100*cos(2*i*pi/1000)*cos(i*pi/1000+j*pi/1000); if(j%500
8、=0) k+; putpixel(x,y,k); for(i=0;i=2000;i+) x=360+100*cos(2*i*pi/1000)*sin(i*pi/1000+j*pi/1000); y=120+100*cos(2*i*pi/1000)*cos(i*pi/1000+j*pi/1000); if(j%500=0) k+; putpixel(x,y,k); for(i=0;i=2000;i+) x=240+100*cos(2*i*pi/1000)*sin(i*pi/1000+j*pi/1000); y=280+100*cos(2*i*pi/1000)*cos(i*pi/1000+j*pi
9、/1000); if(j%500=0) k+; putpixel(x,y,k); for(i=0;i=2000;i+) x=400+100*cos(2*i*pi/1000)*sin(i*pi/1000+j*pi/1000); y=360+100*cos(2*i*pi/1000)*cos(i*pi/1000+j*pi/1000); if(j%500=0) k+; putpixel(x,y,k); for(i=0;i=2000;i+) x=500+100*cos(2*i*pi/1000)*sin(i*pi/1000+j*pi/1000); y=240+100*cos(2*i*pi/1000)*co
10、s(i*pi/1000+j*pi/1000); if(j%200=0) k+; putpixel(x,y,k); outtextxy(50,240,Failure is the mother of success.nntry our bestnn); delay(200000); cleardevice(); setvect(0x1c,handler); closegraph(); nosound(); void maih(void) Inet() ; /* wafly: you can re-order these animates as you like*/ while(!kbhit()
11、Donghua3(); 3.时表*#include #include #include #define CENTERX 320 /*表盘中心位置*/ #define CENTERY 175 #define CLICK 100 /*喀嗒声频率*/ #define CLICKDELAY 30 /*喀嗒声延时*/ #define HEBEEP 10000 /*高声频率*/ #define LOWBEEP 500 /*低声频率*/ #define BEEPDELAY 200 /*报时声延时*/*表盘刻度形状*/ int Mrk_18=-5,-160,5,-160,5,-130,-5,-130, ; i
12、nt Mrk_28=-5,-160,5,-160,2,-130,-2-130, ; /*时针形状*/ int HourHand8=-3,-100,3,-120,4, 10,-4,10; /*分针形状*/ int MiHand8=-3,-120,3,-120,4, 10,-4,10; /*秒针形状*/ int SecHand8=-2,-150,2,-150,3, 10,-3,10; /*发出喀嗒声*/ void Click() sound(CLICK); delay(CLICKDELAY);nosound(); /*高声报时*/ void HighBeep() sound(HEBEEP); de
13、lay(BEEPDELAY); nosound; /*低声报时*/ void LowBeep() sound(LOWBEEP); /*按任意角度画多边形*/ void DrawPoly(int *data,int angle,int color) int usedata8; float sinang,cosang; int i; sinang=sin(float)angle/180*3.14); cosang=cos(float)angle/180*3.14); for(i=0;i8;i+=2) usedatai =CENTERX+ cosang*datai-sinang*datai+1+.5
14、; usedatai+1=CENTERY+sinang*datai+cosang*datai+1+.5; setfillstyle(SOLID_FILL,color); fillpoly(4,usedata); /*画表盘*/ void DrawClock(struct time *cutime) int ang; float hourrate,minrate,secrate; setbkcolor(BLUE); cleardevice(); setcolor(WHITE); /* 画刻度*/ for(ang=0;angti_sec/60; minrate=(float)cutime-ti_m
15、in+secrate)/60; hourrate=(float)cutime-ti_hour/12)+minrate)/12; ang=hourrate*360; DrawPoly(HourHand,ang,YELLOW);/*画时针*/ ang=minrate*360; DrawPoly(MiHand,ang, GREEN);/*画分针*/ ang=secrate*360; DrawPoly(SecHand,ang, RED);/*画秒针*/ maiy() int gdriver=EGA, gmode=EGAHI; int curpage; struct time curtime ,newt
16、ime ;registerbgidriver(EGAVGA_driver);initgraph(&gdriver,&gmode,c:tc3bgi);setbkcolor(BLUE); cleardevice(); gettime(&curtime); curpage=0; DrawClock(&curtime); while(1) if(kbhit() break; /*按任意键退出*/ gettime(&newtime); /*检测系统时间*/ if(newtime.ti_sec!=curtime.ti_sec)/*每1秒更新一次时间*/ if(curpage=0) curpage=1; e
17、lse curpage=0; curtime=newtime; /*设置绘图页*/ setactivepage(curpage); /*在图页上画表盘*/ DrawClock(&curtime); /*设置绘图页为当前可见页*/ setvisualpage(curpage); /*0分0秒高声报时*/ if(newtime.ti_min=0&newtime.ti_sec=0) HighBeep(); /* 59分55至秒时低声报时*/ else if(newtime.ti_min=59&ewtime.ti_sec=59) LowBeep();/*其他时间只发出喀嗒声*/ else Click(
18、); closegraph(); 4.落字*#define FONT_HEIGHT 13#define FONT_WIDTH 11#define MAX_DELAY 10#define MIN_DELAY 1#define DELAY_TIME 5000 #include #include #include #include #define FONT_HEIGHT 13#define FONT_WIDTH 11#define MAX_DELAY 10#define MIN_DELAY 1#define DELAY_TIME 5000typedef struct StringObj_tag in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础课程设计俄罗斯方块游戏 程序设计 基础 课程设计 俄罗斯方块 游戏
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2386023.html