学校换了一套多媒体设备,网络暂时断了,于是我想到可以编一个贪吃蛇来玩。本来懒得编的,想到网上抄一段出去,但是找了几段发现都不是很好,要么有漏洞,要么画面缺陷,而且我就没找到一段我能真正看懂的代码(全是真正的c++大佬编的吧,函数头我是一点都看不懂。。。)。于是乎我只能自己抽了点时间编了一段出来,除了一些对画面进行强行的操作的代码外,主要的思路和代码都是我自己想出来写出来的,如有雷同请通知我删除。
本程序。。。我想应该是比较浅显了,我估摸着不管前面几个花里胡哨的函数的话,学过c++语言的应该都看得懂。其中有运用了一些<windows.h>中的函数,若是看不太懂或不理解什么意思请自行百度,本文不再多加赘述。
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#define X1 10
#define X2 60
#define Y1 5
#define Y2 25
using namespace std;
int rand_int(int x,int y);
bool check(int a,int b);
void run();
void work();
void move();
void reset();
void action();
void print_map();
void rand_clean();
void HideCursor();
void set_point(int n);
void point_check(int n);
void gotoxy(int x,int y);
void print_point(int x,int y);
int mark=0,COUNT=0,length=1,number=0,last=0,first=1,score=0,X=X1,Y=Y1;
char direction='d',D='d',_direction='d';
bool alive=1;
struct points
{
int x;
int y;
int k;
};
points point[100000];
struct SNAKE
{
int x;
int y;
char d;
};
SNAKE snake[100000];
void HideCursor()//隐藏光标
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void gotoxy(int x,int y)//坐标移动
{
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
int rand_int(int x