
文章插圖
大家好,小跳來為大家解答以上的問題 。俄羅斯方塊C語言代碼,俄羅斯方塊c語言代碼這個很多人還不知道,現在讓我們一起來看看吧!
1、俄羅斯方塊C源代碼#include #include
2、游戲等級、得分和游戲速度int flag,next;//當前要操作的方塊類型序號,下一個方塊類型序號void gtxy(int m, int n);//以下聲明要用到的自編函數void gflag( );//獲得下一方塊序號void csh( );//初始化界面void start( );//開始部分void prfk ( );//打印方塊void clfk( );//清除方塊void mkfk( );//制作方塊void keyD( );//按鍵操作intifmov( );//判斷方塊能否移動或變體void clHA( );//清除滿行的方塊void clNEXT( );//清除邊框外的NEXT方塊int main( ){ csh( );while(1){start( );//開始部分while(1){ prfk( );Sleep(speed);//延時clfk( );Tb=x;Tc=flag;//臨存當前x坐標和序號,以備撤銷操作keyD( );y++;//方塊向下移動if (ifmov( )==0) { y--; prfk( ); dlHA( ); break;} //不可動放下,刪行,跨出循環}for(i=y-2;i
4、19種小類型 { case 1: { a[x][y-1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; }//田字方塊case 2: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x+4][y]=b[3]; break; }//直線方塊:----case 3: { a[x][y-1]=b[1]; a[x][y-2]=b[2]; a[x][y+1]=b[3]; break; }//直線方塊: |case 4: { a[x-2][y]=b[1]; a[x+2][y]=b[2]; a[x][y+1]=b[3]; break; }//T字方塊case 5: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y]=b[3]; break; }//T字順時針轉90度case 6: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x+2][y]=b[3]; break; }//T字順轉180度case 7: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y]=b[3]; break; }//T字順轉270度case 8: { a[x][y+1]=b[1]; a[x-2][y]=b[2]; a[x+2][y+1]=b[3]; break; } //Z字方塊case 9: { a[x][y-1]=b[1]; a[x-2][y]=b[2]; a[x-2][y+1]=b[3]; break; }//Z字順轉90度case 10: { a[x][y-1]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; }//Z字順轉180度case 11: { a[x][y+1]=b[1]; a[x+2][y-1]=b[2]; a[x+2][ y]=b[3]; break; } //Z字順轉270度case 12: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y-1]=b[3]; break; }//7字方塊case 13: {a[x-2][y]=b[1]; a[x+2][y-1]=b[2]; a[x+2][y]=b[3]; break; }//7字順轉90度case 14: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x+2][y+1]=b[3]; break; }//7字順轉180度case 15: { a[x-2][y]=b[1]; a[x-2][y+1]=b[2]; a[x+2][y]=b[3]; break; }//7字順轉270度case 16: { a[x][y+1]=b[1]; a[x][y-1]=b[2]; a[x+2][y-1]=b[3]; break; }//倒7字方塊 case 17: { a[x-2][y]=b[1]; a[x+2][y+1]=b[2]; a[x+2][y]=b[3]; break; }//倒7字順轉90度 case 18: { a[x][y-1]=b[1]; a[x][y+1]=b[2]; a[x-2][y+1]=b[3]; break; }//倒7字順轉180度case 19: { a[x-2][y]=b[1]; a[x-2][y-1]=b[2]; a[x+2][y]=b[3]; break; }//倒7字順轉270度 }}void keyD( )//按鍵操作{ if (kbhit( )){ int key;key=getch();if (key==224){ key=getch();if (key==75) { x-=2; }//按下左方向鍵,中心橫坐標減2if (key==77) { x+=2; }//按下右方向鍵 , 中心橫坐標加2if (key==72)//按下向上方向鍵,方塊變體{ if (flag>=2 && flag<=3 ) { flag++; flag%=2; flag+=2; }if ( flag>=4 && flag<=7 ) { flag++; flag%=4; flag+=4; }if (flag>=8 && flag<=11 ) { flag++; flag%=4; flag+=8; }if (flag>=12 && flag<=15 ) { flag++; flag%=4; flag+=12; }if ( flag>=16 && flag<=19 ) { flag++; flag%=4; flag+=16; } }}if (key==32)//按空格鍵 。
5、暫停{ prfk( ); while(1) { if (getch( )==32) { clfk( );break;} } }//再按空格鍵,繼續游戲if (ifmov( )==0) { x=Tb; flag=Tc; }//如果不可動,撤銷上面操作else { prfk( ); Sleep(speed); clfk( ); Tb=x;Tc=flag;}//如果可動 。
6、執行操作}}int ifmov( )//判斷能否移動{ if (a[x][y]!=0) { return 0; }//方塊中心處有圖案返回0 , 不可移動 else{ if ( (flag==1 && ( a[x][ y-1]==0 && a[x+2][y-1]==0 && a[x+2][y]==0 ) ) ||(flag==2 && ( a[x-2][y]==0 && a[x+2][y]==0 && a[x+4][y]==0 ) ) ||(flag==3 && ( a[x][y-1]==0 && a[x][y-2]==0 && a[x][y+1]==0 ) ) ||(flag==4 && ( a[x-2][y]==0 && a[x+2][y]==0 && a[x][y+1]==0 ) ) ||(flag==5 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x-2][y]==0 ) ) ||(flag==6 && ( a[x][ y-1]==0 && a[x-2][y]==0 && a[x+2][y]==0 ) ) ||(flag==7 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x+2][y]==0 ) ) ||(flag==8 && ( a[x][y+1]==0 && a[x-2][y]==0 && a[x+2][y+1]==0 ) ) ||(flag==9 && ( a[x][y-1]==0 && a[x-2][y]==0 && a[x-2][y+1]==0 ) ) ||(flag==10 && ( a[x][y-1]==0 && a[x-2][y-1]==0 && a[x+2][y]==0 ) ) ||(flag==11 && ( a[x][y+1]==0 && a[x+2][y-1]==0 && a[x+2][y]==0 ) ) ||(flag==12 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x-2][y-1]==0 ) ) ||( flag==13 && ( a[x-2][y]==0 && a[x+2][y-1]==0 && a[x+2][y]==0 ) ) ||( flag==14 && ( a[x][y-1]==0 && a[x][y+1]==0 && a[x+2][y+1]==0 ) ) ||(flag==15 && ( a[x-2][y]==0 && a[x-2][y+1]==0 && a[x+2][y]==0 ) ) ||(flag==16 && ( a[x][y+1]==0 && a[x][y-1]==0 && a[x+2][y-1]==0 ) ) ||( flag==17 && ( a[x-2][y]==0 && a[x+2][y+1]==0 && a[x+2][y]==0 ) ) ||(flag==18 && ( a[x][y-1]==0 &&a[x][y+1]==0 && a[x-2][y+1]==0 ) ) ||(flag==19 && ( a[x-2][y]==0 && a[x-2][y-1]==0&& a[x+2][y]==0 ) ) ) { return 1; }}return 0;//其它情況返回0}void clNEXT( )//清除框外的NEXT方塊{ flag = next;x=ZL+WID+6;y=ZL+10;clfk( ); }void clHA( )//清除滿行的方塊{ int k, Hang=0;//k是某行方塊個數, Hang是刪除的方塊行數for(j=ZL+HEI-1;j>=ZL+1;j--)//當某行有WID/2-2個方塊時 , 則為滿行{ k=0; for(i=ZL+2;i
【俄羅斯方塊c語言代碼 俄羅斯方塊C語言代碼】本文到此分享完畢,希望對大家有所幫助 。
- 判斷閏年c語言 判斷閏年c語言函數的方法
- 梅花、黑桃、紅心和方塊的 兩人跑的快有些什么牌
- 巴西官方語言
- 國際奧委會法定官方語言
- 馬來語在線翻譯 馬來語言翻譯
- c4是什么意思網絡語言
- qq俄羅斯方塊加速器
- 畬族主要分布在什么地方 畬族講什么語言
- 享受春雨在語言方面有什么特點 用簡潔的語言概括春雨的特點
- 機器語言是由什么組成 機器語言代表語言有哪些
