資源簡介
應(yīng)用隨機數(shù)種子對RGB色值進行隨機 更替,實現(xiàn)貪吃蛇的彩色變化
代碼片段和文件信息
#?define??_CRT_SECURE_NO_WARNINGS
#?include
#?include
#?include
#?include
#?include
#?include
//?坐標(biāo)屬性
typedef?struct?point??????
{
int?x?y;
}GAMEPOINT;
//?蛇的結(jié)構(gòu)體
struct?Snake
{
GAMEPOINT?SKxy[800];??//?坐標(biāo)
int?position;?????//?方向
int?num;??????????//?節(jié)數(shù)?
}Snake;
//?食物結(jié)構(gòu)體
struct?Food
{
GAMEPOINT?FDxy;??//?坐標(biāo)
int?flag;????//?標(biāo)記
int?grade;???//?分?jǐn)?shù)
}Food;
//?枚舉:方向
enum?position?{updownleftright};
//***************************************************模塊化設(shè)計功能***********************************************************//
//?***************************蛇的功能實現(xiàn)
//?1.初始化蛇的
void?initSnake()
{
//?前三節(jié)?坐標(biāo)初始化
Snake.SKxy[2].x?=?0;???Snake.SKxy[2].y?=?0;
Snake.SKxy[1].x?=?10;??Snake.SKxy[1].y?=?0;??
Snake.SKxy[0].x?=?20;??Snake.SKxy[0].y?=?0;??
//?前三節(jié)?方向初始化
Snake.position?=?right;
Snake.num?=?3;
}
//?2.畫蛇(畫填充矩形)
void?DrawSnake()
{
for?(int?i?=?0;?i?{?
setlinecolor(BLACK);?????//?設(shè)置邊框??????????????????????????????????????????????????????????????????????//?邊框采用黑色
setfillcolor(RGB(rand()?%?255?rand()?%?255?rand()?%?255));???//?設(shè)置填充顏色????????????????????????????????//?三原色隨機產(chǎn)生
fillrectangle(Snake.SKxy[i].x?Snake.SKxy[i].y?Snake.SKxy[i].x?10?Snake.SKxy[i].y?10);???//?依據(jù)坐標(biāo)填充
}
}
//?3.動起來的彩色菜花蛇
void?MoveSnake()
{
//?蛇的身體就是坐標(biāo)轉(zhuǎn)換(一個一個的往前挪動)
//?1.蛇身的移動
for?(int?i?=?Snake.num?-?1;?i?>?0;?i--)
{
Snake.SKxy[i].x?=?Snake.SKxy[i?-?1].x;??//?把前一節(jié)的x坐標(biāo)賦值給后一節(jié)的坐標(biāo)(以頭部為前)
Snake.SKxy[i].y?=?Snake.SKxy[i?-?1].y;
}
//?2.蛇頭的移動
switch?(Snake.position)
{
case?up:
Snake.SKxy[0].y?-=?10;
break;
case?down:
Snake.SKxy[0].y?=?10;
break;
case?left:
Snake.SKxy[0].x?-=?10;
break;
case?right:
Snake.SKxy[0].x?=?10;
break;
}
}
//?4.用戶按鍵操作
void?KeyDown()
{
char?UserKey?=?_getch();??//?獲取用戶鍵盤輸入
switch?(UserKey)
{
case?‘W‘:
case?‘w‘:
case?72:
if?(Snake.position?!=?down)
Snake.position?=?up;
break;
case?‘S‘:
case?‘s‘:
case?80:
if?(Snake.position?!=?up)
Snake.position?=?down;
break;
case?‘A‘:
case?‘a(chǎn)‘:
case?75:
if?(Snake.position?!=?right)
Snake.position?=?left;
break;
case?‘D‘:
case?‘d‘:
case?77:
if?(Snake.position?!=?left)
Snake.position?=?right;
break;
}
}
//***************************屏幕初始化
void?InitS
- 上一篇:吃豆人.cpp 代碼
- 下一篇:MFC五子棋游戲
評論
共有 條評論