计算机课程设计 - 俄罗斯方块 - 图文(6)

2019-03-28 08:56

} void initbt5(int bt_color) /*初始化 \ # \ # \{ /* # ### # # */ int i; /* # ## */ for(i=0;i<3;i++) { bt[7].bktp[i][2]=1; bt[8].bktp[2][i+1]=1; bt[9].bktp[i][1]=1; bt[10].bktp[1][i+1]=1; } bt[7].bktp[0][1]=1; bt[8].bktp[1][3]=1; bt[9].bktp[2][2]=1; bt[10].bktp[2][1]=1; bt[7].color=bt_color; bt[8].color=bt_color; bt[9].color=bt_color; bt[10].color=bt_color; return; } void initbt6(int bt_color) /*初始化 \ # \ \ ## \ ### \{ /* # ### # # */ int i; /* ## # */ for(i=0;i<3;i++) { bt[11].bktp[i][2]=1; bt[12].bktp[2][i]=1; bt[13].bktp[i][1]=1; bt[14].bktp[1][i]=1; } bt[11].bktp[2][1]=1; bt[12].bktp[1][0]=1; bt[13].bktp[0][2]=1; bt[14].bktp[2][2]=1; bt[11].color=bt_color; bt[12].color=bt_color; bt[13].color=bt_color; bt[14].color=bt_color; return; } void initbt7(int bt_color) { int i;

26

for(i=0;i<3;i++) { /*初始化 \ # \ # \ ### \ # \ bt[15].bktp[2][i+1]=1; /* ### ## # ## */ bt[16].bktp[i][2]=1; /* # # */ bt[17].bktp[1][i+1]=1; bt[18].bktp[i][2]=1; } bt[15].bktp[1][2]=1; bt[16].bktp[1][3]=1; bt[17].bktp[2][2]=1; bt[18].bktp[1][1]=1; bt[15].color=bt_color; bt[16].color=bt_color; bt[17].color=bt_color; bt[18].color=bt_color; return; } int randompre(void) /*随机产生一个方块形状到预览区,并记录下方块形状的下标*/ { int btnum; srand(time(NULL)); btnum=rand(); pre=bt[btnum]; return btnum; } void pretozxp(int btnum) { pretotemp(btnum); temptozxp(); return; } void pretotemp(int btnum) /*将预览区的方块信息传给\其中的\记录方块的位置*/ { int i,j; for(i=0;i<4;i++) { for(j=0;j<4;j++) { tempbt.bp[i][j]=bt[btnum].bktp[i][j]; } } tempbt.color=bt[btnum].color; tempbt.y=0;

27

tempbt.x=3; } void temptozxp(void) /*将\中的信息显示到游戏窗口*/ { int i,j; for(i=tempbt.y;i

28

for(j=0;j<4;j++) { if(pre.bktp[i][j]) hfk(441,71,i,j,pre.color); } } return; } void hfk(int x0,int y0,int i,int j,int color) /*画一个color颜色的方块*/ { setcolor(color); setfillstyle(1,color); bar(j*20+x0,i*20+y0,j*20+x0+18,i*20+y0+18); return; } void refgmglp(void) { char gstr[20],lstr[20],pstr[20]; setfillstyle(1,BKCOLOR1); bar(436,200,600,450); sprintf(gstr,\ sprintf(lstr,\ sprintf(pstr,\ setcolor(GLP_COLOR); outtextxy(436,200,gstr); outtextxy(436,300,lstr); outtextxy(436,400,pstr); return; } int judgedown(int btnum) { int j; switch(btnum) { case 0: case 8: case 9: case 11: case 12: case 15: /*第0,8,9,11,12,15方块形状只需判断tempbt的第三行为1的下方 对应的游戏窗口位置是否为1 */ if(20==tempbt.y) /*以及tempbt的第三行是否到了最底行*/ return 1; for(j=0;j<4;j++)

29

if(tempbt.bp[2][j]&&zxp[tempbt.y+3][tempbt.x+j]) return 1; break; case 1: case 19: if(19==tempbt.y) /*方法同上*/ return 1; for(j=1;j<3;j++) if(tempbt.bp[3][j]&&zxp[tempbt.y+4][tempbt.x+j]) return 1; if(tempbt.bp[0][0]&&zxp[tempbt.y+1][tempbt.x]||tempbt.bp[0][3]&& zxp[tempbt.y+1][tempbt.x+3]) return 1; break; case 2: /*方法同上*/ if(20==tempbt.y) return 1; for(j=0;j<4;j++) if(zxp[tempbt.y+3][tempbt.x+j]) return 1; break; case 3: case 10: if(20==tempbt.y) return 1; if(zxp[tempbt.y+3][tempbt.x+1]||zxp[tempbt.y+2][tempbt.x+2]||tempbt.bp[1][3] &&zxp[tempbt.y+2][tempbt.x+3]) return 1; break; case 4: case 6: if(20==tempbt.y||tempbt.bp[1][0]&&zxp[tempbt.y+2][tempbt.x]||tempbt.bp[1][3] &&zxp[tempbt.y+2][tempbt.x+3]) return 1; for(j=1;j<3;j++) if(zxp[tempbt.y+3][tempbt.x+j]) return 1; break; case 5: case 14: case 18: if(20==tempbt.y) return 1; for(j=0;j<2;j++)

30


计算机课程设计 - 俄罗斯方块 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:半导体激光器的原理及应用论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: