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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c语言游戏.docx

1、c语言游戏#include graphics.h /*头文件*/ #include time.h #include stdlib.h #include bios.h #include dos.h #include stdio.h #define ESC 0x11b /*键盘扫描码*/ #define UP 0x4800 #define DOWN 0x5000 #define LEFT 0x4b00 #define F1 0x3b00 #define RIGHT 0x4d00 #define YES 0x1579 #define NO 0x316e #define RESTART 0x1372

2、struct diamond /*记录每种方块每种状态的信息*/ int x4; int y4; int start_x; int start_y; int color; struct diamond *next; ; int grid1223; /*记录所有格子的状态 (0)没有方块 (1)有固定方块 (2)有活动方块*/ int x; /*活动方块所在位置*/ int y; int level; /*游戏难度*/ int count; /*计数器*/ int score;/*得分*/ struct diamond *nowinfo; /*当前活动方块*/ struct diamond *n

3、extinfo; /*下一个方块*/ int color;/*画格子的颜色*/ int backcolor;/*游戏区域背景色*/ void show_interface (int mode);/*显示游戏界面*/ void show_copsign (int topx,int topy,int size,int color);/*显示公司标志-恒基伟业*/ void show_intro (int xs,int ys);/*显示软件介绍区*/ /*void print(); 测试用函数*/ void scandel();/*扫描所有格子看是否有可消除行*/ void show_down ()

4、;/*方块下落后的下一个状态*/ void show_next ();/*方块翻转后的下一个状态*/ void show_left ();/*方块向左移动后的下一个状态*/ void show_right ();/*方块向右移动后的下一个状态*/ void interrupt (*oldtimer)();/*指向未安装前的中断向量,即函数指针,指向一段可执行的代码*/ void install();/*安装新的中断向量,即将中断服务程序安装到中断向量表中*/ void interrupt newtimer();/*中断服务程序*/ struct diamond *get_diamond();/

5、*随机得到一个方块*/ struct diamond *create_I();/*函数用来构造各种类形方块的环形链表*/ struct diamond *create_T();/*返回链表中随机一个状态的指针*/ struct diamond *create_L(); struct diamond *create_J(); struct diamond *create_Z(); struct diamond *create_N(); struct diamond *create_H(); void delinfo (struct diamond *info);/*释放当前方块所占用的空间*/

6、void addtobuffer(int c);/*向键盘缓冲区中增加一个DOWN*/ /*void clrkey();调用dos中断清空键盘缓冲区,未使用此方法.*/ void showsubwin(struct diamond *next);/*在小窗口显示下一个方块*/ void showscore(int scoreget);/*显示分数*/ void startset();/*初始化游戏*/ main () int driver=VGA; int mode=VGAHI; int i;/*计数器*/ int j; int key;/*记录键盘扫描码*/ initgraph (&driv

7、er,&mode,);/*初始化*/ color=8; backcolor=7; level=1; score=298; count=0; show_interface (9);/*显示界面*/ setfillstyle(SOLID_FILL,1); bar(0,465,640,480); outtextxy(5,469,Press any key to start.); getch(); setfillstyle(SOLID_FILL,9); bar(0,465,640,480); showscore(0);/*显示分数*/ randomize(); nowinfo=get_diamond

8、();/*得到一个当前方块*/ oldtimer=getvect(0x1c); install(newtimer); for(i=0;i=21;i+)/*初始化grid1223*/ for(j=1;j=10;j+) gridj=0; for(i=0;i=22;i+) grid0=1; grid11=1; for(i=0;istart_x;/*初始化方块位置*/ y=nowinfo-start_y; nextinfo=get_diamond ();/*得到下一个方块*/ showsubwin(nextinfo);for (;)key=bioskey(0);/*得到键盘扫描码*/ if (key)

9、 switch(key) case DOWN: show_down (); break; case UP: show_next (); break; case LEFT: show_left(); break; case RIGHT: show_right(); break; case RESTART: install(oldtimer); setfillstyle(SOLID_FILL,1); bar(0,465,640,480); outtextxy(5,469,Are you sure to restart (Y/N).); for (;)key=bioskey(0);/*得到键盘扫描码

10、*/ if (key=YES) startset(); setfillstyle(SOLID_FILL,9); bar(0,465,640,480); break; if (key=NO) setfillstyle(SOLID_FILL,9); bar(0,465,640,480); install(newtimer); break; break; /* case F1: print(); break; */ case ESC: install(oldtimer); setfillstyle(SOLID_FILL,1); bar(0,465,640,480); outtextxy(5,469,

11、Are you sure to exit (Y/N).); for (;)key=bioskey(0);/*得到键盘扫描码*/ if (key=YES) closegraph(); exit(0); if (key=NO) setfillstyle(SOLID_FILL,9); bar(0,465,640,480); install(newtimer); break; struct diamond *get_diamond() struct diamond *now; switch (random(7)+1) case 1: now=create_I(); return now; case 2

12、: now=create_T(); return now; case 3: now=create_L(); return now; case 4: now=create_J(); return now; case 5: now=create_Z(); return now; case 6: now=create_N(); return now; case 7: now=create_H(); return now; void show_interface (int fill_mode) int i; setbkcolor (9); setcolor (color); setfillstyle

13、(SOLID_FILL,backcolor); bar (100,60,300,420); bar (360,60,440,140); rectangle (100,60,300,420); rectangle (96,56,304,424);rectangle (360,60,440,140); rectangle (356,56,444,144); setfillstyle (fill_mode,14); floodfill (97,57,color); floodfill (397,57,color); setcolor(1); rectangle(96,56,304,424); set

14、color (color); for (i=80;i=400;i+=20) line (100,i,300,i); for (i=120;i=280;i+=20) line (i,60,i,420); for (i=80;i=120;i+=20) line (360,i,440,i); for (i=380;i=420;i+=20) line (i,60,i,140); show_intro (360,180); show_copsign (475,320,40,1); setfillstyle(SOLID_FILL,1); setcolor(14); rectangle(420,405,53

15、4,417); floodfill (421,406,14); outtextxy(422,408,HI-TECH WEALTH); void show_copsign (int topx,int topy,int size,int color) int halfsize,qtrsize; int xadd,xdel,yadd1,yadd2; halfsize=0.5*size; qtrsize=0.25*size;xadd=topx+size; xdel=topx-size; yadd1=topy+size; yadd2=topy+2*size;setcolor(color); line (

16、topx,topy,xdel,yadd1); line (xdel,yadd1,topx,yadd2); line (topx,yadd2,xadd,yadd1); line (xadd,yadd1,topx,topy); rectangle (topx-halfsize,topy+halfsize,topx+halfsize,yadd1+halfsize); setfillstyle (SOLID_FILL,color); floodfill (topx,topy+1,color); floodfill (xdel+1,yadd1,color); floodfill (topx,yadd2-

17、1,color); floodfill (xadd-1,yadd1,color); rectangle (topx-halfsize,yadd1-qtrsize,topx-0.75*halfsize,yadd1+qtrsize); floodfill (topx-halfsize+1,yadd1-qtrsize+1,color); rectangle (topx-qtrsize,yadd1-halfsize,topx+qtrsize,yadd1-0.25*halfsize); floodfill (topx-qtrsize+1,yadd1-halfsize+1,color); rectangl

18、e (topx+0.75*halfsize,yadd1-qtrsize,topx+halfsize,yadd1+qtrsize); floodfill (topx+0.75*halfsize+1,yadd1-qtrsize+1,color); rectangle (topx-qtrsize,yadd1+0.25*halfsize,topx+qtrsize,yadd2-halfsize); floodfill (topx-qtrsize+1,yadd1+0.25*halfsize+1,color); setcolor(14); line (topx,topy-1,xdel-1,yadd1); l

19、ine (xdel-1,yadd1,topx,yadd2+1); line (topx,yadd2+1,xadd+1,yadd1); line (xadd+1,yadd1,topx,topy-1); setfillstyle (SOLID_FILL,14); floodfill (topx,yadd1,color); void show_intro (int xs,int ys) char stemp20; setcolor (15); rectangle(xs-3,ys-3,xs+239,ys+115); line (xs-3,ys+26,xs+239,ys+26); line (xs-3,

20、ys+72,xs+239,ys+72); outtextxy(xs,ys,Level:); outtextxy(xs,ys+15,Score:); sprintf(stemp, -Roll -Downwards); stemp0=24; stemp7=25; outtextxy(xs,ys+30,Help:); setcolor(14); outtextxy(xs+40,ys+30,stemp); outtextxy(xs+40,ys+45,-Turn Right); outtextxy(xs+40,ys+60,Esc-Exit R-Restart); outtextxy(xs,ys+75,R

21、ussia Diamonds Ver 1.0); outtextxy(xs,ys+90,CopyRight By GZ clever boy); outtextxy(xs,ys+105,Email:lihongx2007); struct diamond *create_I() struct diamond *info; struct diamond *first; first=(struct diamond *)malloc(sizeof(struct diamond); info=(struct diamond *)malloc(sizeof(struct diamond); first-

22、next=info; info-next=first; first-x0=0; first-y0=0; first-x1=-1; first-y1=0; first-x2=1; first-y2=0; first-x3=2; first-y3=0; first-start_x=5; first-start_y=3; first-color=2;info-x0=0; info-y0=0; info-x1=0; info-y1=-1; info-x2=0; info-y2=1; info-x3=0; info-y3=2; info-start_x=5; info-start_y=1; info-c

23、olor=2;if(random(2)=0) return first; else return first-next; struct diamond *create_T() struct diamond *info; struct diamond *first; struct diamond *last; int i;info=(struct diamond *)malloc(sizeof(struct diamond); info-x0=0; info-y0=0; info-x1=-1; info-y1=0; info-x2=0; info-y2=-1; info-x3=1; info-y

24、3=0; info-start_x=5; info-start_y=3; info-color=4; first=info; last=info;info=(struct diamond *)malloc(sizeof(struct diamond); info-x0=0; info-y0=0; info-x1=0; info-y1=1; info-x2=0; info-y2=-1; info-x3=1; info-y3=0; info-start_x=5; info-start_y=2; info-color=4; last-next=info; last=info;info=(struct

25、 diamond *)malloc(sizeof(struct diamond); info-x0=0; info-y0=0; info-x1=-1; info-y1=0; info-x2=1; info-y2=0; info-x3=0; info-y3=1; info-start_x=5; info-start_y=2; info-color=4; last-next=info; last=info;info=(struct diamond *)malloc(sizeof(struct diamond); info-x0=0; info-y0=0; info-x1=0; info-y1=1;

26、 info-x2=0; info-y2=-1; info-x3=-1; info-y3=0; info-start_x=5; info-start_y=2; info-color=4; last-next=info; last=info; last-next=first;for (i=0;inext; return first; struct diamond *create_L() struct diamond *info; struct diamond *first; struct diamond *last; int i;info=(struct diamond *)malloc(size

27、of(struct diamond); info-x0=0; info-y0=0; info-x1=0; info-y1=1; info-x2=0; info-y2=-1; info-x3=1; info-y3=1; info-start_x=5; info-start_y=2; info-color=5; first=info; last=info;info=(struct diamond *)malloc(sizeof(struct diamond); info-x0=0; info-y0=0; info-x1=-1; info-y1=0; info-x2=1; info-y2=0; in

28、fo-x3=-1; info-y3=1; info-start_x=5; info-start_y=2; info-color=5; last-next=info; last=info;info=(struct diamond *)malloc(sizeof(struct diamond); info-x0=0; info-y0=0; info-x1=0; info-y1=1; info-x2=0; info-y2=-1; info-x3=-1; info-y3=-1; info-start_x=5; info-start_y=2; info-color=5; last-next=info; last=info;info=(struct diamond *)malloc(sizeof(struct diamond); info-x0=0; i

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

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