贪吃蛇------C语言实现

游戏说明:

  1. 用 ↑ . ↓ . ← . → 来控制蛇的移动
  2. F3是加速,F4是减速,加速能获得更高分数,减速则得分降低
  3. 按空格键可实现暂停,暂停后按任意键继续游戏
  4. 按Esc键可直接退出游戏
  5. 游戏结束后可以选择继续或则退出

游戏运行展示: 

贪吃蛇游戏当中蛇的移动速度可以进行调整,视频中为大家调整了适当的速度。

实现过程: 

 代码详解:

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1

#include <locale.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <stdbool.h>
#include <conio.h>
#include<string.h>

#define WALL L'■'
#define BODY L'●'
#define FOOD L'★'


//蛇默认的起始坐标
#define POS_X 24
#define POS_Y 5

#define KEY_PRESS(VK)  ( (GetAsyncKeyState(VK) & 0x1) ? 1 : 0 )

//游戏的状态
enum GAME_STATUS
{
	OK = 1,//正常运行
	ESC, //按了ESC键退出,正常退出
	KILL_BY_WALL,//撞墙
	KILL_BY_SELF //撞到自身
};

//蛇行走的方向
enum DIRECTION
{
	UP = 1,
	DOWN,
	LEFT,
	RIGHT
};

//蛇身结点的定义
typedef struct SnakeNode
{
	int x;
	int y;
	struct SnakeNode* next;
}SnakeNode, * pSnakeNode;


//贪吃蛇
typedef struct Snake
{
	pSnakeNode pSnake;//维护整条蛇的指针,是指向蛇头
	pSnakeNode pFood;//指向食物的指针
	int Score;//当前累积的分数
	int FoodWeight;//一个食物的分数
	int SleepTime;//蛇休眠的时间,休眠的时间越短,蛇的速度越快,休眠的时间越长,蛇的速度越慢
	enum GAME_STATUS status;//游戏当前的状态
	enum DIRECTION dir;//蛇当前走的方向
	//...
}Snake, * pSnake;

//颜色设置
void color(int c);

//定位控制台光标位置
void SetPos(int x, int y);

//游戏开始前的准备
void GameStart(pSnake ps);

//打印欢迎界面
void WelcomeToGame();

//绘制地图
void CreateMap();

//初始化贪吃蛇
void InitSnake(pSnake ps);

//创建食物
void CreateFood(pSnake ps);

//游戏运行的整个逻辑
void GameRun(pSnake ps);

//打印帮助信息
void PrintHelpInfo();

//蛇移动的函数- 每次走一步
void SnakeMove(pSnake ps);

//判断蛇头的下一步要走的位置处是否是食物
int NextIsFood(pSnake ps, pSnakeNode pNext);

//下一步要走的位置处就是食物,就吃掉食物
void EatFood(pSnake ps, pSnakeNode pNext);

//下一步要走
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值