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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

俄罗斯方块和贪吃蛇的C语言源程序.docx

1、俄罗斯方块和贪吃蛇的C语言源程序俄罗斯方块和贪吃蛇的C语言源程序刚刚在群里听某些人说发上来可以拿奖金,于是我就发了脸皮比较厚,大家见笑了虽然写的没有网上现成的那些好,但是这些100%是自己写的,因为是写着玩的,所以就没有优化,也没有用什么复杂的技术,但是这样的程序反而更容易看懂编译环境是古老的turboc2.0,喜欢dos编程的朋友可以拿来消遣一下。嘿嘿嘿嘿附件是源文件和编译好的文件俄罗斯方块-#include graphics.h#include stdio.h#include stdlib.h#include string.h#include bios.h#include time.h#i

2、nclude stdlib.h#include dos.h#define VK_ESC 0x11b#define VK_UP 0x4800#define VK_DOWN 0x5000#define VK_LEFT 0x4b00#define VK_RIGHT 0x4d00#define TIMER 0x1c#define SEC(N) N*18.8typedef box44;FILE *fp;int space2618;box bar12,bar21,bar34,bar42,bar52,bar64,bar74;float count;int nexttype,nextvalue;int ove

3、red;int score,higher;char scoretext50,highscore50;structint i;int j;box *t;int v; cur_bar;void SetScreen();void SetValue();void Draw();void SetBox();void DrawBack();void DrawBox();void CreateBar(int i,int j,box *type,int value);void SetTimer(void interrupt (*theProc)();void KillTimer();void interrup

4、t Proc();void interrupt (*oldtimer)();void OneStep();int IsFall();void CheckState();void ClearLine(int Line);void MoveLeft();void MoveRight();void ChangeBar();void ShowScore();void ShowNextWindow();void ReadHigh();void WriteHigh();int main()int key;count=0;overed=0;score=0;ReadHigh();randomize();old

5、timer=getvect(TIMER);SetBox();SetScreen();DrawBack();Draw();CreateBar(0,5,bar3,2);nexttype=random(7)+1;nextvalue=0;ShowNextWindow();SetTimer(Proc);setcolor(BLUE);outtextxy(520,60,YOUR SCORE);outtextxy(520,80,0);outtextxy(520,100,HIGH SCORE);outtextxy(520,120,highscore);while(1) if(countSEC(0.5) coun

6、t=0; OneStep(); if(bioskey(1) key=bioskey(0); if(key=VK_ESC) break; if(!overed) switch(key) case VK_LEFT: MoveLeft(); break; case VK_RIGHT: MoveRight(); break; case VK_UP: ChangeBar(); break; case VK_DOWN: OneStep(); CheckState(); break; else break; closegraph();KillTimer();if(scorehigher)higher=sco

7、re;WriteHigh();return 0;void SetScreen()int GraphDriver=DETECT;int GraphMode=VGAHI;initgraph(&GraphDriver,&GraphMode,);setbkcolor(LIGHTMAGENTA);void SetValue()int i,j;for(i=0;i24;i+) for(j=0;j16;j+) spacej=0;void Draw()int i,j;setfillstyle(SOLID_FILL,LIGHTBLUE);setcolor(BLACK);for(i=0;i24;i+) for(j=

8、0;j16;j+) if(spacej) bar(160+j*20,i*20,160+j*20+20,i*20+20); rectangle(160+j*20,i*20,160+j*20+20,i*20+20); void SetBox()int i,j,k;for(i=0;i2;i+) for(j=0;j4;j+) for(k=0;k4;k+) bar1jk=0;bar1001=1;bar1011=1;bar1021=1;bar1031=1;bar1120=1;bar1121=1;bar1122=1;bar1123=1;for(i=0;i1;i+) for(j=0;j4;j+) for(k=

9、0;k4;k+) bar2jk=0;bar2011=1;bar2012=1;bar2021=1;bar2022=1;for(i=0;i4;i+) for(j=0;j4;j+) for(k=0;k4;k+) bar3jk=0;bar3011=1;bar3020=1;bar3021=1;bar3031=1;bar3111=1;bar3120=1;bar3121=1;bar3122=1;bar3211=1;bar3221=1;bar3222=1;bar3231=1;bar3320=1;bar3321=1;bar3322=1;bar3331=1;for(i=0;i2;i+) for(j=0;j4;j+

10、) for(k=0;k4;k+) bar4jk=0;bar4012=1;bar4021=1;bar4022=1;bar4031=1;bar4121=1;bar4122=1;bar4132=1;bar4133=1;for(i=0;i2;i+) for(j=0;j4;j+) for(k=0;k4;k+) bar5jk=0;bar5011=1;bar5021=1;bar5022=1;bar5032=1;bar5131=1;bar5122=1;bar5123=1;bar5132=1;for(i=0;i4;i+) for(j=0;j4;j+) for(k=0;k4;k+) bar6jk=0;bar601

11、1=1;bar6012=1;bar6022=1;bar6032=1;bar6121=1;bar6122=1;bar6123=1;bar6131=1;bar6211=1;bar6221=1;bar6231=1;bar6232=1;bar6330=1;bar6331=1;bar6332=1;bar6322=1;for(i=0;i4;i+) for(j=0;j4;j+) for(k=0;k4;k+) bar7jk=0;bar7011=1;bar7012=1;bar7021=1;bar7031=1;bar7121=1;bar7131=1;bar7132=1;bar7133=1;bar7212=1;ba

12、r7222=1;bar7232=1;bar7231=1;bar7320=1;bar7321=1;bar7322=1;bar7332=1;void CreateBar(int i,int j,box *type,int value)while(bioskey(1)bioskey(0);cur_bar.i=i;cur_bar.j=j;cur_bar.t=type;cur_bar.v=value;DrawBox();void DrawBox()int i,j;setfillstyle(SOLID_FILL,LIGHTBLUE);setcolor(BLACK);for(i=0;i4;i+) for(j

13、=0;j4;j+) if( (cur_bar.t)cur_bar.vj) bar(160+(cur_bar.j*20)+j*20,(cur_bar.i*20)+i*20,160+(cur_bar.j*20)+j*20+20,(cur_bar.i*20)+i*20+20); rectangle (160+ (cur_bar.j*20) +j*20,(cur_bar.i*20) +i*20,160+ (cur_bar.j*20) + j*20+20,(cur_bar.i*20) +i*20+20); setfillstyle(SOLID_FILL,YELLOW);for(i=1;i4;i+) fo

14、r(j=0;j0) & (!(cur_bar.t)cur_bar.vi-1j) & (!spacecur_bar.i+i-1cur_bar.j+j) if(j+cur_bar.j15)setfillstyle(SOLID_FILL,LIGHTMAGENTA); bar(160+(cur_bar.j*20)+j*20,(cur_bar.i*20)+(i-1)*20,160+(cur_bar.j*20)+j*20+20,(cur_bar.i*20)+(i-1)*20+20); rectangle(160+(cur_bar.j*20)+j*20,(cur_bar.i*20)+(i-1)*20,160

15、+(cur_bar.j*20)+j*20+20,(cur_bar.i*20)+(i-1)*20+20); if(j+cur_bar.j15)setfillstyle(SOLID_FILL,YELLOW); i=0;for(j=0;j0) & (!spacecur_bar.i+i-1cur_bar.j+j) if(j+cur_bar.j15)setfillstyle(SOLID_FILL,LIGHTMAGENTA); bar(160+(cur_bar.j*20)+j*20,(cur_bar.i*20)+(i-1)*20,160+(cur_bar.j*20)+j*20+20,(cur_bar.i*

16、20)+(i-1)*20+20); rectangle(160+(cur_bar.j*20)+j*20,(cur_bar.i*20)+(i-1)*20,160+(cur_bar.j*20)+j*20+20,(cur_bar.i*20)+(i-1)*20+20); if(j+cur_bar.j15)setfillstyle(SOLID_FILL,YELLOW); void SetTimer(void interrupt (*theProc)()disable();setvect(TIMER,theProc);enable();void KillTimer()disable();setvect(T

17、IMER,oldtimer);enable();void interrupt Proc()count+;oldtimer();void OneStep()int i,j;cur_bar.i+;Draw();DrawBox();CheckState();if(IsFall() for(i=0;i4;i+) for(j=0;j4;j+) spacecur_bar.i+icur_bar.j+j=cur_bar.tcur_bar.vj | spacecur_bar.i+icur_bar.j+j; switch(nexttype) case 1: CreateBar(0,7,bar1,nextvalue

18、); break; case 2: CreateBar(0,7,bar2,nextvalue); break; case 3: CreateBar(0,7,bar3,nextvalue); break; case 4: CreateBar(0,7,bar4,nextvalue); break; case 5: CreateBar(0,7,bar5,nextvalue); break; case 6: CreateBar(0,7,bar6,nextvalue); break; case 7: CreateBar(0,7,bar7,nextvalue); break; nexttype=rando

19、m(7)+1; switch(nexttype) case 1: nextvalue=random(2); break; case 2: nextvalue=random(1); break; case 3: nextvalue=random(4); break; case 4: nextvalue=random(2); break; case 5: nextvalue=random(2); break; case 6: nextvalue=random(4); break; case 7: nextvalue=random(4); break; ShowNextWindow();int Is

20、Fall()int res=0;int i,j;for(i=0;i4;i+) for(j=0;j22) ) res=1; return res;void ClearLine(int Line)int i,j,col;i=0;col=0;while(1) if(countSEC(0.2) count=0; col=!col; if(col=1)setcolor(RED); else setcolor(GREEN); rectangle(160,Line*20,480,Line*20+20); i+; if(i6)break;for(i=Line;i0;i-) for(j=0;j16;j+) sp

21、acej=spacei-1j;DrawBack();Draw();DrawBox();score+=100;ShowScore();while(bioskey(1)bioskey(0);void CheckState()int i,j,ept;for(i=0;i=0;i-) ept=0; for(j=0;j16;j+) if(spacej=0)ept=1; if(!ept)ClearLine(i);void MoveLeft()int can=1;int i,j;for(i=0;i4;i+) for(j=0;j4;j+) if(cur_bar.tcur_bar.vj) if( (cur_bar

22、.j+j-10)|(spacecur_bar.i+icur_bar.j+j-1) )can=0; if(can) cur_bar.j-; DrawBox(); for(i=0;i4;i+) for(j=0;j4;j+) if(cur_bar.tcur_bar.vj) & !cur_bar.tcur_bar.vj+1) bar(160+(cur_bar.j*20)+j*20+20,(cur_bar.i*20)+i*20,160+(cur_bar.j*20)+j*20+40,(cur_bar.i*20)+i*20+20); rectangle(160+(cur_bar.j*20)+j*20+20,

23、(cur_bar.i*20)+i*20,160+(cur_bar.j*20)+j*20+40,(cur_bar.i*20)+i*20+20); if(IsFall() for(i=0;i4;i+) for(j=0;j4;j+) spacecur_bar.i+icur_bar.j+j=cur_bar.tcur_bar.vj | spacecur_bar.i+icur_bar.j+j; CheckState(); switch(nexttype) case 1: CreateBar(0,7,bar1,nextvalue); break; case 2: CreateBar(0,7,bar2,nex

24、tvalue); break; case 3: CreateBar(0,7,bar3,nextvalue); break; case 4: CreateBar(0,7,bar4,nextvalue); break; case 5: CreateBar(0,7,bar5,nextvalue); break; case 6: CreateBar(0,7,bar6,nextvalue); break; case 7: CreateBar(0,7,bar7,nextvalue); break; nexttype=random(7)+1; switch(nexttype) case 1: nextval

25、ue=random(2); break; case 2: nextvalue=random(1); break; case 3: nextvalue=random(4); break; case 4: nextvalue=random(2); break; case 5: nextvalue=random(2); break; case 6: nextvalue=random(4); break; case 7: nextvalue=random(4); break; ShowNextWindow();void MoveRight()int can=1;int i,j;for(i=0;i4;i+) for(j=0;j15)|(spacecur_bar.i+icur_bar.j+j+1) )ca

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2