資源簡介
應用隨機數種子對RGB色值進行隨機 更替,實現貪吃蛇的彩色變化
代碼片段和文件信息
#?define??_CRT_SECURE_NO_WARNINGS
#?include
#?include
#?include
#?include
#?include
#?include
//?坐標屬性
typedef?struct?point??????
{
int?x?y;
}GAMEPOINT;
//?蛇的結構體
struct?Snake
{
GAMEPOINT?SKxy[800];??//?坐標
int?position;?????//?方向
int?num;??????????//?節數?
}Snake;
//?食物結構體
struct?Food
{
GAMEPOINT?FDxy;??//?坐標
int?flag;????//?標記
int?grade;???//?分數
}Food;
//?枚舉:方向
enum?position?{updownleftright};
//***************************************************模塊化設計功能***********************************************************//
//?***************************蛇的功能實現
//?1.初始化蛇的
void?initSnake()
{
//?前三節?坐標初始化
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;??
//?前三節?方向初始化
Snake.position?=?right;
Snake.num?=?3;
}
//?2.畫蛇(畫填充矩形)
void?DrawSnake()
{
for?(int?i?=?0;?i?{?
setlinecolor(BLACK);?????//?設置邊框??????????????????????????????????????????????????????????????????????//?邊框采用黑色
setfillcolor(RGB(rand()?%?255?rand()?%?255?rand()?%?255));???//?設置填充顏色????????????????????????????????//?三原色隨機產生
fillrectangle(Snake.SKxy[i].x?Snake.SKxy[i].y?Snake.SKxy[i].x?10?Snake.SKxy[i].y?10);???//?依據坐標填充
}
}
//?3.動起來的彩色菜花蛇
void?MoveSnake()
{
//?蛇的身體就是坐標轉換(一個一個的往前挪動)
//?1.蛇身的移動
for?(int?i?=?Snake.num?-?1;?i?>?0;?i--)
{
Snake.SKxy[i].x?=?Snake.SKxy[i?-?1].x;??//?把前一節的x坐標賦值給后一節的坐標(以頭部為前)
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‘:
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五子棋游戲
評論
共有 條評論