c++贪吃蛇 分数-关卡-时间(都做了优化)

本文介绍了使用C++编程实现贪吃蛇游戏,并对其分数计算、关卡设置和时间控制进行了优化,提升了游戏体验。
#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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值