欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年打砖块程序 3.pdf

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

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

    2022年打砖块程序 3.pdf

    打砖块程序作者:贾胜华更新时间: 2005-05-12 刚编的一个打砖块程序,有雏形了!这里公布原代码,希望大家一起改进。请编译前在主目录下建立一个文本文件(xia.txt)内容为: 0 0 0 0 0 哈哈#include #include #include #include union REGS regs; unsigned int zhuan5; int Msinit(); void Setmouse(int left,int right,int top,int buttom); int Msread(int *xp,int *yp,int *bup); void Draw(int x,int y,int sizex,int sizey); main() int mode=VGAHI,driver=VGA; unsigned int l; int i,gi,gj,j,flag=1;/*i,j是循环变量 ,flag是标记变量 ,-1: 向 x 负半轴移动 ,+1: 向 x 正半轴名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - double qx,qy,k,b=0.0,speech=0.4,x,y; double r=2.0,bx=60.0,byy=270.0; double pianx=100.0,piany=100.0,tx=20.0,ty=10.0,jx=2.0,jy=2.0; int mx=0,my=0,mb,sum;/*sum纪录砖块的数目 */ FILE * p; if(p = fopen(xia.txt, r) = NULL) printf(The file cannot open!n); exit(1); initgraph(&driver,&mode,tcBGI); Msinit(); Setmouse(int)(pianx+1+bx/2),(int)(tx+jx)*8+pianx-1-bx/2),(int)byy+piany,(int)byy+pstar:cleardevice();/*程序重载的介入点 */ sum=0; qx=100.0+pianx-10;qy=180.0+pianx-10;k=0.33; setcolor(7); rectangle(int)(pianx-2),(int)(piany-2),(int)(tx+jx)*8+2+pianx),302+piany); setcolor(1); rectangle(int)(pianx-1),(int)(piany-1),(int)(tx+jx)*8+1+pianx),301+piany); /* 读取盘面情况 */ for(i=0;i5;i+) fscanf(p,%x ,&zhuani); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - /*画砖块 */ for(i=0;i5;i+) l=1; for(j=0;j16;j+) if(zhuani&l)=0) Draw(int)(jx+tx)*(16*i+j)%8)+pianx+jx),(int)(jy+ty)*(int)(16*i+j)/8)+piany(int)tx,(int)ty); sum+=1; l=l*2; for(;) setfillstyle(1, 0); bar(mx-bx/2,my,mx+bx/2,my+5); Msread(&mx, &my, &mb); Draw(mx-bx/2,my,bx,5); setcolor(0); circle(qx,qy,r); /*判断求是否反弹 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - if(qx-r=(tx+jx)*8+pianx-1) flag=-flag;k=-k; if(qy-r=piany+1) k=-k; for(gi=0;gi5;gi+) l=1; for(gj=0;gj=y-ty/2 & qy=y+ty/2 &(pow(qx+r-x+tx/2,2)1 | pow(qx-r-x-tx/2,2)=x-tx/2 & qx=x+tx/2 &(pow(qy+r-y+ty/2,2)1 | pow(qy-r-y-ty/2,2)1) k=-k; zhuangi=zhuangi|l; sum-=1; if(sum=0) printf(Win!n);getch();goto star; setfillstyle(1, 0); bar(jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty) *j+piany+jy+ty); else /*角判断 */ if(pow(qx-x+tx/2,2)+pow(qy-y+ty/2,2)=r*r | pow(qx-x-tx/2,2)+pow(qy-y+ty/2,2)=pow(qx-x+tx/2,2)+pow(qy-y-ty/2,2)=r*r | pow(qx-x-tx/2,2)+pow(qy-y-ty/2,2)=r*r) flag=-flag; zhuangi=zhuangi|l; sum-=1; if(sum=0) printf(Win!n);getch();goto star; setfillstyle(1, 0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - bar(jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty) *j+piany+jy+ty); l=l*2; /*棍棒的反弹 */ if(qx=mx-bx/2 & pow(qy+r-my,2)my+0.5) printf(DEAD!);Setmouse(0,0,640,480);getch();exit(1); b=qy-qx*k; if(flag=1) qx=qx+speech/pow(1.0+k*k,0.5); if(flag=-1) qx=qx-speech/pow(1.0+k*k,0.5); qy=qx*k+b;/*计算球心坐标 */ setcolor(14); circle(int)qx,(int)qy,r); delay(1); if(mb=1) Setmouse(0,0,640,480);exit(1); /* 这个函数用于实现鼠标的初始化*/ int Msinit() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - int recored; regs.x.ax=0; int86 (0 x33, & regs, & regs); recored=regs.x.ax; if(recored=0) printf(Mouse not foundd or Mouse driver not installed.n); return 0; else return recored; /* 下面的函数用于实现设置鼠标的移动范围*/ void Setmouse(int left,int right,int top,int buttom) regs.x.ax=7; regs.x.cx=left; regs.x.dx=right; int86(0 x33,& regs,& regs); regs.x.ax=8; regs.x.cx=top; regs.x.dx=buttom; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - int86(0 x33,& regs,& regs); /* 下面这个函数用于实现鼠标的读取*/ int Msread(int *xp,int *yp,int *bup) int xnew,ynew,ch; if(kbhit() return getch(); regs.x.ax=3; int86(0 x33,& regs,& regs); xnew=regs.x.cx; ynew=regs.x.dx; *bup=regs.x.bx; *xp=xnew; *yp=ynew; return -1; /* 下面这个子程序是完成描绘一个按钮*/ void Draw(int x,int y,int sizex,int sizey)/* x, y为左上角坐标 sizex,sizey为长和宽 */ int sizx=sizex-1; int sizy=sizey-1; setcolor(15);/*这里最好用白色 */ line(x,y,x+sizx-1,y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - line(x,y+1,x+sizx-2,y+1); line(x,y,x,y+sizy-1); line(x+1,y,x+1,y+sizy-2); setcolor(8);/*这里最好用深灰色 */ line(x+1,y+sizy,x+sizx,y+sizy); line(x+2,y+sizy-1,x+sizx,y+sizy-1); line(x+sizx-1,y+1,x+sizx-1,y+sizy); line(x+sizx,y+2,x+sizx,y+sizy); setcolor(7);/*这里最好用灰色 */ putpixel(x,y+sizy,3); putpixel(x+1,y+sizy-1,3); putpixel(x+sizx,y,3); putpixel(x+sizx-1,y+1,3); setfillstyle(1, 7);/*这里最好用灰色 , 设置填充模式 */ bar(x+2,y+2,x+sizx-2,y+sizy-2); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

    注意事项

    本文(2022年打砖块程序 3.pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开