真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言寫貪吃蛇要哪些函數(shù) 用c語言寫貪吃蛇算項(xiàng)目嗎

貪吃蛇c語言代碼中我看到了這個(gè)函數(shù),能不能把這個(gè)函數(shù)所涉及的知識(shí)點(diǎn)都羅列出來呢謝謝

2: srand(time(NULL)); 初始化隨機(jī)種子, 你就記住用rand函數(shù)之前必須要用這個(gè)

成都創(chuàng)新互聯(lián)主營(yíng)白銀區(qū)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開發(fā),白銀區(qū)h5小程序定制開發(fā)搭建,白銀區(qū)網(wǎng)站營(yíng)銷推廣歡迎白銀區(qū)等地區(qū)企業(yè)咨詢

3: rand( )隨機(jī)函數(shù), 食物的x坐標(biāo)為 1到界面最右邊少一個(gè)位置中的任意一個(gè)值

4: 食物的y坐標(biāo)為 1到界面最下邊少一個(gè)位置中的任意一個(gè)值

5: 設(shè)置光標(biāo)到食物的坐標(biāo)位置, 以便打印出食物

用C語言編寫貪吃蛇的幾個(gè)步驟?不要源程序,只講方法.

我記得我寫的時(shí)候是先把框架列好,先從主程序開始,用到哪些函數(shù) 我就先寫上,當(dāng)然實(shí)現(xiàn)先不實(shí)現(xiàn),然后一步一步的完善。

主函數(shù)中進(jìn)行的步驟無非是接收一個(gè)鍵(這個(gè)接收函數(shù)一定要用getch(),為啥你懂得,還要有判斷當(dāng)前是否有鍵按下的函數(shù),這個(gè)是游戲必須的函數(shù),名字我忘了),清屏,畫出下一個(gè)狀態(tài)。

下一個(gè)狀態(tài)包括 整個(gè)地圖,蘋果的位置,蛇的的長(zhǎng)度以及每段的位置。

還要加上是否吃上東東,是否撞到墻,是否噴到了自己,就這些。

用c語言編寫的貪食蛇游戲

這是一個(gè)成功的貪吃蛇代碼(c語言編寫的),希望你能看懂!慢慢看:

#define N 200

#include graphics.h

#include stdlib.h

#include dos.h

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score=0;/*得分*/

int gamespeed=50000;/*游戲速度自己調(diào)整*/

struct Food

{

int x;/*食物的橫坐標(biāo)*/

int y;/*食物的縱坐標(biāo)*/

int yes;/*判斷是否要出現(xiàn)食物的變量*/

}food;/*食物的結(jié)構(gòu)體*/

struct Snake

{

int x[N];

int y[N];

int node;/*蛇的節(jié)數(shù)*/

int direction;/*蛇移動(dòng)方向*/

int life;/* 蛇的生命,0活著,1死亡*/

}snake;

void Init(void);/*圖形驅(qū)動(dòng)*/

void Close(void);/*圖形結(jié)束*/

void DrawK(void);/*開始畫面*/

void GameOver(void);/*結(jié)束游戲*/

void GamePlay(void);/*玩游戲具體過程*/

void PrScore(void);/*輸出成績(jī)*/

/*主函數(shù)*/

void main(void)

{

Init();/*圖形驅(qū)動(dòng)*/

DrawK();/*開始畫面*/

GamePlay();/*玩游戲具體過程*/

Close();/*圖形結(jié)束*/

}

/*圖形驅(qū)動(dòng)*/

void Init(void)

{

int gd=DETECT,gm;

initgraph(gd,gm,"c:\\tc");

cleardevice();

}

/*開始畫面,左上角坐標(biāo)為(50,40),右下角坐標(biāo)為(610,460)的圍墻*/

void DrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設(shè)置線型*/

for(i=50;i=600;i+=10)/*畫圍墻*/

{

rectangle(i,40,i+10,49); /*上邊*/

rectangle(i,451,i+10,460);/*下邊*/

}

for(i=40;i=450;i+=10)

{

rectangle(50,i,59,i+10); /*左邊*/

rectangle(601,i,610,i+10);/*右邊*/

}

}

/*玩游戲具體過程*/

void GamePlay(void)

{

randomize();/*隨機(jī)數(shù)發(fā)生器*/

food.yes=1;/*1表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物*/

snake.life=0;/*活著*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇頭*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*節(jié)數(shù)*/

PrScore();/*輸出得分*/

while(1)/*可以重復(fù)玩游戲,壓ESC鍵結(jié)束*/

{

while(!kbhit())/*在沒有按鍵的情況下,蛇自己移動(dòng)身體*/

{

if(food.yes==1)/*需要出現(xiàn)新食物*/

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!=0)/*食物隨機(jī)出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;/*畫面上有食物了*/

}

if(food.yes==0)/*畫面上有食物了就要顯示*/

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

}

for(i=snake.node-1;i0;i--)/*蛇的每個(gè)環(huán)節(jié)往前移動(dòng),也就是貪吃蛇的關(guān)鍵算法*/

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

/*1,2,3,4表示右,左,上,下四個(gè)方向,通過這個(gè)判斷來移動(dòng)蛇頭*/

switch(snake.direction)

{

case 1:snake.x[0]+=10;break;

case 2: snake.x[0]-=10;break;

case 3: snake.y[0]-=10;break;

case 4: snake.y[0]+=10;break;

}

for(i=3;isnake.node;i++)/*從蛇的第四節(jié)開始判斷是否撞到自己了,因?yàn)樯哳^為兩節(jié),第三節(jié)不可能拐過來*/

{

if(snake.x[i]==snake.x[0]snake.y[i]==snake.y[0])

{

GameOver();/*顯示失敗*/

snake.life=1;

break;

}

}

if(snake.x[0]55||snake.x[0]595||snake.y[0]55||

snake.y[0]455)/*蛇是否撞到墻壁*/

{

GameOver();/*本次游戲結(jié)束*/

snake.life=1; /*蛇死*/

}

if(snake.life==1)/*以上兩種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始*/

break;

if(snake.x[0]==food.xsnake.y[0]==food.y)/*吃到食物以后*/

{

setcolor(0);/*把畫面上的食物東西去掉*/

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;snake.y[snake.node]=-20;

/*新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置*/

snake.node++;/*蛇的身體長(zhǎng)一節(jié)*/

food.yes=1;/*畫面上需要出現(xiàn)新的食物*/

score+=10;

PrScore();/*輸出新得分*/

}

setcolor(4);/*畫出蛇*/

for(i=0;isnake.node;i++)

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,

snake.y[i]-10);

delay(gamespeed);

setcolor(0);/*用黑色去除蛇的的最后一節(jié)*/

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

} /*endwhile(!kbhit)*/

if(snake.life==1)/*如果蛇死就跳出循環(huán)*/

break;

key=bioskey(0);/*接收按鍵*/

if(key==ESC)/*按ESC鍵退出*/

break;

else

if(key==UPsnake.direction!=4)

/*判斷是否往相反的方向移動(dòng)*/

snake.direction=3;

else

if(key==RIGHTsnake.direction!=2)

snake.direction=1;

else

if(key==LEFTsnake.direction!=1)

snake.direction=2;

else

if(key==DOWNsnake.direction!=3)

snake.direction=4;

}/*endwhile(1)*/

}

/*游戲結(jié)束*/

void GameOver(void)

{

cleardevice();

PrScore();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(200,200,"GAME OVER");

getch();

}

/*輸出成績(jī)*/

void PrScore(void)

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

settextstyle(0,0,2);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

/*圖形結(jié)束*/

void Close(void)

{

getch();

closegraph();

}

如何用C語言寫貪吃蛇

#includeconio.h #includegraphics.h #includetime.h #includestring.h #includemalloc.h #includestdio.h int grade=5,point=0,life=3; void set(),menu(),move_head(),move_body(),move(),init_insect(),left(),upon(),right(),down(),init_graph(),food_f(),ahead(),crate(); struct bug { int x; int y; struct bug *last; struct bug *next; }; struct fd { int x; int y; int judge; }food={0,0,0}; struct bug *head_f=NULL,*head_l,*p1=NULL,*p2=NULL; void main() { char ch; initgraph(800,600); set(); init_insect(); while(1) { food_f(); Sleep(grade*10); setcolor(BLACK); circle(head_l-x,head_l-y,2); setcolor(WHITE); move_body(); if(kbhit()) { ch=getch(); if(ch==27) { ahead(); set(); } else if(ch==-32) { switch(getch()) { case 72:upon();break; case 80:down();break; case 75:left();break; case 77:right();break; } } else ahead(); } else { ahead(); } if(head_f-x==food.xhead_f-y==food.y) { Sleep(100); crate(); food.judge=0; point=point+(6-grade)*10; if(food.x30||food.y30||food.x570||food.y570) life++; menu(); } if(head_f-x5||head_f-x595||head_f-y5||head_f-y595) { Sleep(1000); life--; food.judge=0; init_graph(); init_insect(); menu(); } for(p1=head_f-next;p1!=NULL;p1=p1-next) { if(head_f-x==p1-xhead_f-y==p1-y) { Sleep(1000); life--; food.judge=0; init_graph(); init_insect(); menu(); break; } } if(life==0) { outtextxy(280,300,"游戲結(jié)束!"); getch(); return; } move(); }; } void init_graph() { clearviewport(); setlinestyle(PS_SOLID,1,5); rectangle(2,2,600,598); setlinestyle(PS_SOLID,1,1); } void set() { init_graph(); outtextxy(640,50,"1、開始 / 返回"); outtextxy(640,70,"2、退出"); outtextxy(640,90,"3、難度"); outtextxy(640,110,"4、重新開始"); switch(getch()) { case '1': menu();setcolor(GREEN);circle(food.x,food.y,2);setcolor(WHITE);return; case '2': exit(0);break; case '3': outtextxy(700,90,":1 2 3 4 5");grade=getch()-48;set();break; case '4': food.judge=0,grade=5;point=0;life=3;init_insect();menu();break; default: outtextxy(250,300,"輸入錯(cuò)誤!"); set();break; } } void menu() { char str[20],str1[]={"分?jǐn)?shù):"},str2[]={"難度:"},str3[]={"生命值:"}; init_graph(); sprintf(str,"%d",point); strcat(str1,str); outtextxy(640,50,str1); sprintf(str,"%d",grade); strcat(str2,str); outtextxy(640,70,str2); sprintf(str,"%d",life); strcat(str3,str); outtextxy(640,90,str3); outtextxy(640,110,"設(shè)置:ESC"); } void init_insect() { head_f=(struct bug *)malloc(sizeof(struct bug)); head_f-last=NULL; head_f-x=300; head_f-y=300; p2=head_f-next=p1=(struct bug *)malloc(sizeof(struct bug)); p1-last=head_f; p1-x=295; p1-y=300; p1=p1-next=(struct bug *)malloc(sizeof(struct bug)); p1-next=NULL; p1-x=290; p1-y=300; p1-last=p2; head_l=p1; } void move() { for(p1=head_f;p1!=NULL;p1=p1-next) { circle(p1-x,p1-y,2); } } void move_head() { } void move_body() { for(p1=head_l,p2=p1-last;p2!=NULL;p1=p2,p2=p2-last) { p1-x=p2-x; p1-y=p2-y; } } void ahead() { p1=head_f; p2=p1-next; p2=p2-next; if(p1-x==p2-x) { if(p1-yp2-y) head_f-y+=5; else head_f-y-=5; } else { if(p1-xp2-x) { head_f-x+=5; } else head_f-x-=5; } } void upon() { p1=head_f-next; p1=p1-next; head_f-y-=5; if(p1-x==head_f-xp1-y==head_f-y) { head_f-y+=5; ahead(); } } void down() { p1=head_f-next; p1=p1-next; head_f-y+=5; if(p1-x==head_f-xp1-y==head_f-y) { head_f-y-=5; ahead(); } } void left() { p1=head_f-next; p1=p1-next; head_f-x-=5; if(p1-x==head_f-xp1-y==head_f-y) { head_f-x+=5; ahead(); } } void right() { p1=head_f-next; p1=p1-next; head_f-x+=5; if(p1-x==head_f-xp1-y==head_f-y) { head_f-x-=5; ahead(); } } void food_f() { if(!food.judge) { food.x=(rand()%117+1)*5; food.y=(rand()%117+1)*5; food.judge=1; if(food.x30||food.y30||food.x570||food.y570) { setcolor(RED); circle(f


本文題目:c語言寫貪吃蛇要哪些函數(shù) 用c語言寫貪吃蛇算項(xiàng)目嗎
文章鏈接:http://weahome.cn/article/dojseop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部