C++控制台下的贪吃蛇
这是我大一第一个学期无聊写的一个小游戏,我记得当时写这个的时候还是挺激动的,现在大二了,回过头来看看这些代码,太笨拙了,但是毕竟时间有限,而且这个是我写的第一个游戏,不想去改了,就这样了吧。贴个代码留做纪念吧!高手勿喷啊!!
//2014.12.12日Mr.Xiong 制作
#include <iostream>
#include <cstdio>
#include <string>
#include <iomanip>
#include <conio.h>
#include <ctime>
#include <windows.h>
#define ESC 27 /*ESC 的ASCII码*/
using namespace std;
const int G_MAPX = 23;//宽度
const int G_MAPY = 24;//长度
int G_MAP[G_MAPX][G_MAPY] = { 0 };
const int Blank = 0;
const int Obstacle = 1;
const int Snake = 2;
const int Food = 3;
int Lenght = 4;
double Settime = 9;
double Speed = 3000 / Settime;//初始值为0.3
int i, j; //循环变量
bool FoodExist = false;//用于判断失误存在与否
enum G_Direction { UP, DOWN, LEFT, RIGHT };
G_Direction NowDirec = DOWN;//记录本次移动的方向
G_Direction PrevDirec;//记录上一次的方向
void SetBackground();//设置背景
void ShowBackground();//背景输出
void gotoxy(int x, int y); //移动光标的函数到指定的位置的的函数
void Hidden();//光标隐藏
void GameOver();
void ShowTime();//显示系统时间
class SnakeNode {
private:
SnakeNode *front, *next;
public:
int x, y;
void AddSnakeHead(int xx, int yy);
void DelSnakeTail();
int GetSnakeX() {
return x;
}
int GetSnakeY() {
return y;
}
void Release();
}*Head = NULL, *Tail = NULL;
void SnakeNode::AddSnakeHead(int xx, int yy) {
SnakeNode *prt = new SnakeNode;
prt->x = xx;
prt->y = yy;
if(Head != NULL) {
prt->next = Head