#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<graphics.h>
#include<mmsystem.h>
#include<conio.h>
#include<ctime>
#pragma comment (lib,"WINMM.LIB")
#define Node_head_size 20 //蛇身体大小
#define WIN_WIDTH 1000
#define WIN_HEIGHT 800
#define GAME_WIDHT 800 //游戏运行界面宽度
//方向
enum MyEnum
{
UP = 1, DOWN = -1, LEFT = 2, RIGHT = -2, STOP = 3
};
//蛇结构体
typedef struct _Node
{
int x = 0;
int y = 0;
struct _Node* next = NULL;
struct _Node* pre = NULL;
}snake, linknode;
//食物结构体
typedef struct _food
{
int x=0;
int y=0;
bool islive = true;
}Food;
//头结点指针和尾节点指针
linknode* head;
linknode* tatil;
int dir = DOWN; //蛇移动默认方向
int olddir = dir; //记录前一次蛇头移动的方向
bool isadd = false; //测试值,用于判断释放增加蛇长度
bool islive = true; //是否活着
int score = 200; //分数
bool food_ok = true;//是否成功产生食物
int Checkpoint = 1;//关卡
char buff[100]{}; //分数数组
char buffCheckpoint[100]{}; //关卡数组
char buffCheckpoint_time[100]{}; //通关剩余时间数组
int Checkpoint_time = 6000;//关卡通关时间,时间为0 蛇死亡,游戏结束
int reduce_speed = 1; //关卡时间流逝速度
int old_reduce_speed = reduce_speed;//记录暂停之前的时间流速,用于暂停后恢复
int old_Checkpoint_time = Checkpoint_time;//记录暂停之前的时间
//初始化头节点和尾节点指针
void createLinke()
{
head = new linknode;
tatil = new linknode;
head->pre = NULL;
head->next = tatil;
tatil->pre = head;
tatil->next = NULL;
}
//创建头节点(有效数据)
void createNode(linknode* head, linknode* tatil)
{
linknode* newnode = new linknode;
head->ne
c++贪吃蛇 分数-关卡-时间(都做了优化)
最新推荐文章于 2023-03-02 10:13:51 发布
