观看麻豆影视文化有限公司-国产 高清 在线-国产 日韩 欧美 亚洲-国产 日韩 欧美 综合-日日夜夜免费精品视频-日日夜夜噜

游戲代碼編程入門編寫(編程一個最簡單游戲代碼)

  • 生活
  • 2023-04-24 13:11

這篇作品重要為大師精細引見了C談話實行俄羅斯方塊小玩耍,具備確定的參考價格,感愛好的小搭檔們不妨參考一下

1.要先載入一個graphics.h的頭文獻來畫圖。

2.初始化窗口:initgraph(x,y);這是先創造一個窗口的因變量,以左上角為(0,0),向右為x軸,向下為y軸,個中x表白長x個單元,y表白寬y個單元。

3.封閉圖像窗口:closegraph();中斷時用來封閉用的。

4.按大肆鍵連接:getch();這個就和getchar();差不離,為了提防以運轉完就關了,如許能中斷一下,他的頭文獻是:conio.h。

5.畫線:line(x1,y1,x2,y2);在你創造的那么窗口里以(x1,y1)和(x2,y2)為兩個端點畫線。

6.畫矩形:rectangle(x1,y1,x2,y2);以(x1,y1)和(x2,y2)為對角畫一個矩形。

7.畫圓:circle(x,y,r);以(x,y)為圓點,r為半徑畫圓。

8.臉色:setcolor(x);用來樹立臉色的,個中x是你要樹立的臉色,不妨填這16種:黑BLACK、藍BLUE、綠GREEN、青CYAN、紅RED、紫MAGENTA、棕BROWN、淺灰LIGHTGRAY、暗灰DARKGRAY、亮藍LIGHTBLUE、亮綠LIGHTGREEN、亮青LIGHTCYAN、亮紅LIGHTRED、亮紫LIGHTMAGENTA、黃YELLOW、白WHITE;固然,你也不妨按照光的三原色來調本人愛好的臉色,本領是:setcolor(RGB(x,y,z));個中RGB辨別代辦紅綠藍,對應的x,y,z是你選的該臉色的幾何,范疇是[0,255]。

#include<stdio.h>

#include<windows.h>

#include<conio.h>

#include<time.h>

//玩耍窗口

#defineFrameX4//玩耍窗口左上角的X軸坐標

#defineFrameY4//玩耍窗口左上角的Y軸坐標

#defineFrame_height20//玩耍窗口的莫大

#defineFrame_width18//玩耍窗口的寬窄

//設置全部變量

inti,j,temp,temp1,temp2;//temp,temp1,temp2用來記取和變換方塊變量的值

inta[80][80]={0};//標志玩耍屏幕的圖案:2,1,0辨別表白該場所為玩耍邊框、方塊、無圖案;初始化為無圖案

intb[4];//標志4個”口”方塊:1表白有方塊,0表白有門兒塊

//證明俄羅斯方塊的構造體

structTetris

{

intx;//重心方塊的x軸坐標

inty;//重心方塊的y軸坐標

intflag;//標志方塊典型的序號

intnext;//下一個俄羅斯方塊典型的序號

intspeed;//俄羅斯方塊挪動的速率

intcount;//爆發俄羅斯方塊的個數

intscore;//玩耍的分數

intlevel;//玩耍的等第

};

//因變量原形證明

//光標移到指定場所

voidgotoxy(HANDLEhOut,intx,inty);

//創造玩耍窗口

voidmake_frame();

//隨機爆發方塊典型的序號

voidget_flag(structTetris*);

//創造俄羅斯方塊

voidmake_tetris(structTetris*);

//打字與印刷俄羅斯方塊

voidprint_tetris(HANDLEhOut,structTetris*);

//廢除俄羅斯方塊的陳跡

voidclear_tetris(HANDLEhOut,structTetris*);

//確定能否能挪動,歸來值為1,能挪動,要不,不動

intif_moveable(structTetris*);

//確定能否滿行,并簡略滿行的俄羅斯方塊

voiddel_full(HANDLEhOut,structTetris*);

//發端玩耍

voidstart_game();

voidmain()

{

//創造玩耍窗口

make_frame();

//發端玩耍

start_game();

}

/******光標移到指定場所**************************************************************/

voidgotoxy(HANDLEhOut,intx,inty)

{

COORDpos;

pos.X=x;//橫坐標

pos.Y=y;//橫坐標

SetConsoleCursorPosition(hOut,pos);

}

/******創造玩耍窗口******************************************************************/

voidmake_frame()

{

HANDLEhOut=GetStdHandle(STD_OUTPUT_HANDLE);//設置表露器句柄變量

gotoxy(hOut,FrameX+Frame_width-5,FrameY-2);//打字與印刷玩耍稱呼

printf(“俄羅斯方塊”);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+7);//打字與印刷采用菜單

printf(“**********下一個方塊:”);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+13);

printf(“**********”);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+17);

printf(“↑鍵:變體”);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+19);

printf(“空格:休憩玩耍”);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+15);

printf(“Esc:退出玩耍”);

gotoxy(hOut,FrameX,FrameY);//打字與印刷框角并記取該處已有圖案

printf(“╔”);

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY);

printf(“╗”);

gotoxy(hOut,FrameX,FrameY+Frame_height);

printf(“╚”);

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+Frame_height);

printf(“╝”);

a[FrameX][FrameY+Frame_height]=2;

a[FrameX+2*Frame_width-2][FrameY+Frame_height]=2;

for(i=2;i<2*Frame_width-2;i+=2)

{

gotoxy(hOut,FrameX+i,FrameY);

printf(“═”);//打字與印刷上橫框

}

for(i=2;i<2*Frame_width-2;i+=2)

{

gotoxy(hOut,FrameX+i,FrameY+Frame_height);

printf(“═”);//打字與印刷下橫框

a[FrameX+i][FrameY+Frame_height]=2;//記取下橫框有圖案

}

for(i=1;i<Frame_height;i++)

{

gotoxy(hOut,FrameX,FrameY+i);

printf(“║”);//打字與印刷左豎框

a[FrameX][FrameY+i]=2;//記取左豎框有圖案

}

for(i=1;i<Frame_height;i++)

{

gotoxy(hOut,FrameX+2*Frame_width-2,FrameY+i);

printf(“║”);//打字與印刷右豎框

a[FrameX+2*Frame_width-2][FrameY+i]=2;//記取右豎框有圖案

}

}

/******創造俄羅斯方塊********************************************************************/

voidmake_tetris(structTetris*tetris)

{

a[tetris->x][tetris->y]=b[0];//重心方塊場所的圖形勢態:1-有,0-無

switch(tetris->flag)//共6大類,19種典型

{

case1://田字方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case2://曲線方塊:—-

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y]=b[2];

a[tetris->x+4][tetris->y]=b[3];

break;

}

case3://曲線方塊:|

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y-2]=b[2];

a[tetris->x][tetris->y+1]=b[3];

break;

}

case4://T字方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y]=b[2];

a[tetris->x][tetris->y+1]=b[3];

break;

}

case5://T字順時針轉90度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y]=b[3];

break;

}

case6://T字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case7://T字順時針轉270度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case8://Z字方塊

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x+2][tetris->y+1]=b[3];

break;

}

case9://Z字順時針轉90度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y]=b[2];

a[tetris->x-2][tetris->y+1]=b[3];

break;

}

case10://Z字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x-2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case11://Z字順時針轉270度方塊

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case12://7字方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y-1]=b[3];

break;

}

case13://7字順時針轉90度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x-2][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case14://7字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y+1]=b[3];

break;

}

case15://7字順時針轉270度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case16://倒7字方塊

{

a[tetris->x][tetris->y+1]=b[1];

a[tetris->x][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y-1]=b[3];

break;

}

case17://倒7字順南針轉90度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x-2][tetris->y-1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

case18://倒7字順時針轉180度方塊

{

a[tetris->x][tetris->y-1]=b[1];

a[tetris->x][tetris->y+1]=b[2];

a[tetris->x-2][tetris->y+1]=b[3];

break;

}

case19://倒7字順時針轉270度方塊

{

a[tetris->x-2][tetris->y]=b[1];

a[tetris->x+2][tetris->y+1]=b[2];

a[tetris->x+2][tetris->y]=b[3];

break;

}

}

}

//******確定能否可動*************************************************************************/

intif_moveable(structTetris*tetris)

{

if(a[tetris->x][tetris->y]!=0)//當重心方塊場所上有圖案時,歸來值為0,即不行挪動

{

return0;

}

else

{

if(//當為田字方塊且除重心方塊場所外,其余”口”字方塊場所上無圖案時,歸來值為1,即可挪動

(tetris->flag==1&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x+2][tetris->y-1]==0&&a[tetris->x+2][tetris->y]==0))||

//或為曲線方塊且除重心方塊場所外,其余”口”字方塊場所上無圖案時,歸來值為1,即可挪動

(tetris->flag==2&&(a[tetris->x-2][tetris->y]==0&&

a[tetris->x+2][tetris->y]==0&&a[tetris->x+4][tetris->y]==0))||

(tetris->flag==3&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x][tetris->y-2]==0&&a[tetris->x][tetris->y+1]==0))||

(tetris->flag==4&&(a[tetris->x-2][tetris->y]==0&&

a[tetris->x+2][tetris->y]==0&&a[tetris->x][tetris->y+1]==0))||

(tetris->flag==5&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x][tetris->y+1]==0&&a[tetris->x-2][tetris->y]==0))||

(tetris->flag==6&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x-2][tetris->y]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==7&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x][tetris->y+1]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==8&&(a[tetris->x][tetris->y+1]==0&&

a[tetris->x-2][tetris->y]==0&&a[tetris->x+2][tetris->y+1]==0))||

(tetris->flag==9&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x-2][tetris->y]==0&&a[tetris->x-2][tetris->y+1]==0))||

(tetris->flag==10&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x-2][tetris->y-1]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==11&&(a[tetris->x][tetris->y+1]==0&&

a[tetris->x+2][tetris->y-1]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==12&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x][tetris->y+1]==0&&a[tetris->x-2][tetris->y-1]==0))||

(tetris->flag==13&&(a[tetris->x-2][tetris->y]==0&&

a[tetris->x-2][tetris->y+1]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==14&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x][tetris->y+1]==0&&a[tetris->x+2][tetris->y+1]==0))||

(tetris->flag==15&&(a[tetris->x-2][tetris->y]==0&&

a[tetris->x+2][tetris->y-1]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==16&&(a[tetris->x][tetris->y+1]==0&&

a[tetris->x][tetris->y-1]==0&&a[tetris->x+2][tetris->y-1]==0))||

(tetris->flag==17&&(a[tetris->x-2][tetris->y]==0&&

a[tetris->x-2][tetris->y-1]==0&&a[tetris->x+2][tetris->y]==0))||

(tetris->flag==18&&(a[tetris->x][tetris->y-1]==0&&

a[tetris->x][tetris->y+1]==0&&a[tetris->x-2][tetris->y+1]==0))||

(tetris->flag==19&&(a[tetris->x-2][tetris->y]==0&&

a[tetris->x+2][tetris->y+1]==0&&a[tetris->x+2][tetris->y]==0)))

{

return1;

}

}

return0;

}

/******隨機爆發俄羅斯方塊典型的序號**********************************************************/

voidget_flag(structTetris*tetris)

{

tetris->count++;//記取爆發方塊的個數

srand((unsigned)time(NULL));//初始化隨機數

if(tetris->count==1)

{

tetris->flag=rand()%19+1;//記取第一個方塊的序號

}

tetris->next=rand()%19+1;//記取下一個方塊的序號

}

/******打字與印刷俄羅斯方塊**********************************************************************/

voidprint_tetris(HANDLEhOut,structTetris*tetris)

{

for(i=0;i<4;i++)

{

b[i]=1;//數組b[4]的每個元素的值都為1

}

make_tetris(tetris);//創造俄羅斯方塊

for(i=tetris->x-2;i<=tetris->x+4;i+=2)

{

for(j=tetris->y-2;j<=tetris->y+1;j++)

{

if(a[i][j]==1&&j>FrameY)

{

gotoxy(hOut,i,j);

printf(“□”);//打字與印刷邊框內的方塊

}

}

}

//打字與印刷菜單消息

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+1);

printf(“level:%d”,tetris->level);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+3);

printf(“score:%d”,tetris->score);

gotoxy(hOut,FrameX+2*Frame_width+3,FrameY+5);

printf(“speed:%dms”,tetris->speed);

}

之上即是瓜分給大師的俄羅斯方塊源碼,蓄意對大師有扶助~

猜你喜歡

主站蜘蛛池模板: 亚洲欧美日韩另类在线 | 国产一区二区三区高清 | 久久久www免费人成看片 | 亚洲成人三级 | 成人免费视频一区二区三区 | 国内精品久久久久久久久久影视 | 国产精品手机视频一区二区 | 欧美人禽杂交狂配毛片 | 亚洲一区日韩一区欧美一区a | 99视频在线精品免费 | 亚洲视频一区二区在线观看 | 欧美精品久久久久久久久大尺度 | 欧美第一页草草影院浮力 | 国产一区二区播放 | 国产精品视频九九九 | 老司机一级片 | 高清欧美性xxxx成熟 | 色综合日韩| 国产一区二区三区影院 | 中文字幕曰韩一区二区不卡 | 一级毛片免费视频观看 | 香港全黄一级毛片在线播放 | 亚洲va中文字幕 | 一级欧美日韩 | 国产精品每日更新在线观看 | 久久亚洲在线 | 久9久9精品视频在线观看 | 欧美一级视频 | 国产无套视频在线观看香蕉 | 黄色三级理沦片 | 日本高清免费视频www | 日本一级特黄a大片在线 | 国产一区二区三区四区波多野结衣 | 欧美性色生活片天天看99 | 欧美在线一区二区三区 | 亚洲天堂久久精品成人 | 香港全黄一级毛片在线播放 | 99热精品在线观看 | 黄色大秀视频 | 久久国产视频网站 | a级毛片在线播放 |