爱问知识人 爱问教育 医院库

用c语言实现游戏菜单

首页

用c语言实现游戏菜单


        

提交回答

全部答案

    2006-06-20 22:19:28
  •   #include#include#include#definemDRAW5#definemLINE6#definemADOWN7#definemGEN8#definemLEFT75#definemRIGHT77#definemSPACE57#definemDOWN80#definemESC1#defineTIMEINT2#defineMAXX9#defineMAXY30#defineBACKCOLORBLACK#defineWINX50#defineWINY470#defineGAP6#defineAREAX(WINX+GAP)#defineAREAY(WINY-GAP)#defineBOXW15intoldarea[MAXY+1][MAXX];intarea[MAXY+1][MAXX];intactW,actH,actX,actY;intcurX,curY,curColor,curW,curH;intnewX,newY,newColor,newW,newH;intactive;intbox[4][4];intFORCOLOR;intMESSAGE;intBOX[7][4][4]={{{1,1,1,1},{0,0,0,0},{0,0,0,0},{0,0,0,0}},{{1,1,1,0},{1,0,0,0},{0,0,0,0},{0,0,0,0}},{{1,1,1,0},{0,0,1,0},{0,0,0,0},{0,0,0,0}},{{1,1,1,0},{0,1,0,0},{0,0,0,0},{0,0,0,0}},{{1,1,0,0},{0,1,1,0},{0,0,0,0},{0,0,0,0}},{{0,1,1,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}},{{1,1,0,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}}};voidinit();voiddraw();intgenBox();intgetKey();voidlineFull();intmoveLeft();intmoveRight();intmoveDown();introtate();intgetW();intgetH();voidclearOldBox();voidputNewBox();intcollisionRotate(intbox[][4]);voidgetMessage();voiddispatchMessage();inttimeCome();voidfallDown();intgameOver();main(){inti;init();do{getMessage();dispatchMessage();}while(!gameOver());getch();closegraph();}voidgetMessage(){if(MESSAGE)return;if(timeCome()){MESSAGE=mADOWN;return;}if(bioskey(1)){MESSAGE=bioskey(0)>>8;return;}}voiddispatchMessage(){switch(MESSAGE){ ();break;c ();break;c ();break;c ();break; ();break; ();break; ();break; ();break; ();exit(0); }}voidfallDown(){while(active){moveDown();draw();}MESSAGE=mLINE;}inttimeCome(){staticlongtm,old;tm=biostime(0,tm);if(tm-old=MAXX)curX=MAXX-1-curW;curY=MAXY-1-curH;newX=curX;newY=curY;actX=curX;actY=curY;actW=newW=curW;actH=newH=curH;active=1;if(collision(box))return0;putNewBox();draw();MESSAGE=0;return1;}voidlineFull(){introw,col,rowEnd,full,i,j;rowEnd=newY+newH;if(rowEnd>=MAXY-1)rowEnd=MAXY-2;for(row=newY;rowcurH?actW=curX+actH-newX;actX=newX;actY=newY;curX=newX;curY=newY;curW=newW;curH=newH;MESSAGE=mDRAW;return1;}intgetW(){inti,j;for(i=3;i>0;i--)for(j=0;j0;j--)for(i=0;i=MAXX)return1;if(newY=MAXX)newX=MAXX-1-newW;if(newY+newH>=MAXY)newY=MAXY-1-newH;if(collision(cbox))return1;for(i=0;iMAXY-3))return1;elsereturn0;}。
      

    1***

    2006-06-20 22:19:28

类似问题

换一换
  • 学习帮助 相关知识

  • 教育培训
  • 教育考试

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):