相关知识:
1.链表
2.句柄相关了解
3.简单游戏策划
简单策划篇:
一、游戏概述
贪吃蛇是一款经典的小游戏,在此贪吃蛇中,加入了彩蛋和大彩蛋,一方面提高用户的可玩性,另一方面,通过彩蛋的制作,提高了本人的代码写作能力和兴趣。
二、游戏规则
贪食蛇移动规则:↑:上移↓:无←:左移动→:右移
得分规则:吃一个食物得10分,彩蛋中吃一个加100分
获胜规则:通过前5关,后进入彩蛋关卡,达到一定分数,进入大彩蛋,游戏结束。
游戏结束规则:撞墙,通关
同时,此小游戏最终大彩蛋送给我女票,感谢让我遇见了她,遇见不一样的人生。
代码篇
//author:CO-MI
//version:4.0
//up to date:2018/7/9
//禁止转载,如需转载,请联系本人同意后即可转载
#include #include #include #include#define iX 58
#define iY 26
#define sn_len 2
#define up 8
#define left 4
#define right 6
#define down 2
#define I 20
#define R 340
typedef struct SNAKE
{
int x; ///横坐标
int y; ///纵坐标
struct SNAKE *NEXT;
} snake;
snake *Snake_Head;///蛇头
int direction; ///方向
int m,n;
int Score; ///得分
int sleeptime=250;///休眠时间
snake *SNAKE_INIT();
void main();
void SetPos(int x,int y);
void createMap();
int move();
void restart();
void egg();
void bigegg();
void createmap2();
void createfood2();
void score2();
void snake_move2();
/*
函数名:void SetPos(int x,int y)
函数功能:光标设置
参数:x,y位置坐标
返回值:无
*/
void SetPos(int x,int y) ///设置坐标
{
COORD tempCrd; ///声明变量--坐标变量
HANDLE Houtput; ///声明变量--句柄
tempCrd.X=x; ///coord position
tempCrd.Y=y; ///coord position
Houtput=GetStdHandle(STD_OUTPUT_HANDLE); ///使用GetStdHandle(STD_OUTPUT_HANDLE)来获取标准输出的句柄
SetConsoleCursorPosition(Houtput, tempCrd); ///设置光标位置
}
/*
函数名:void createMap()
函数功能:贪吃蛇地图创建
参数:无
返回值:无
*/
void createMap() ///创造地图
{
int i;
for(i=0; ix=rand()%30+5; ///设置随机生成蛇的位置
Snake_Head->y=rand()%20+5;
SetPos(Snake_Head->x,Snake_Head->y);
printf("S");
Snake_Head->NEXT=NULL;
prear=Snake_Head;
for(i=0; ix=Snake_Head->x+i+1;
temp->y=Snake_Head->y;
SetPos(temp->x,temp->y);
printf("S");
prear->NEXT=temp;
prear=temp;
}
prear->NEXT=NULL;
return Snake_Head;
}
/*
函数名:void start()
函数功能:游戏启动界面
参数:无
返回值:无