[c++][2IR] Projet 1 : Othello

Page 2 sur 2 Précédent  1, 2

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

Re: [c++][2IR] Projet 1 : Othello

Message  smb le Lun 28 Nov 2011, 23:05

galaeron a écrit:Tout à fait ! La conversion est clairement à faire de mon coté !
Mais je ne comprends pas dans la doc quand vous dites :
"colonne lettre de la colonne où placer le pion, parmi 'a', 'b', 'c', ..."
Si j'ai bien compris je dois passer l'int correspondant à 'a' à la méthode?
(edit : cf ascii table?)

Par curiosité, va un peu voir le prototype de la fonction de la librairie standard strchr Shocked

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  galaeron le Mar 29 Nov 2011, 18:07

Ok, j'ai compris, merci de votre aide !

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: [c++][2IR] Projet 1 : Othello

Message  LoopinG le Mar 29 Nov 2011, 20:09

Bonsoir tout le monde,

j'ai un soucis avec la méthode pionsEncadres qui me sort constamment une error comme quoi ma case est vide ce qui est peu probable !

Voilà les bouts de code en question :

Code:

//initialisation du plateau
Plateau::Plateau(int ligne, int colonne) : tab(ligne, vector<OthelloOutils::Etat>(colonne)){  //La notation ":" s'appelle la liste d'initiation, qui est une façon d'initialiser les attributs de la classe.
   // TODO Auto-generated constructor stub

   int i,j;

   this->ligne = ligne;
   this->colonne = colonne;

   for(i=0; i < ligne ; i++){
      for(j=0; j < colonne; j++){
         tab [i][j] = OthelloOutils::VIDE;
      }
   }

   tab[(ligne/2)-1][(colonne/2)-1] = OthelloOutils::BLANC;
   tab[(ligne/2)-1][(colonne/2)] = OthelloOutils::NOIR;
   tab[(ligne/2)][(colonne/2)-1] = OthelloOutils::NOIR;
   tab[(ligne/2)][(colonne/2)] = OthelloOutils::BLANC;

}

//dans un bout de code a part dans la classe plateau, je test avec des valeurs possibles !

const vector<vector <OthelloOutils::Etat> > plateau = tab;                    //tab est un vector de vector initialiser par défaut à 8*8

int col = 'c';                        //colonne ou sera mis le pion
int line = 4;                          //ligne ou sera mis le pion
unsigned cpt;
if(OthelloOutils::estPlacementPossible(pionBlanc, line, col, plateau)){        //passe bien donc il y a un emplacement possible !

cpt = OthelloOutils::pionsEncadres (line, col, OthelloOutils::DROITE , plateau);                    //=> BUG ICI voir error en dessous !


}

ERREUR : PE- othellier[rangée][colonne] : est VIDE                                            //c'est l'erreur qui met rangée et colonne !


ps: j'ai déjà tout try catch c'est pas le soucis !

Mais je ne comprends pas pourquoi sa bug ! ai je mal compris la méthode !?


Dernière édition par LoopinG le Mar 29 Nov 2011, 22:25, édité 1 fois

LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  galaeron le Mar 29 Nov 2011, 21:56

Tu dois le placer avant de faire estPionsEncadres()

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: [c++][2IR] Projet 1 : Othello

Message  smb le Mar 29 Nov 2011, 22:05

Ton bout de code ne permet évidemment pas de comprendre !

1) tu utilises comme arguments line (inconnu dans ton bout de code) et col
2) comment tab est-il initialisé ? impossible de le savoir avec ton bout de code
3) ranger c'est quoi ?
4) as-tu bien lu la doc relative aux deux méthodes fournies ? pas sûr

si tu ne fais pas l'effort d'un minimum de rigueur dans tes questions, je crois que tu devras te passer de mon aide, et probablement de celle de beaucoup d'autres lecteurs (sauf galaeron Wink ) !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  LoopinG le Mar 29 Nov 2011, 22:32

smb a écrit:Ton bout de code ne permet évidemment pas de comprendre !

1) tu utilises comme arguments line (inconnu dans ton bout de code) et col
2) comment tab est-il initialisé ? impossible de le savoir avec ton bout de code
3) ranger c'est quoi ?
4) as-tu bien lu la doc relative aux deux méthodes fournies ? pas sûr

si tu ne fais pas l'effort d'un minimum de rigueur dans tes questions, je crois que tu devras te passer de mon aide, et probablement de celle de beaucoup d'autres lecteurs (sauf galaeron Wink ) !

J'ai rééditer mon code ci dessus avec les corrections apportés (fautes de distractions)

j'ai bien lu la doc je peux même vous donner le lien !

Le soucis que je voulais savoir cette méthode estPlacementPossible (Méthode qui vérifie si un placement d'un pion est possible dans la case donnée par [rangee,colonne]. Attention, elle ne place pas le pion! ) elle m'indique si mon pion peut se placer à coté d'un autre pion de la couleur opposé c'est cela ? et elle ne vérifie en aucun cas le placement possible avec encadrement donc en respectant les règles !?


LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  galaeron le Mar 29 Nov 2011, 22:52

estPlacementPossible ...
Quel est la définition d'un placement possible ... Il doit pour cela respecter les règles non?
estPlacementPossible() verifie que tu puisse le placer la ou tu lui dis, si il te renvois true place ton pion et alors SEULEMENT fais appel à estPionsEncadres()
Car si tu lis la std::logic_error renvoyé tu verras qu'il te dit qu'il n'y a rien a l'emplacement spécifié ...

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: [c++][2IR] Projet 1 : Othello

Message  pbt le Mer 30 Nov 2011, 09:05

LoopinG a écrit:j'ai bien lu la doc je peux même vous donner le lien !
[HS]Tu proposes de donner le lien vers la doc que t'a fourni smb à smb pour lui montrer que tu l'as lue. J'ai bien compris ?
Moi j'ai lu toute la doc de JUinit un jour. Pour preuve, voici le lien ;-) [/HS]

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  Jaune le Jeu 01 Déc 2011, 20:13

bonjour,
cette fonction me pose probleme;
static unsigned int pionsEncadres(int rangee, int colonne, OthelloOutils::Dir direction, const std::vector < std::vector<OthelloOutils::Etat> > & othellier )
throw (std::logic_error);

voici une partie de mon code:
OthelloOutils::Dir direction[8];
this->direction[0] = OthelloOutils::BAS;
this->direction[1] = OthelloOutils::BASDROITE;
this->direction[2] = OthelloOutils::BASGAUCHE;
this->direction[3] = OthelloOutils::DROITE;
this->direction[4] = OthelloOutils::GAUCHE;
this->direction[5] = OthelloOutils::HAUT;
this->direction[6] = OthelloOutils::HAUTDROITE;
this->direction[7] = OthelloOutils::HAUTGAUCHE;

un exemple
et quand j'utiliser int nbPionEncadrer = OthelloOutils::pionsEncadres(ligne,col,this->direction[0],this->plateau);
j'ai l'erreur PE- direction : inconnue ?????

merci d'avance


Dernière édition par Jaune le Jeu 01 Déc 2011, 20:42, édité 1 fois

Jaune

Nombre de messages : 7
Prénom : Tuan
Date d'inscription : 08/05/2011

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  Jaune le Jeu 01 Déc 2011, 20:41

galaeron a écrit:
Code:
   /*!
    * \brief tableau de constantes de Position qu'il faut ajouter
    *        à une Position pour aller dans une direction donnée
    *        (correspondant à une des valeurs de l'énumération Dir)
    *
    */
static const Position dirDelta[8] ;
Si je ne me trompe pas ...
C'est un tableaux de positions, chacune d'entre elles caractérise une direction de par son contenu mais ça n'en fait pas une direction pour autant ...
dirDelta[1] correspondant à un déplacement vers le haut contient donc la Position(0,-1).
Pourquoi le programme renvois donc une erreur? Parce que tu lui donnes une position et pas une direction ...

Qu'est ce que tu ne comprends pas dans l'appel a la fonction?
C'est bien une direction que j'affecte a un element de mon tableau non?
direction[0] = OthelloOutils::BAS;
et quand j'utiliser int nbPionEncadrer = OthelloOutils::pionsEncadres(ligne,col,this->direction[0],this->plateau);

Jaune

Nombre de messages : 7
Prénom : Tuan
Date d'inscription : 08/05/2011

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  galaeron le Jeu 01 Déc 2011, 20:45

EDIT : Ah je vois que tu as edit aussi ton message pour corriger la faut de frappe =')

PS : Oui, désolé j'ai edit en relisant ton code =')

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: [c++][2IR] Projet 1 : Othello

Message  Jaune le Jeu 01 Déc 2011, 20:51

affaire résolue^^ merci, c'était à cause d'une mauvaise déclaration...Tout peut être si mal interprété pas seulement en amour lol!

Jaune

Nombre de messages : 7
Prénom : Tuan
Date d'inscription : 08/05/2011

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  galaeron le Jeu 01 Déc 2011, 20:59

Exactement ce que j'allais te dire, chez moi je n'avais aucun soucis =)

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: [c++][2IR] Projet 1 : Othello

Message  galaeron le Ven 09 Déc 2011, 20:44

Question "exactitude et bonnes pratiques" est il préférable de "stocker" les fonctions d'affichage dans un autres fichier que le main, un namespace (autre)?

Merci d'avance.

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: [c++][2IR] Projet 1 : Othello

Message  smb le Ven 09 Déc 2011, 23:01

galaeron a écrit:Question "exactitude et bonnes pratiques" est il préférable de "stocker" les fonctions d'affichage dans un autres fichier que le main, un namespace (autre)?

Merci d'avance.

...namespace pourquoi pas, classe d'affichage avec des méthodes "static" pourquoi pas ...
... et pattern "Observateur" pourquoi pas ?

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [c++][2IR] Projet 1 : Othello

Message  galaeron le Ven 09 Déc 2011, 23:57

Merci de votre réponse.
Pour le moment j'ai :

[*] Pattern Observateur
[*] Fonctions d'affichage regroupées dans un fichier un .cpp (les prototypes étant dans un fichier Affichage.h) et je fais un #include "Affichage.h" dans mon Othello.cpp (contenant le main())

J'avais au départ créer une classe avec des méthodes d'affichage statiques mais on (un professeur) m'a conseillé de faire des fonctions et donc je ne vois pas l'utilité du namespace dans ce cas la, mais comme j'ai vu qu'il en était question dans un autre sujet je me demandais si c'était AUSSI d'application dans ce cas là, et si oui j'irais me documenter =)

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: [c++][2IR] Projet 1 : Othello

Message  Contenu sponsorisé Aujourd'hui à 15:14


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

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