思考:可以困死,因为我们判断距离的时候是不会考虑障碍物的,也许蛇头走的方向确实距离食物短,但是吃食物的程序会让蛇头遇到障碍物返回,进入死循环
概述:遍历寻找蛇头的位置,从头到尾依次寻找食物,找到一个食物之后,调用whereGoNext()判断四个方向哪一个距离食物最近,走一步,更新蛇头的位置,重复直到全部食物都被吃掉。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<math.h>
#include<windows.h>//linux使用unistd.h
#define SNAKE_MAX_LENGTH 20
#define SNAKE_HEAD 'H'
#define SNAKE_BODY 'X'
#define BLANK_CELL ' '
#define SNAKE_FOOD '$'
#define WALL_CELL '*'
//void snakeMove(int,int);
//void put_money(void);
int snakeX[SNAKE_MAX_LENGTH]={
5,4,3,2,1};//蛇头是第一个,方便加身体长度
int snakeY[SNAKE_MAX_LENGTH]={
1,1,1,1,1};
int snakeLength=5;
char map[12][13]=//卧槽,字符结尾还有\0
{
"************",
"*XXXXH $ *",
"* *",
"* $ *",
"* *",
"* *",
"* $ *",
"* *",
"* *",
"* $ *",
"* *",
"************"
};
void output()
{
int i;
for(i=0;i<12;i++)
{
printf("%s\n",