[LAJ1] les coups gagnants

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

[LAJ1] les coups gagnants

Message  Jhon le Lun 06 Avr 2009, 23:27

Bonjour,

Je suis occupé à coder les différents coups, et j'ai l'impression d'un peu tourner en rond et de faire la même chose plusieurs fois. Mais voyons d'abord si j'ai bien compris (google n'a rien trouvé à ce sujet sur le forum) : un coup est considéré gagnant lorsque le pion a encore un mouvement à faire (une case à parcourir) une fois qu'il est sur sa position d'arrivée ET la position d'arrivée doit être sur la dernière ligne opposée. De cette façon, on simule que la dernière case à parcourir est la "case but" qu'on voit sur le plateau du véritable jeu.
Est-ce bien exact ?

Si oui, pourquoi ne pas avoir fait, dans chaque coup (Deplacement, Rebond, Remplacement), une courte méthode estGagnant() qui vérifie les conditions ci-dessus ? Il suffirait alors d'utiliser cette méthode dans la méthode effectuer() pour savoir s'il faut déclarer la partie finie et tutiquanti, et les classes DeplacementGagnant etc sont obsolètes.
Cela me paraîtrait bien plus court, évite pas mal de répétitions de code (tant dans les coups que dans les tests) et rendrait les coups plus clairs.

Si je suis pas clair, vous cassez pas la tête hein, c'est quand même les vacances ^^

@+,

Jhon

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Invité le Mar 07 Avr 2009, 00:11

Beh dans la classe Chemin fourni tu as à ta dispo 2 methodes statiques dont l'une qui s'appelle si je ne me trompe pas estCheminPossibleArrivee(...) qui est utilisé pour le deplacementGagnant et rebondGagnant(), et une 2ème methodes CheminPossible() qui est utilisé pour le rebond et deplacement.

Qd tu lira les paramètres de ces 2 methodes tu comprendra leur rôle.

J'espère avoir arreté la boucle infini, je pense au fait que tu tourne au rond, lol Very Happy. ( Ctrl-C)

Invité
Invité


Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Jhon le Mar 07 Avr 2009, 09:42

estCheminPossibleArrivee
Ah oui tiens, je l'avais oubliée celle-là ^^ Bah ça simplifie les vérifications mais ça n'empêche pas le code d'être répétitif, donc ma question subsiste Smile

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Invité le Mar 07 Avr 2009, 13:42

Beh oui, bien sûr, of course,

c'est logique que tu vérifie dans methodes des coups si la partie n'est pas finie, si c'est le 1er coup est à vrai ou à faux, en fonction du coup que tu vx effectuer, etc...

Je ne comprends pas cette phrase " ma question subsiste" .

Je crois que tu as repondu à toi-même dans le msg de ton post qu'il y a du repétitif,

mais alors ça te gene de taper la même chose ou c'est quoi?

Exprime toi, vas-y.

Invité
Invité


Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Jhon le Mar 07 Avr 2009, 20:51

mais alors ça te gene de taper la même chose ou c'est quoi?
Compare tes classes coups... plus de 50% du code est strictement identique. Comme tu le sais via nos cours de langages, mieux vaut éviter du code qui se répète et penser plutôt à le rendre réutilisable. Si on avait une seule classe Coup, qui demande la position de départ, la position d'arrivée, puis effectue les vérifications de validité et les conditions de victoire (et qui demande s'il faut faire un rebond ou un remplacement au cas où la case d'arrivée n'est pas vide), le code serait plus concis, bien moins répétitif, et certainement plus facile à tester également. Une telle méthode unique ne complique pas non plus les choses pour l'ajout d'une interface graphique l'année prochaine (du moins je crois).

Donc, pourquoi ne pas faire comme ça ? C'est ça, ma question Wink

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Invité le Mar 07 Avr 2009, 23:23

Beh oui tu as raison sur ce point.

Mais sans vouloir te vexer, ni vexer qui que ça soit d'autre.

Les profs ont bossé sur l'analyse de ce projet, ils ont fait le meilleur d'eux, je ne crois pas que tu pourrais faire mieux qu'eux.

Mais tente toujours de changer d'apporter qch de nouveau, de toi.

Moi j'ai essayé de faire la classe Chemin, mais j'ai laissé tombé car c'était pas ma tasse de thé.

Donc je suis assez content avec ce qu'on nous fourni, je crois que la majorité de ESI en fait de même que moi.

Invité
Invité


Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Jhon le Mer 08 Avr 2009, 01:24

ils ont fait le meilleur d'eux, je ne crois pas que tu pourrais faire mieux qu'eux
Oui... et non. Oui car c'est clair qu'avec l'expérience qu'ils ont derrière eux, y'a peu de chances que je réussisse des analyses/programmes aussi poussés que les leurs (du moins à ce stade de mes études *dikkenek inside*). Mais dans le cadre des projets, ils peuvent très bien abaisser volontairement le niveau pour nous pousser à chercher s'il n'y a pas une meilleure façon de faire. Ça me surprendrait pas d'avoir des questions du style "pourquoi avoir codé xx de telle façon ? n'as-tu pas vu un meilleur procédé ?" lors des défenses de projet Smile

j'ai essayé de faire la classe Chemin
Pourquoi réinventer la roue ? C'est plus intéressant de la lire au complet et bien comprendre ce qu'elle fait. D'ailleurs c'est pas en soi difficile... C'est juste qu'il "fallait y penser" (j'étais sur le c* en voyant l'utilisation des strings dans les tests), ce genre d'astuce on est supposés pouvoir les trouver tout seul dès l'année prochaine non ? Smile

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Invité le Mer 08 Avr 2009, 11:56

Beh oui, l'année prochaine on va faire des trucs comme ça en 2ème, et oui tu pourra alors faire l'analyse toi-même, tu t'amusera bien.
Very Happy

Invité
Invité


Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  mcd le Dim 12 Avr 2009, 11:55

@Jhon a écrit:Compare tes classes coups... plus de 50% du code est strictement identique. Comme tu le sais via nos cours de langages, mieux vaut éviter du code qui se répète et penser plutôt à le rendre réutilisable. Si on avait une seule classe Coup, qui demande la position de départ, la position d'arrivée, puis effectue les vérifications de validité et les conditions de victoire (et qui demande s'il faut faire un rebond ou un remplacement au cas où la case d'arrivée n'est pas vide), le code serait plus concis, bien moins répétitif, et certainement plus facile à tester également. Une telle méthode unique ne complique pas non plus les choses pour l'ajout d'une interface graphique l'année prochaine (du moins je crois).

Donc, pourquoi ne pas faire comme ça ? C'est ça, ma question Wink
La raison principale est la suivante : la bonne conception orienté-objet conseille d'"isoler le changement", c'est-à-dire d'isoler le code qui va évoluer lors de la vie du programme.
C'est la conséquence de principe d'"ouverture-fermeture" : ne pas toucher à du code qui fonctionne mais permettre quand même qu'il évolue.
Ici, on imagine que si le programme doit changer c'est suite à une variante qui introduit de nouveaux types de coups. Si c'est le cas, il te suffira d'ajouter une classe Coup sans toucher à celles qui existent.

Oui mais c'est bête de dupliquer du code ! En effet, mais personne ne t'y oblige. Si tu vois du code qui se répète, tu peut le mettre dans une classe à part, utilisée par plusieurs types de coups. C'est d'ailleurs ce qu'on a fait avec la classe chemin Very Happy

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Jhon le Dim 12 Avr 2009, 13:07

Ici, on imagine que si le programme doit changer c'est suite à une variante qui introduit de nouveaux types de coups
Moui... c'est vrai que si on avait un jeu qui comportait toute une flopée de coups (genre jeu d'échec), ça serait plus confortable de séparer les coups en classes distinctes. Merci pour la réponse Smile

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [LAJ1] les coups gagnants

Message  Contenu sponsorisé Aujourd'hui à 20:45


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