#include "types.h"
#include "ArbreCL.h"
#include "Grille.h"
#include "MinMax.h"
#include "PileCL.h"

void main()
{
  
  int count=0,victoire=0,eval=0,profmax=5;
  int col,joueur,coupvalide,sugg;
  Grille grille;PileCL Pile;

  cout<<endl<<"Choississez une profondeur de recherche pour le MinMax:";
  cin>>profmax;

  joueur=1;
  grille.Afficher();

  do
    {
      count++;
      
      //Minmax:
      cout<<endl<<"Minmax:";
      sugg=MinMax(grille,joueur,profmax);cout<<endl<<"Conseil Minmax:"<<sugg+1<<endl;
      do
	{
	  //entrer une colonne de 1 à 7
	  cout<<endl<<">>>>>>"<<count<<": Entrez un coup, joueur "<<joueur<<":";
	  cin>>col;col--;
	  coupvalide=grille.Tester(joueur,col);
	}
      while(!coupvalide);

      //le coup est ratifié: on peut le jouer
      Pile.Empiler(col); grille.Jouer(joueur,col);
      //on évalue la situation suivante du point de vue du joueur en cours
      eval=grille.Evaluer(joueur);victoire=grille.TesterVictoire(joueur);
      cout<<"Evaluation joueur"<<joueur<<" : "<<eval<<" ,vic="<<victoire<<endl;
      //on affiche le jeu courant
      grille.Afficher();
     

      //on donne la main au joueur suivant
      grille.InverseJoueur(joueur);

     
    }
  while ((count<42)&&(victoire==0));

  /*for (count=42;count>0;count--)
    {
      cout<< "Dernier coup n" << count << ":" << Pile.ValeurSommet()->coup << endl;
      grille.DeJouer(joueur,Pile.ValeurSommet()->coup);Pile.Depiler();
      grille.InverseJoueur(joueur);
      grille.Afficher();
    }
    */
}
















