estCoupPossible[c++]

Voir le sujet précédent Voir le sujet suivant Aller en bas

estCoupPossible[c++]

Message  didi le Ven 09 Déc 2011, 22:02

j'ai une methode qui verifie si un joueur a le possibilité de faire un coup
je parcour le plateau et si il y a une case vide et il est possible de faire estPlacementPossible
alors j'arrete le parcour retourn vrai faux sinon (si il n'a pas il passe son tour )

Si, à votre tour de jeu, vous ne pouvez pas
poser un pion en retournant un pion adverse
suivant les règles, vous devez passer votre
tour et c’est à votre adversaire de jouer. Mais
si un retournement est possible, vous ne
pouvez vous y soustraire.

main :
Code:

int main() {
   EtatPartie etat; // le constructeur pardeault construit le plateau  avec 3x3
   etat.getPlateau().placePion(Position(1,1),OthelloOutils::BLANC);
   etat.getPlateau().placePion(Position(0,2),OthelloOutils::NOIR);
   etat.getPlateau().placePion(Position(1,0),OthelloOutils::BLANC);

   etat.changeJoueurCourant();
   cout << etat;
   etat.joueurunCoup();

   return 0;
}


mais j'ai problem avec la methode OthelloOutils::estPlacementPossible je ratrappe l'Exception ...

Code:
bool EtatPartie::estCoupPossible(Joueur joueur)   {
   bool possible = false;
   bool color = false;
   char col ;
   unsigned int i = 0,j;
   if(joueur.getCouleur() == OthelloOutils::BLANC)   {
      color = true;
   }

   while(i < plateau.getTableau().size() && !possible)   {
      j = 0;
      col = 'a';
      while( (i < plateau.getTableau().size()) && (j < plateau.getTableau()[i].size())&& !possible  ){

         cout << "\nDans coupPossible Ligne est : " << i ;
   //      cout << "\nDans coupPossible colonne est : " << j ;
   //      cout << "\nDans coupPossible col  est : " << col ;

      try {
         
         if((plateau.getTableau()[i][j] == OthelloOutils::VIDE) && OthelloOutils::estPlacementPossible(color,i+1,col,plateau.getTableau()) {
            possible =true;
         }
      } catch(std::logic_error e){
         cout <<"\n" << e.what();
      }
         col++;
         j++;
      }
      i++;
   }
return possible;

}


les resultats :


Code:

   ==============================================
           OTHELLO      
   ==============================================

              a  b  c
          =============
       1  | B | N | N |  1
          =============
       2  | B | B |    |  2
          =============
       3  |  |    |    |  3
          =============
              a  b  c

      LE JOUEUR COURANT EST       : BLANC
      LE JOUEUR SUIVANT EST       : NOIR
      LE JOUEUR GAGNANT EST       : VIDE
      LES NOMBRES DE PION NOIR    : 2
      LES NOMBRES DE PION BLANC    : 3
      LES NOMBRES DE CASE VIDE    : 4
   ==============================================
           OTHELLO      
   ==============================================

Dans coupPossible Ligne est : 0
Dans coupPossible Ligne est : 0
Dans coupPossible Ligne est : 0
Dans coupPossible Ligne est : 1
Dans coupPossible Ligne est : 1
Dans coupPossible Ligne est : 1
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 2
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 2
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 2
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 0
Dans coupPossible Ligne est : 0
Dans coupPossible Ligne est : 0
Dans coupPossible Ligne est : 1
Dans coupPossible Ligne est : 1
Dans coupPossible Ligne est : 1
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 2
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 2
EPP- othellier : taille incorrecte
Dans coupPossible Ligne est : 2
EPP- othellier : taille incorrecte

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: estCoupPossible[c++]

Message  galaeron le Ven 09 Déc 2011, 22:16

cppProjet1.pdf a écrit:Notez que par rapport aux règles originales, une
modification est apportée concernant la taille de l'othellier qui ne doit pas être nécessairement un 8 x 8 : il
peut avoir un nombre pair de rangées Є [4,12] ainsi qu'un nombre pair de colonnes Є [4,12]
=)

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

Re: estCoupPossible[c++]

Message  didi le Ven 09 Déc 2011, 22:22

galaeron a écrit:
cppProjet1.pdf a écrit:Notez que par rapport aux règles originales, une
modification est apportée concernant la taille de l'othellier qui ne doit pas être nécessairement un 8 x 8 : il
peut avoir un nombre pair de rangées Є [4,12] ainsi qu'un nombre pair de colonnes Є [4,12]
=)

Merci artur
donc c-à-d la ligne est le colonne de plateau sont toujour pair ... ?

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: estCoupPossible[c++]

Message  galaeron le Ven 09 Déc 2011, 22:25

Pas de quoi Dinesh Wink
En effet les dimensions possibles font parties de l'ensemble {
[4,4][4,6][4,8][4,10][4,12]
[6,4][6,6][6,8][6,10][6,12]
[8,4][8,6][8,8][8,10][8,12]
[10,4][10,6][10,8][10,10][10,12]
[12,4][12,6][12,8][12,10][12,12]}

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

Re: estCoupPossible[c++]

Message  didi le Ven 09 Déc 2011, 22:52

galaeron a écrit:En effet dimensions possible
[4,4][4,6][4,8][4,10][4,12]
[6,4][6,6][6,8][6,10][6,12]
[8,4][8,6][8,8][8,10][8,12]
[10,4][10,6][10,8][10,10][10,12]
[12,4][12,6][12,8][12,10][12,12]
merci bcp
et bonne soiree

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: estCoupPossible[c++]

Message  Contenu sponsorisé Aujourd'hui à 14:44


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum