public void move(int i)
	{
		if (i >= movementSpeed)
		{
			return;
		}

		SnakePiece tail = getTail();
		moveSnakePieces(createHeadWithNextPosition(direction));

		if (isConsuming && growSize > timesGrown)
		{
			addTail(tail.x, tail.y);
			timesGrown++;

			if (growSize == timesGrown)
			{
				timesGrown = 0;
				isConsuming = false;
			}
		}

		if (!consumedLoosePieces.isEmpty())
		{
			consumeLooseSnakePieces(tail);
		}
		hasMovedAfterLastDirectionChange = true;
	}