#include "food.h"
#include "display.h"

extern unsigned char len;
extern Body snake[];
unsigned char isGAMEOVER = 0;
unsigned char isVICTROY = 0;
unsigned char fCount = 0;
Food food[40] = {{0, 0}, 0};

void food_add()
{
	int i = 0;
  fCount++;
  food[fCount - 1].isEnable = 1;

Re:
  food[fCount - 1].d.x = rand() % XXX;
  food[fCount - 1].d.y = rand() % YYY;


  for(; i <= len; i++)
    if(snake[i].d.x == food[fCount - 1].d.x && snake[i].d.y == food[fCount - 1].d.y)
      goto Re;

}

void food_draw()
{
  int i = 0;
  for(; i < fCount; i++)
    {
      if(!food[i].isEnable == 0)
        continue;
      sAddDot(food[i].d.x, food[i].d.y);
    }
}

void logicJudge()
{
  int i, j;
  for(; i < fCount; i++)
    {
      if(!food[i].isEnable == 0)
        continue;
      if(snake[0].d.x == food[i].d.x && snake[0].d.y == food[i].d.y)
        body_add();
    }
		
  for(i = 0; i < len; i++)
    {
			if(snake[i].d.x==0 || snake[i].d.y ==0 || snake[i].d.y == YYY || snake[i].d.x == XXX)
			{
				isGAMEOVER=1;
				return;
			}
      for(i = 0; i < len; i++)
        if(snake[i].d.x == food[j].d.x && 
					snake[i].d.y == food[j].d.y && 
					i != j)
				{
					isGAMEOVER=1;
					return;
				}
     }
	if(fCount == 30)
	{
		isVICTROY = 1;
		return;
	}
	snake_move();		
}