贪吃蛇小游戏

╭(╯^╰)╮不是自己写的,但是总会自己敲得

#include
#include
#include
#include
#include
char gamemap[20][40];//游戏地图大小 20*40
int score = 0;//当前分数 
//记录蛇的结点
int x[800];//每个结点的行编号
int y[800];//每个结点的列编号
int len = 0;//蛇的长度

//记录水果信息 
int fx = 0;//食物的横坐标 
int fy = 0;//食物的纵坐标 
int fcount = 0;//食物的数目 

 //主要函数操作 
void createfood();//生成食物 
void PrintgameMap(int x[], int y[]);//画游戏地图 
void move(int x[], int y[]);//移动蛇 


int main()
{
	srand(time(NULL));
	//初始化蛇头和身体的位置,默认刚开始蛇长为2 
	x[len] = 9;
	y[len] = 9;
	len++;
	x[len] = 9;
	y[len] = 8;
	len++;

	createfood();
	PrintgameMap(x, y);
	move(x, y);
	system("pause");
	return 0;
}
void createfood(){
	if (0 == fcount)
	{
		int tfx = rand() % 18 + 1;
		int tfy = rand() % 38 + 1;
		int i, j;
		int have = 0;//为0表示食物不是食物的一部分 
		for (i = 0; i= 1 && j <= 38)
				gamemap[i][j] = '=';
			else if (i == 19 && j >= 1 && j <= 38)
				gamemap[i][j] = '=';
			else if (j == 0 || j == 39)
				gamemap[i][j] = '#';
			else
				gamemap[i][j] = ' ';
			//判断蛇是否在当前位置
			int k;
			for (k = 0; k < len; k++){
				if (i == x[k] && j == y[k]){
					snake = 1;
					break;
				}
				else
					snake = 0;
			}
			{
				if (fcount&&fx == i&&fy == j)
					food = 1;
				else
					food = 0;
			}
			//若蛇在当前位置
			if (1 == snake)
				printf("*");
			else if (1 == food)
				printf("f");
			//若蛇不在当前位置并且当前位置没有水果 
			else
				printf("%c", gamemap[i][j]);
		}
		printf("\n");
	}
	printf("score:%d", score);
}
//移动
void move(int x[], int y[]){
	char s;
	s = getch();
	int move = 0, beat = 0;
	while (1){

		int cx[800];
		int cy[800];
		memcpy(cx, x, sizeof(int)*len);
		memcpy(cy, y, sizeof(int)*len);
		//头

		if (s == 'w'){
			x[0]--;
			move = 1;
			if (x[0] <= 0){
				printf("Game over\n");
				break;
			}
		}
		else if (s == 's'){
			x[0]++;
			move = 1;
			if (x[0] >= 19){
				printf("Game over\n");
				break;
			}
		}
		else if (s == 'a'){
			y[0] --;
			move = 1;
			if (y[0] <= 0){
				printf("Game over\n");
				break;
			}
		}
		else if (s == 'd'){
			y[0]++;
			move = 1;
			if (y[0] >= 39){
				printf("Game over\n");
				break;
			}
		}

		//身体
		int i;
		for (i = 1; i < len; i++){

			x[i] = cx[i - 1];
			y[i] = cy[i - 1];

		}
		for (i = 1; i


你可能感兴趣的:(游戏)