cao死我好湿好紧好爽动态视屏|精选久久久久久久久久|中文无码精品一区二区三区四季|AAA国语精品刺激对白视频|

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

c++游戲編程代碼大全(c++游戲代碼簡單)

軟件開放2年前 (2023-03-13)1157

本篇文章給大家談?wù)刢++游戲編程代碼大全,以及c++游戲代碼簡單對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

關(guān)于用C語言編寫的小游戲的游戲代碼,如黑白棋貪吃蛇等

我這兒有c語言的自寫俄羅斯方塊,請指教:#include

#include

#include

#include

#include

#include

#include

#define ESC 0x011b

#define UP 0x4800

#define DOWN 0x5000

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define SPACE 0x3920

#define Y 0x1579

#define N 0x316e

#define clearkbd(); while(bioskey(1)) bioskey(0); /*清空鍵盤緩沖隊(duì)列*/

void update();

void messagebox();

void process();

void initremove();

void initinfo();

void initbox();

void initposition();

void next_shape();

typedef struct shape /*形狀單一狀態(tài)的記錄*/

{ int attr;

int co[8];

}shape;

typedef struct RE_AB /*相對,絕對坐標(biāo)記錄*/

{ int Rx,Ry;

int x1,x2,y1,y2;

}RE_AB;

RE_AB RA;

shape p[19]={ { RED,0,1,1,0,1,1,2,1 }, /*數(shù)組中保證y最大的在最后,以便initposition使用*/

{ RED,0,1,1,0,1,1,1,2 },

{ RED,0,0,1,0,2,0,1,1 },

{ RED,0,0,0,1,1,1,0,2 },

{ GREEN,0,0,1,0,2,0,3,0 },

{ GREEN,0,0,0,1,0,2,0,3 },

{ CYAN,0,0,0,1,1,0,1,1 },

{ BROWN,0,0,1,0,1,1,2,1 },

{ BROWN,1,0,0,1,1,1,0,2 },

{ BLUE,1,0,2,0,1,1,0,1 },

{ BLUE,0,0,0,1,1,1,1,2 },

{ MAGENTA,0,0,0,1,0,2,1,2 },

{ MAGENTA,2,0,0,1,1,1,2,1},

{ MAGENTA,0,0,1,0,1,1,1,2 },

{ MAGENTA,0,0,0,1,1,0,2,0 },

{ YELLOW,0,2,1,0,1,1,1,2 },

{ YELLOW,0,0,1,0,2,0,2,1 },

{ YELLOW,1,0,0,0,0,1,0,2},

{ YELLOW,0,0,0,1,1,1,2,1 },

};

int nback,nleft,nright,r_f[12][22],rs1,rs2,xcors,xcorb,ycors,ycorb;

/*檢查方快有沒有左,右,下接觸,游戲區(qū)內(nèi)所有格子有無顏色記錄數(shù)組,rs1形狀記錄,rs2為提示框用,記錄小格子在游戲區(qū)中的位置,按鍵存儲*/

void interrupt (*oldint)(); /*系統(tǒng)定時中斷*/

int count_down=0,count_other=0; /*中斷記時*/

void interrupt newint() /*設(shè)置新的中斷程序*/

{ count_down++;

count_other++;

oldint();

}

void intenable() /*設(shè)置中斷向量表,啟動新的中斷程序*/

{ oldint=getvect(0x1c);

disable();

setvect(0x1c,newint);

enable();

}

void intrestore() /*恢復(fù)中斷向量*/

{ disable();

setvect(0x1c,oldint);

enable();

}

void HZ12(int x0,int y0,int w,int color,char *s) /*根據(jù)字模,在dos下顯示漢字*/

/*橫坐標(biāo),縱坐標(biāo),字間隔,漢字顏色,漢字字符串*/

{ FILE *fp;

register char buffer[24];

register char str[2];

unsigned long fpos;/*fpos為最終偏移動量*/

register int i,j,k;

fp=fopen(hzk12,r);/*打開12*12漢字苦*/

while(*s)/*一直到字符串結(jié)束為止*/

{

if(*s0)/*漢字輸出*/

{ str[0]=(*s)-0xa0;

str[1]=*(s+1)-0xa0;

fpos=((str[0]-1)*94+(str[1]-1))*24L;/*計(jì)算漢字在hzk12的偏移量*/

fseek(fp,fpos,SEEK_SET);/*指針移動到當(dāng)前位置*/

fread(buffer,24,1,fp);/*讀取一個漢字到數(shù)組中*/

for(i=0;i12;i++)/*12行*/

for(j=0;j2;j++)/*兩個字節(jié)*/

for(k=0;k8;k++)/*8位*/

if (((buffer[i*2+j](7-k))0x1)!=NULL)/*是一就畫點(diǎn)*/

putpixel(x0+8*j+k,y0+i,color);

s+=2;/*一個漢字占兩個字節(jié),現(xiàn)在將指針移動兩個字節(jié)*/

x0+=w;/*顯示坐標(biāo)也按照間隔移動*/

}

else/*顯示非漢字字符*/

{ settextstyle(0,0,1);

setcolor(color);

str[0]=*s;str[1]=0;

outtextxy(x0,y0+3,str);/*顯示單個字符*/

x0+=w-7;/*顯示單個字符后的x坐標(biāo)變化*/

s++;/*指針移動到下一個字節(jié)*/

}

}

fclose(fp);

}

void translation() /*把相對坐標(biāo)解釋為絕對坐標(biāo)*/

{ if(RA.Rx==1)

{ RA.x1=1; RA.x2=16; }

else

{ RA.x1=16*(RA.Rx-1); RA.x2=16*RA.Rx; }

if(RA.Ry==1)

{ RA.y1=1; RA.y2=16; }

else

{ RA.y1=16*(RA.Ry-1); RA.y2=16*RA.Ry; }

}

int check_b() /*檢查是否到達(dá)低部*/

{ int x,y,i,zf=0; /*zf為是否有顏色填充記錄*/

for(i=0;i7;i++,i++)

{ x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y=6)

zf+=r_f[x-15][y-6+1];

}

if(zf==0)

return 1;

else

return 0;

}

int finish()

{ int tfull=0,i; /*判斷頂層空間是否有填充*/

for(i=1;i11;i++)

tfull+=r_f[i][1];

if(tfull!=0)

return 1; /*告訴judge()可以結(jié)束了*/

}

int check_l() /*檢查形狀是否與左接觸*/

{ int x,y,i,zf=0;

for(i=0;i7;i++,i++)

{ x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y6)

zf+=r_f[x-15-1][y-6];

if(y=6x==16)

zf+=1;

}

if(zf==0)

return 1;

else

return 0;

}

int check_r() /*檢查形狀是否與右接觸*/

{ /*zf為是否有顏色填充記錄*/

int x,y,i,zf=0; /*zf為是否有顏色填充記錄*/

for(i=0;i7;i++,i++)

{

x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y6)

zf+=r_f[x-15+1][y-6];

if(y=6x==25)

zf+=1;

}

if(zf==0)

return 1;

else

return 0;

}

void check_touch()

{ nback=check_b();

nleft=check_l();

nright=check_r();

}

void draw(int cb) /*畫形狀,cb=1以填充色畫形狀,cb=2以背景色畫形狀,cb=3以白色畫形狀*/

{ int i,recordx=RA.Rx,recordy=RA.Ry;

for(i=0;i7;i++,i++)

{ RA.Rx+=p[rs1].co[i];

RA.Ry+=p[rs1].co[i+1];

if(RA.Ry=6)

{ RA.Rx=recordx;

RA.Ry=recordy;

continue;

}

translation();

if(cb==1)

setfillstyle(1,p[rs1].attr);

else

if(cb==2)

setfillstyle(1,BLACK);

else

if(cb==3)

{ setfillstyle(1,WHITE);

r_f[RA.Rx-15][RA.Ry-6]=1; /*置對應(yīng)數(shù)組標(biāo)記元素*/

}

bar(RA.x1+1,RA.y1+1,RA.x2-1,RA.y2-1);

RA.Rx=recordx;

RA.Ry=recordy;

}

}

void mov(int key) /*向下,左,右移動方塊*/

{ draw(2);

if(key==LEFTnleft)

RA.Rx--;

else

if(key==RIGHTnright)

RA.Rx++;

else

RA.Ry++;

nback=check_b();

if(nback) /*判斷形狀有沒有到達(dá)底部,有就將其顏色變?yōu)榘咨?/

draw(1);

else

draw(3);

}

void change() /*變換形狀*/

{ int status=rs1,buffer,i,x,y,zf=0;

if(p[rs1].attr==p[rs1+1].attr)

rs1++;

else

while(p[rs1].attr==p[rs1-1].attr)

rs1--;

for(i=0;i7;i++,i++) /*檢查變化形狀后是否與已存形狀發(fā)生沖突*/

{ x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y6)

zf+=r_f[x-15][y-6];

}

if(zf!=0)

rs1=status;

buffer=rs1;

rs1=status;

status=buffer;

draw(2);

buffer=rs1;

rs1=status;

status=buffer;

nback=check_b(); /*判斷變化后的形狀是不是到達(dá)了低部,這個檢查是十分必要的*/

if(nback)

draw(1);

else

draw(3);

}

void accelerate()

{ if(count_down=1)

{ check_touch(); /*消除上一步動作對方塊狀態(tài)的影響*/

count_down=0;

if(nback) /*0表示到達(dá)底部,1表示沒有到達(dá)*/

mov(DOWN);

}

}

void drawbox() /*畫方塊所在方框*/

{ int xcor,ycor;

for(xcor=xcors;xcor=xcorb;xcor++)

for(ycor=ycors;ycor=ycorb;ycor++)

{ if(xcor==xcors||xcor==xcorb||ycor==ycors||ycor==ycorb)

{ RA.Rx=xcor;

RA.Ry=ycor;

translation();

setfillstyle(1,DARKGRAY);

bar(RA.x1+1,RA.y1+1,RA.x2-1,RA.y2-1);

}

}

}

void erasure(int k)

{ int i,j,recordx=RA.Rx,recordy=RA.Ry;

{ j=k-1;

for(;j0;j--)

{ for(i=1;i11;i++)

{ r_f[i][j+1]=r_f[i][j];

RA.Rx=i+15;

RA.Ry=j+1+6;

translation();

if(r_f[i][j+1]==1)

setfillstyle(1,WHITE);

else

setfillstyle(1,BLACK);

bar(RA.x1+1,RA.y1+1,RA.x2-1,RA.y2-1);

RA.Rx=recordx;

RA.Ry=recordy;

}

}

}

}

void pause()

{ HZ12(450,400,15,BLACK,正常);

HZ12(450,400,15,GREEN,暫停);

for()

if(bioskey(1)bioskey(0)==SPACE)

{ clearkbd();

HZ12(450,400,15,BLACK,暫停);

HZ12(450,400,15,RED,正常);

return;

}

}

void judge()

{ int i,j,full=0; /*full等于10說明某一行滿,該消除了*/

if(finish()) /*判斷游戲是否該結(jié)束了*/

messagebox(); /*win編程里有這個函數(shù)*/

for(j=1;j21;j++) /*判斷某一行是否滿了*/

{ for(i=1;i11;i++)

full+=r_f[i][j];

if(full==10)

erasure(j); /*消除這行*/

full=0;

}

}

void update() /*使程序可以重新運(yùn)行*/

{ cleardevice();

setbkcolor(BLACK);

initinfo(); /*提示信息初始化*/

initbox(); /*游戲框架初始化*/

srand((unsigned)time(NULL)); /*隨機(jī)器函數(shù)的初始化*/

rs1=random(19);

rs2=random(19);

next_shape();

initposition(); /*方塊最開始的出現(xiàn)位置*/

initremove(); /*記錄每個方格有無顏色填充數(shù)組初始化*/

HZ12(450,400,15,RED,正常);

process();

}

void EXIT()

{ closegraph();

intrestore(); /*恢復(fù)中斷向量*/

exit(0);

}

void initremove()

{ int i,j;

for(i=0;i12;i++)

for(j=0;j22;j++)

if(i==0||i==11||j==0||j==21)

r_f[i][j]=1;

else

r_f[i][j]=0;

}

void initinfo()

{ char aStr[2];

setcolor(RED);

outtextxy(450,100,This game's writer is:);

HZ12(450,140,15,RED,該程序作者:NULL);

outtextxy(525,110,NULL);

outtextxy(450,180,FUNCTION FOR KEYS:);

outtextxy(450,200,UP:change the shape);

outtextxy(450,210,DOWN:accelerate);

outtextxy(450,220,LEFT:move left);

outtextxy(450,230,RIGHT:move right);

outtextxy(450,240,ESC:exit this game);

outtextxy(450,250,SPACE:pause);

HZ12(450,260,20,RED,上:);

HZ12(450,280,20,RED,下:);

HZ12(450,300,20,RED,左:);

HZ12(450,320,20,RED,右:);

HZ12(450,340,20,RED,ESC:退出);

HZ12(450,360,15,RED,空格: 暫停/開始);

HZ12(450,380,15,RED,目前狀態(tài):);

HZ12(20,200,15,RED,下一個形狀);

aStr[0]=24;

aStr[1]=0;

aStr[6]=0;

HZ12(480,260,12,GREEN,aStr);

HZ12(500,260,12,GREEN,( 變形 ));

aStr[0]=25;

aStr[1]=0;

HZ12(480,280,12,GREEN,aStr);

HZ12(500,280,12,GREEN,( 加速 ));

aStr[0]=27;

aStr[1]=0;

HZ12(480,300,12,GREEN,aStr);

HZ12(500,300,12,GREEN,向左);

aStr[0]=26;

aStr[1]=0;

HZ12(480,320,12,GREEN,aStr);

HZ12(500,320,12,GREEN,向右);

}

void messagebox()

{ int key;

setcolor(GREEN);

setfillstyle(1,DARKGRAY);

rectangle(220,200,420,300);

bar(221,201,419,299);

HZ12(280,210,15,GREEN,GAME OVER);

HZ12(275,230,15,GREEN,重新游戲: Y);

HZ12(275,270,15,GREEN,退出游戲: N);

HZ12(450,400,15,BLACK,正常);

HZ12(450,400,15,GREEN,GAME OVER);

for()

if(bioskey(1))

{ key=bioskey(0);

if(key==Y)

{ clearkbd();

update();

}

else

if(key==N)

{ clearkbd();

EXIT();

}

else

clearkbd();

}

}

void initbox()

{ xcors=15; /*畫游戲框*/

xcorb=26;

ycors=6;

ycorb=27;

drawbox();

xcors=2; /*畫提示框*/

xcorb=7;

ycors=6;

ycorb=11;

drawbox();

}

void initposition()

{ RA.Rx=18;

RA.Ry=6-p[rs1].co[7]

RA.x1=0;

RA.x2=0;

RA.y1=0;

RA.y2=0;

}

void next_shape() /*畫下一形狀提示框*/

{ int recordx=RA.Rx,recordy=RA.Ry,buffer;

RA.Rx=3;

RA.Ry=7;

draw(2);

buffer=rs1;

rs1=rs2;

rs2=buffer;

draw(1);

RA.Rx=recordx;

RA.Ry=recordy;

buffer=rs1;

rs1=rs2;

rs2=buffer;

}

void process() /*游戲過程*/

{ for()

{ check_touch();

if(!nback)

{ rs1=rs2;

rs2=random(19); /*產(chǎn)生另一種方塊的碼數(shù)*/

initposition();

judge(); /*判斷某一行是否滿了和這個游戲是否可以結(jié)束了*/

draw(1);

next_shape();

}

if(count_other=1)

{ count_other=0;

if(bioskey(1)) /*對按鍵的處理*/

{ int key=bioskey(0);

clearkbd(); /*清除鍵盤緩沖隊(duì)列*/

if(key==ESC)

EXIT();

if(key==LEFTnleftnback)

mov(LEFT);

if(key==RIGHTnrightnback)

mov(RIGHT);

if(key==UPnback)

change();

if(key==SPACE)

pause();

if(key==DOWN)

accelerate();

}

}

if(count_down=4)

{ check_touch(); /*消除上一步動作對方塊狀態(tài)的影響*/

count_down=0;

if(nback) /*0表示到達(dá)底部,1表示沒有到達(dá)*/

mov(DOWN);

}

}/*for*/

}

main()

{ int gdriver=DETECT,gmode=0;

initgraph(gdriver,gmode,d:turboc); /*啟動圖形與中斷部分*/

intenable();

update();

}

用C語言編寫的小游戲代碼是什么?

“猜數(shù)字小游戲”,每個數(shù)字后按空格,最后按回車確認(rèn)

#includestdio.h

#includestdlib.h

#includetime.h

int a[4],b[4];

int count=0;? //計(jì)算猜測次數(shù)

void csh( );? //初始化

void start( );? //開始游戲

int main( )

{ csh( );

start( );

}

void csh( )? //初始化

{ printf("\n\n???????? 猜? 數(shù)? 字? 小? 游? 戲\n\n");

printf(“? ??猜四個數(shù)字,如數(shù)字與順序都正確記為A,數(shù)字正確位置不對記為B.\n”);

}

void start( )? //開始游戲

{int m,n;? //m是完全猜對的個數(shù),n是順序不對的個數(shù)

while(1)

{srand((unsigned)time(NULL));? //初始化隨機(jī)數(shù)發(fā)生器srand( )

while(1) { for(int i=0;i4;i++) a[i]=rand( )%10; ?//rand( )函數(shù)每次隨機(jī)產(chǎn)生一個0-9的數(shù)

if( (a[3]!=a[2]a[3]!=a[1]a[3]!=a[0])

(a[2]!=a[1]a[2]!=a[0])a[1]!=a[0] ) break; }? //4個隨機(jī)數(shù)各自不相等

printf("?? ?請依次輸入4個一位整數(shù):\n\n? ?");

while(1)

{for(int i=0;i4;i++) scanf(“%d”,b[i]);

printf("?? ?你輸入的是:%d? %d? %d? %d ",b[0],b[1],b[2],b[3]);

m=0;n=0;

for(int i=0;i4;i++)

{for(int j=0;j4;j++)

{ if(b[i]==a[j]i==j)m=m+1; if(b[i]==a[j]i!=j)n=n+1; }

}

count=count+1;

printf("????? %dA? %dB?? 你試了%d次\n? ?",m,n,count);

if(m==4)break;

if(count==8){ count=0; break; }

}

printf("\n");

if(m==4)printf("???? 你猜對了(^-^)! 就是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

else printf("???? 你輸了(T-T)!哈哈!應(yīng)該是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

int z;

printf("???? (要繼續(xù)嗎?1或0)\n? ?");

scanf(“%d”,z);

if(z==0) break;

}

}

c語言游戲編程,下落的小鳥 求代碼

下落的小鳥

#includestdio.h

#includestdlib.h

#includeconio.h

#includetime.h

#includeWindows.h

int Grade = 1, Score = 0, Max_blank = 9, Distance = 18;

struct Birds{int x; int y;}; ?//定義一種Birds數(shù)據(jù)類型(含3個成員)

Birds *Bird = (Birds*)malloc(sizeof(Birds)); ?//定義Birds類型 指針變量Bird并賦初值

struct Bg{int x, y; int l_blank; Bg *pri; Bg *next;};? //定義一種Bg數(shù)據(jù)類型(含5個成員)

Bg *Bg1 = (Bg*)malloc(sizeof(Bg));? //定義Bg類型 指針變量Bg1并賦初值

void Position(int x, int y) ?//光標(biāo)定位函數(shù)(用于指定位置輸出)

{COORD pos = { x - 1, y - 1 };

HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(Out, pos);

}

void Csh( ) ?//初始化界面

{

printf("══════════════════════════════════════\n");

printf(" ■■ ■■ C語言版 Flappy Bird \n");

printf(" ■■ ■■\n");

printf(" ■■ ■■\n");

printf(" ■■ ■■ 瞎搞人:yyposs原創(chuàng)\n");

printf(" ■■ ■■ 瞎搞日期:2014.2\n");

printf(" ■■ ■■\n");

printf(" ■■ ■■ 改編:鳴蟬百2021.7\n");

printf(" ■■ ■■ 操作:按向上方向鍵讓小鳥起飛\n");

printf(" ■■\n");

printf(" ■■\n");

printf(" ■■ ■■\n");

printf(" ■■ ■■\n");

printf(" ■■ ■■\n");

printf(" ■■ ■■\n");

printf(" ■■ ■■ DEVc++運(yùn)行通過\n");

printf("══════════════════════════════════════\n");

printf("? 按鍵繼續(xù)…");

getch( );

system("cls");

}

void PrFK( ) ?//輸出方框(游戲范圍區(qū))

{int i;

Position(1, 1); printf("╔");? Position(79, 1); printf("╗");

Position(1, 24); printf("╚");? Position(79, 24); printf("╝");

for (i = 3; i = 78; i += 2){Position(i, 1); printf("═"); Position(i, 24); printf("═");}

for(i=2;i=23;i++)

{ Position(1,i); printf("║");if(i11)printf("0%d",i-1);else printf("%d",i-1);

Position(79,i); printf("║");

}

Position(4, 25); printf("小鳥即將出現(xiàn),請準(zhǔn)備按鍵起飛… ");

getch( );

Position(4, 25); printf("????????????????????????????????? ");

}

void CreatBg( )? //創(chuàng)建障礙物坐標(biāo)(便于打印輸出)

{Bg *Bg2 = (Bg*)malloc(sizeof(Bg));

Bg1-x = 90; Bg1-y = 8;? //確定障礙物的一對基本坐標(biāo)(此時值是在游戲框之外)

Bg2-x = Bg1-x + Distance; Bg2-y = 9;? //下一障礙物的基本坐標(biāo)x、y

Bg1-l_blank = Max_blank - Grade;? //障礙物上下兩部分之間的空白距離l_blank

Bg2-l_blank = Max_blank - Grade;

Bg1-next = Bg2; Bg1-pri = Bg2;

Bg2-next = Bg1; Bg2-pri = Bg1;

}

void InsertBg(Bg *p)? //隨機(jī)改變障礙物的y坐標(biāo),讓空白通道有上下變化

{int temp;

Bg *Bgs = (Bg*)malloc(sizeof(Bg));

Bgs-x = p-pri-x + Distance;

Bgs-l_blank = Max_blank - Grade;

srand((int)time(0)); ?//啟動隨機(jī)數(shù)發(fā)生器

temp = rand( ); ?//產(chǎn)生一個隨機(jī)數(shù)并賦值給temp

if (temp % 2 == 0)

{if ((temp % 4 + p-pri-y + Max_blank - Grade)21)

Bgs-y = p-pri-y + temp % 4;

else Bgs-y = p-pri-y;

}

else

{if ((p-pri-y - temp % 4)2)Bgs-y = p-pri-y - temp % 4;

else Bgs-y = p-pri-y;

}

Bgs-pri = p-pri; Bgs-next = p;

p-pri-next = Bgs; p-pri = Bgs;

}

void CreatBird( )? //建立小鳥的坐標(biāo)(初始打印輸出小鳥的位置)

{Bird-x = 41; Bird-y = 10;}

int CheckYN(Bg *q)? //判斷游戲結(jié)束與否(值為0是要結(jié)束,為1沒有要結(jié)束)

{Bg *p = q; int i = 0;

while (++i = 5)

{if (Bird-y23)return 0;

if (Bird-x == p-xBird-y = p-y)return 0;

if ((Bird-x == p-x || Bird-x == p-x + 1 || Bird-x == p-x + 2) Bird-y == p-y)return 0;

if (Bird-x == p-xBird-yp-y + p-l_blank)return 0;

if ((Bird-x == p-x || Bird-x == p-x + 1 || Bird-x == p-x + 2) Bird-y == p-y + p-l_blank)

return 0;

p = p-next;

}

return 1;

}

void Check_Bg(Bg *q)? //核查開頭的障礙物坐標(biāo)是否在游戲區(qū)內(nèi)

{Bg *p = q; int i = 0, temp;

while (++i = 5)

{if (p-x-4)p = p-next;

else

{srand((int)time(0)); ?temp = rand();

if (temp % 2 == 0)

{if ((temp % 4 + p-y + Max_blank - Grade)21)p-y = p-y + temp % 4;

else p-y = p-y; p-x = p-pri-x + Distance;

p-l_blank = Max_blank - Grade;

}

else

{if ((p-y - temp % 4)2)p-y = p-y - temp % 4;

else p-y = p-y; p-x = p-pri-x + Distance;

p-l_blank = Max_blank - Grade;

}

}

}

}

void Prt_Bg(Bg *q)? //打印輸出障礙物(依據(jù)其x、y坐標(biāo)進(jìn)行相應(yīng)輸出)

{Bg *p = q; int i = 0, k, j;

while (++i = 5)

{if (p-x0 p-x = 78)

{for (k = 2; kp-y; k++){Position(p-x + 1, k); printf("■"); printf("■"); printf(" ");}

Position(p-x, p-y);

printf("■"); printf("■"); printf("■"); printf(" ");

Position(p-x, p-y + p-l_blank);

printf("■"); printf("■"); printf("■"); printf(" ");

k = k + p-l_blank + 1;

for (k; k = 23; k++){Position(p-x + 1, k); printf("■"); printf("■"); printf(" ");}

}

p = p-next;

if (p-x == 0)

{for (j = 2; jp-y; j++){Position(p-x + 1, j); printf(" "); printf(" ");}

Position(p-x + 1, p-y);

printf(" "); printf(" "); printf(" ");

Position(p-x + 1, p-y + Max_blank - Grade);

printf(" "); printf(" "); printf(" ");

j = j + Max_blank - Grade + 1;

for (j; j = 22; j++){Position(p-x + 1, j); printf(" "); printf(" ");}

}

}

}

void PrtBird( )? //打印輸出小鳥

{Position(Bird-x, Bird-y - 1); printf(" ");

Position(Bird-x, Bird-y); printf("Ю");

Position(38, 2); printf("Score:%d", Score);

}

void Loop_Bg(Bg *q)? //障礙物x坐標(biāo)左移,并記錄成績

{Bg *p = q; int i = 0;

while (++i = 5)

{p-x = p-x - 1; p = p-next;

if (Bird-x == p-x)

{Score += 1;

if (Score % 4 == 0 Grade4)Grade++;

}

}

}

int main( )

{int i = 0; int t;

while (1)

{

Csh( );PrFK( );CreatBg( );

InsertBg(Bg1);InsertBg(Bg1);InsertBg(Bg1);

CreatBird( );

while (1)

{if (!CheckYN(Bg1))break;

Check_Bg(Bg1);Prt_Bg(Bg1);

PrtBird( );Loop_Bg(Bg1);

Bird-y = Bird-y + 1;

if (GetAsyncKeyState(VK_UP)) ?//按下了向上方向鍵

{Position(Bird-x, Bird-y - 1);printf(" ");

Bird-y = Bird-y - 4;

}

Sleep(200);? //程序延時200毫秒(數(shù)值大小決定游戲速度快慢)

i = 0;

}

Position(6, 25);

printf("游戲結(jié)束!? 請輸入:0.退出? 1.重玩");

scanf("%d",t);

if (t==0)break;

system("cls"); Score = 0;

}

return 0;

}

關(guān)于c++游戲編程代碼大全和c++游戲代碼簡單的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://www.smallwaterjetsystem.com/post/12178.html

“c++游戲編程代碼大全(c++游戲代碼簡單)” 的相關(guān)文章

ug軟件下載官方網(wǎng)站(ug軟件手機(jī)版下載)

ug軟件下載官方網(wǎng)站(ug軟件手機(jī)版下載)

本篇文章給大家談?wù)剈g軟件下載官方網(wǎng)站,以及ug軟件手機(jī)版下載對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、誰有UG軟件下載的網(wǎng)站啊?確定可用的,最好是能配套u(yù)g教程,ug8.0,ug8.5都可以 2、UG軟件怎么下載和安裝?圖文教程 3、UG4.0軟件下載地址...

2萬粉絲一天收入(1萬粉絲一天收入)

2萬粉絲一天收入(1萬粉絲一天收入)

本篇文章給大家談?wù)?萬粉絲一天收入,以及1萬粉絲一天收入對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、抖音上有2千萬粉絲可以賺多少錢 2、162萬粉絲看直播2萬人,一月收入多少 3、抖音二萬多粉絲能賣多少錢 4、抖音粉絲二千萬收入多少 5、兩萬粉絲快手號...

蘋果碼怎么查真假(怎么查詢蘋果手機(jī)真?zhèn)未a)

蘋果碼怎么查真假(怎么查詢蘋果手機(jī)真?zhèn)未a)

今天給各位分享蘋果碼怎么查真假的知識,其中也會對怎么查詢蘋果手機(jī)真?zhèn)未a進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、蘋果手機(jī)怎么查真?zhèn)?,?2、蘋果官網(wǎng)查序列號怎么看真假 3、蘋果手機(jī)怎樣查詢真?zhèn)? 4、蘋果序列號怎么查真?zhèn)螁?5、蘋果查...

黑客微信代碼大全圖片(黑客微信代碼大全圖片下載)

黑客微信代碼大全圖片(黑客微信代碼大全圖片下載)

本篇文章給大家談?wù)労诳臀⑿糯a大全圖片,以及黑客微信代碼大全圖片下載對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、微信炫酷代碼是什么? 2、手機(jī)在微信里輸入一串黑客代碼 3、如何一串代碼假裝讓微信中毒 4、微信隱藏代碼 微信隱藏代碼盤點(diǎn) 微信炫酷代碼是什么...

webview打不開網(wǎng)頁可能是什么問題(webview組件安裝異常)

webview打不開網(wǎng)頁可能是什么問題(webview組件安裝異常)

今天給各位分享webview打不開網(wǎng)頁可能是什么問題的知識,其中也會對webview組件安裝異常進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、WebView篇—— 加載Web頁面空白原因 2、WebView加載不出來,顯示空白頁面 3、WKWebV...

女生說可遇不可求是什么意思(女生對男生說可遇不可求是什么意思)

女生說可遇不可求是什么意思(女生對男生說可遇不可求是什么意思)

本篇文章給大家談?wù)勁f可遇不可求是什么意思,以及女生對男生說可遇不可求是什么意思對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、你對一個人表白的時候,她和你說“感情的事,是可遇不可求的”是什么意思啊? 2、分手后,女朋友哭著對我說,你是我的可遇不可求,可遇不可留,可...