/*
 *  Masque.h
 *  TicTaeToe
 *
 *  Created by Lionel BUCHELE on 04/05/11.
 *  Copyright 2011 EFREI. All rights reserved.
 *
 */



// _________________________
// Date : 4 mai 2011
// Function : Garde en stock les masques
// 
// _________________________

#include <iostream>
//#include "plateau.h"

typedef struct masque{

	int x1,x2,y1,y2;
	masque *suivant;
}masque;

typedef masque *pmasque;


pmasque CreateNodeMasque(int x1,int y1, int x2,int y2)
{
	pmasque n = (masque*)malloc(sizeof(masque));
	n->x1 = x1;
	n->y1 = y1;
	n->x2 = x2;
	n->y2 = y2;
	n->suivant = NULL;
}

void Add(pmasque n,int x1,int y1, int x2,int y2)
{
	while(n->suivant != NULL)n = n->suivant;
	n->suivant = (masque*)malloc(sizeof(masque));
	n = n->suivant;
	n->x1 = x1;
	n->y1 = y1;
	n->x2 = x2;
	n->y2 = y2;
	n->suivant = NULL;

}

void deleteNode(pmasque n)
{
	while(n != NULL)
	{
		pmasque temp = n;
		n = n->suivant;
		free(temp);
	}
}

// _________________________
// Date : 4 mai 2011
// Function : Verifie que la case n'est pas déja dans un masque
// _________________________
bool verifMasque(pmasque n, int x, int y)
{
	bool v = false;
	while(n != NULL && v == false)
	{
				int comparatifX = n->x1;
		int comparatifY = n->y1;
		if(n->x1 < n->x2 && n->y1 < n-> y2)
		{
			while(comparatifX != n->x2 && comparatifY != n->y2 && v ==false)
			{
				if(comparatifX == x && comparatifY == y)v = true;
				else 
				{
					comparatifX++;
					comparatifY++;
				}

			}
		}
		else if(n->x1 < n->x2 && n->y1 > n-> y2)
		{
			while(comparatifX != n->x2 && comparatifY != n->y2 && v ==false)
			{
				if(comparatifX == x && comparatifY == y)v = true;
				else 
				{
					comparatifX++;
					comparatifY--;
				}
				
			}
		}
		if(x == n->x2 && y == n->y2)v=true;
		n = n->suivant;
	}
	return v;
}
