/*
 *  plateau.cpp
 *  TicTaeToe
 *
 *  Created by Lionel BUCHELE on 29/04/11.
 *  Copyright 2011 EFREI. All rights reserved.
 *
 */

#include "plateau.h"
#include "math.h"

plateau::plateau(int Longueur, int Hauteur, int p)
{
	int difference;
	this->n = Longueur;
	this->m = Hauteur;
	this->libre = Hauteur*Longueur;
	difference = Longueur - Hauteur;
	if(difference<0)Hauteur = Hauteur - difference;
	else Longueur = Longueur- difference;
	
	
	this->cellule = new Case*[this->n];
	for(int i =0;i<n;i++)this->cellule[i] = new Case[this->m];
}

plateau::alignement()
{
	int nb_zero=0,i,j,k,val;
	int Matrice[this->n][this->m];
	
	//Initialisation
	for(int j = 0;i<this->n;i++)
	{
		for(int i =0;j<this->m;j++)
		{
			Matrice[i][j] = 0;
		}
	}
	
	//Lignes
	for(int i = 0;i<this->n;i++)
	{
		for(int j =0;j<this->m;j++)
		{
			if(cellule[i][j] == 0)
			{
				if(nb_zero == 0)		
				 debut = j;
				else
					fin = j;
				
				nb_zero = nb_zero+1;
			}
			else 
			{
				if(nb_zero >=P)
				{
					for (k=debut; k<=fin; k++) 
					{
						Matrice[i][k] = 1;
					}
				}
				nb_zero = 0;
			}
		}
	}
		
		//COLONNES
				if(cellule[i][j] == 0)
				{
					if(nb_zero == 0)		
						debut = j;
					else
						fin = j;
					
					nb_zero = nb_zero+1;
				}
				else 
				{
					if(nb_zero >=P)
					{
						for (k=debut; k<=fin; k++) 
						{
							Matrice[k][j] = 1;
						}
					}
					nb_zero = 0;
				}
			}
		}

		//Diagonales
		for(int i = 0;i<this->n;i++)
		{
			for(int j =i+1;j<this->m;j++)
			{
				val = i;
				val = val+1;
			
				if(cellule[i][j] == 0)
				{
					if(nb_zero == 0)		
						debut = j;
					else
						fin = j;
					
					nb_zero = nb_zero+1;
				}
				else 
				{
					if(nb_zero >=P)
					{
						for (k=debut; k<=fin; k++) 
						{
							Matrice[i][k] = 1;
						}
					}
					nb_zero = 0;
				}
			}
		
}

plateau::~plateau()
{
	for(int i = 0; i<m;i++)delete[] this->cellule[i];
	delete[] this->cellule;
}