最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

大一學(xué)生能看懂的貪吃蛇

2019-01-13 17:09 作者:Ljice_  | 我要投稿

/*

游戲

? 1.實(shí)現(xiàn)地圖的初始化 (√)

? 2.在初始化區(qū)域后產(chǎn)生一個(gè)能控制的蛇? ? (√)

? 3.隨機(jī)產(chǎn)生food (√)

? 4.蛇吃到food后續(xù)及蛇的生長(zhǎng) (√)

? 5.蛇咬到自己以及撞墻的判斷 (√)

*/


#include<stdio.h>

#include<conio.h>

#include<iostream>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

#include<time.h>

#include<stdlib.h>

#include<windows.h>


using namespace std;


#define N 24 //從此修改區(qū)域大小


/******************************** 定位光標(biāo)的函數(shù)以及光標(biāo)處字符的顏色函數(shù) *************************/


void XY(int x,int y)? ?//定位光標(biāo)(x,y)位置

{

//HANDLE hout;

COORD pos;? ? ? ? ?//={0,2};;

pos.X=2*x;? ? ? ?//pos為一個(gè)結(jié)構(gòu)體變量

pos.Y=y;? ? ? ? //y=2x;

? ? ? ? ? ? ? ? //定義hout為句柄,可邊定義邊賦值,也可先定義再賦值

HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//輸出句柄

SetConsoleCursorPosition(hout,pos);//API中定位光標(biāo)的函數(shù)

}

?

void Color(int num)? ?//設(shè)置顏色

{

HANDLE hout;

hout=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hout,num);

}


/***************************? 初始化? **********************? ************/

void Init()

{

int wall[N+2][N+2]={0},i,j;

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

for(j=1;j<N+1;j++)

wall[i][j]=1;


for(i=0;i<N+2;i++)

{

{

for(j=0;j<N+2;j++)

if(wall[i][j])

cout<<"? ";//一個(gè)□相當(dāng)于兩個(gè)space? ? ?* y=2x*

else cout<<"■";

}

cout<<endl;

}??


XY(N+3,10);

cout<<"按下任意鍵暫停"<<endl;

XY(N+3,11);

cout<<"按下w,s,a,d進(jìn)行移動(dòng)"<<endl;

XY(N+3,1);

cout<<"******************"<<endl;

XY(N+3,15);

cout<<"******************"<<endl;

XY(N+3,13);

cout<<"當(dāng)前分?jǐn)?shù):"<<endl;

}




/*************************? 游戲總過(guò)程? *****************************************/

void game()

{

int sneak[30][2],food[2],back[2],score=0,len=1;

char ch;

? ? ? ? ? //sneak[0] 保存坐標(biāo)x ,? wall[1]保存坐標(biāo)y

Init();


//菜單

int n,i;

XY(N+3,3);

cout<<"請(qǐng)選擇你要挑戰(zhàn)的難度:"<<endl;

XY(N+3,4);

cout<<"難度一(10節(jié)) -- 1"<<endl;

XY(N+3,5);

cout<<"難度二(20節(jié)) -- 2"<<endl;

XY(N+3,6);

cout<<"難度三(30節(jié)) -- 3"<<endl;

i=getch();

switch(i)

{

case '1':n=100;break;

case '2':n=200;break;

case '3':n=300;break;

default : break;

}



? ? ? ? //先初始化地圖再在地圖里畫(huà)蛇

sneak[0][0]=N/2; ? ?//一維數(shù)組只能保存一節(jié)蛇,二維數(shù)組才能保存多節(jié)蛇

sneak[0][1]=N/2+1; ? //蛇的初始位置

XY(sneak[0][0],sneak[0][1]);

Color(6);

cout<<"◎";

cout<<endl;

srand((unsigned)time(NULL));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

food[0]=rand()%N+1; //x的隨機(jī)坐標(biāo)

food[1]=rand()%N+1; ? ?//y的隨機(jī)坐標(biāo)

XY(food[0],food[1]);

Color(11);

cout<<"¤";

cout<<endl;

int flag=1;

//////////////////////////////////////////////////////? 循環(huán)區(qū)域? ////////////////////////////////////////////////////////////////////////


while(1)

{? ?

if(flag)

{

back[0]=sneak[len-1][0];

back[1]=sneak[len-1][1];

XY(back[0],back[1]);

cout<<"? "<<endl;

}


for(i=len-1;i>0;i--)

{

sneak[i][0]=sneak[i-1][0];

sneak[i][1]=sneak[i-1][1];

XY(sneak[i][0],sneak[i][1]);

Color(6);

cout<<"◎"<<endl;

}

flag=1;

if(kbhit())? ? ?//讓蛇按下鍵后自己動(dòng)

{

XY(N+3,12);? ?//按下其他鍵停止(ch始終為該值,在switch處沒(méi)有位移,循環(huán)止于下次循環(huán)的kbhit處)

ch=getche();

}//除去"Press any key to continue"



switch(ch)

{? ? ??

case 'W':

case 'w':sneak[0][1]--;break;?

case 'S':

case 's':sneak[0][1]++;break;

case 'A':

case 'a':sneak[0][0]--;break;

case 'D':

case 'd':sneak[0][0]++;break;

default:break;

}

XY(sneak[0][0],sneak[0][1]);

Color(6);

cout<<"◎";

cout<<endl;





Sleep(200-(score/2));


////////////////////////////////////////////////////吃到食物

if(sneak[0][0]==food[0]&&sneak[0][1]==food[1])

{

score+=10,len++,flag=0;

srand((unsigned)time(NULL));? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

food[0]=rand()%N+1; //x的隨機(jī)坐標(biāo)

food[1]=rand()%N+1;

XY(food[0],food[1]);

Color(11);

cout<<"¤";

cout<<endl;

}




////////////////////////////////////////////////////////////////撞墻

if(sneak[0][0]==0||sneak[0][1]==0||sneak[0][0]==N+1||sneak[0][1]==N+1)

{

XY(N+5,8);

Color(5);

cout<<"GAME OVER"<<endl;

exit(0);

}

////////////////////////


////////////////////////////////////撞自己(長(zhǎng)度大于1)


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

{

if(sneak[0][0]==sneak[i][0]&&sneak[0][1]==sneak[i][1])

{

XY(N+5,8);

Color(5);

cout<<"GAME OVER"<<endl;

exit(0);

}

}



XY(N+8,13);

Color(6);

cout<< score <<endl;

/////////////////////游戲成功

if(score==n)

{

? ? XY(N+5,8);

Color(5);

cout<<"YOU WIN"<<endl;

exit(0);

}

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

}




/**************************** 主函數(shù)? ********************************/

int main()

{? ?

game();

return 0;

}


大一學(xué)生能看懂的貪吃蛇的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
九台市| 宝清县| 湖北省| 定西市| 渝北区| 社旗县| 滨州市| 钟祥市| 鲁甸县| 乌兰县| 平阳县| 高平市| 武威市| 温州市| 宁河县| 三原县| 台中市| 金川县| 博兴县| 阿鲁科尔沁旗| 独山县| 饶阳县| 沾益县| 乐都县| 礼泉县| 黎平县| 通许县| 赞皇县| 海安县| 封开县| 洪泽县| 东港市| 山东省| 衡东县| 高唐县| 股票| 黑水县| 福海县| 托克托县| 亚东县| 陇南市|