C语言实现简易版贪吃蛇,通过移除蛇尾和打印新的蛇头来实现移动效果,可以避免刷新整个蛇身的闪屏现象。
下面分别是头文件和实现文件:
#ifndef SNAKE_H_INCLUDED
#define SNAKE_H_INCLUDED
/***************************************************
#define MARGIN_X 25 //游戏界面左边距
#define up 'w' //蛇的移动方向
#define down 's'
#define left 'a'
#define right 'd'
#define stop 'p'
/*
typedef struct _snake{
int x; //节点坐标
int y;
struct _snake * next;
}SNAKE;
//声明蛇头蛇尾
/*
struct Food
{
int x;
int y;
}food;
//声明蛇的移动速度和蛇长变量
int speed;
/*
void welcome();
/*
void creatmap();
/*
void showsnake();
/*
void creatfood();
/*
void playgame();
/*
void gotoprint(int x, int y,int a, int b);
/*
void gotodelete(int x, int y);
/*
void MovingBody(char click);
/*
void ChangeBody(int a,int b);
/*
void Eating();
/*
int Judge();
/*
void gameover();
#endif // SNAKE_H_INCLUDED
#ifndef SNAKELIB_H_INCLUDED
#define SNAKELIB_H_INCLUDED
/***************************************************
/* 设置控制台窗口标题 */
void SetTitle(char * title);
/* 设置控制台窗口颜色 */
void SetColor(int, int);
/* 设置控制台窗口尺寸 */
void SetConsoleWindowSize(int width, int height);
/* 设置光标的x、y坐标-正常坐标轴 */
void SetPosition(int x, int y);
/* 清屏 */
void Clear(int X, int Y);
#endif // SNAKELIB_H_INCLUDED
/***************************************************