#include "mechanics.h"


bool isGameOver()
{

		int j;
		for(j = dane.serpentLength - 1 ;j > 0; j--)
		{
			if (bodyCoordinatesX[0]==bodyCoordinatesX[j] && bodyCoordinatesY[0]==bodyCoordinatesY[j]) return 1;
		}

	return 0;
}


int MoveSerpent(int *ch)
{
		int k;

		switch(*ch)
		{
		case KEY_LEFT:
			if (dane.x != dane.minX)
				dane.x--;
			else
				dane.x = dane.maxX;
			
			for(k = dane.serpentLength - 1 ;k > 0; k--)
			{
				*(bodyCoordinatesX+k) = *(bodyCoordinatesX+k-1);
				*(bodyCoordinatesY+k) = *(bodyCoordinatesY+k-1);
			}
			*bodyCoordinatesX = dane.x;
			break;
		case KEY_RIGHT:
			if (dane.x != dane.maxX)
				dane.x++;
			else
				dane.x = dane.minX;
			for(k = dane.serpentLength - 1 ;k > 0; k--)
			{
				*(bodyCoordinatesX+k) = *(bodyCoordinatesX+k-1);
				*(bodyCoordinatesY+k) = *(bodyCoordinatesY+k-1);
			}
			*bodyCoordinatesX = dane.x;
			break;
		case KEY_UP:
			if (dane.y != dane.minY)
				dane.y--;
			else
				dane.y = dane.maxY;
			for(k = dane.serpentLength - 1 ;k > 0; k--)
			{
				*(bodyCoordinatesY+k) = *(bodyCoordinatesY+k-1);
				*(bodyCoordinatesX+k) = *(bodyCoordinatesX+k-1);
			}
			*bodyCoordinatesY = dane.y;
			break;
		case KEY_DOWN:
			if (dane.y != dane.maxY)
				dane.y++;
			else
				dane.y = dane.minY;
			for(k = dane.serpentLength - 1 ;k > 0; k--)
			{
				*(bodyCoordinatesY+k) = *(bodyCoordinatesY+k-1);
				*(bodyCoordinatesX+k) = *(bodyCoordinatesX+k-1);
			}
			*bodyCoordinatesY= dane.y;
			break;
		default:
			break;
		}
return 0;
}
