国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
商洛市| 彭阳县| 海南省| 淳化县| 鄂托克旗| 依兰县| 昭苏县| 神池县| 建昌县| 抚松县| 那曲县| 甘泉县| 凤冈县| 西畴县| 水城县| 五指山市| 西林县| 江油市| 郸城县| 莱西市| 洪泽县| 中阳县| 亚东县| 忻城县| 商城县| 万年县| 南通市| 五峰| 高台县| 溆浦县| 丰镇市| 岚皋县| 商丘市| 循化| 康定县| 恩施市| 黎城县| 宁远县| 北川| 垫江县| 阳城县|