Skip to content
This repository has been archived by the owner on Nov 6, 2018. It is now read-only.

mastermind #12

Open
PapiSido opened this issue Jan 27, 2018 · 9 comments
Open

mastermind #12

PapiSido opened this issue Jan 27, 2018 · 9 comments

Comments

@PapiSido
Copy link
Collaborator

PapiSido commented Jan 27, 2018

Ma version en ligne: mastermind.py
fonctionne en mode codeur et en mode solveur [ encodeur() et decodeur() ], mais le mode solveur semble parfois se tromper et déclarer "impossible" ce qui ne l'est pas, mais l'algorithme de résolution implique une (petite) part d'aléatoire, donc non reproductible ( le bug non reproductible, ... le cauchemar!!)
donc mastermind.3.py rendu déterministe, mais celui-là, je n'ai pas réussi à le faire bugger

Un grand merci à qui y parviendra, il suffit que vous me donniez le code choisi, je devrais pouvoir reproduire

Pour l'instant mon python est brut de décoffrage, mais je dois le reprendre assez fondamentalement pour séparer le codage ( utilisateur ou ordinateur ) du décodage (utilisateur ou ordinateur), un peu comme je l'avais fait pour puissance4. Ensuite je m'attaquerai à un interfaçage plus convivial, l'occasion de démarrer tkinter.

@parmentelat
Copy link
Owner

ce n'est pas très clair pour moi, en première lecture j'avais compris que la version aléatoire ne marchait pas, mais que la version déterministe marchait; mais en relisant j'ai un doute: vous êtes certain que la version déterministe a un bug ou bien c'est une conjecture ?

@parmentelat
Copy link
Owner

je rephrase maintenant que j'ai lu le code: pourquoi avez-vous choisi la valeur 25 pour idx0 dans la version déterministe ? est-il possible que le bug ne se produise que avec d'autres valeurs de idx0 ?

@parmentelat
Copy link
Owner

Comme c'est tout de même un peu hermétique sans commentaire du tout, ce que je peux vous proposer ça serait pour commencer d'unifier les deux fichiers en ajoutant des options sur la ligne de commande; pour

  • choisir la taille du problème
  • choisir le mode (arbitre / solveur)
  • activer ou pas le mode déterministe, donc
  • choisir le nom du fichier journal
    ...

@PapiSido
Copy link
Collaborator Author

Merci beaucoup Thierry,
Une nouvelle version mise en ligne, plus convaincante ( au moins pour moi) C'est maintenant la méthode partie( self, coder= 0 ou 1, solver = 0 ou 1 ) qui pilote la partie.
programme toujours non commenté, mais documenté (docstring) pour l'utilisateur, si pas assez clair me le dire
Le bug n'est toujours pas réapparu, donc traité par le mépris( je n'avais pourtant rien fumé d'illicite) , et de toute façon je devrais pouvoir le reconstituer en mode aléatoire à partir du moment où je connais la suite des coups joués, donc on oublie la version "déterministe"
Pour le fichier journal, ma stratégie habituelle est plutôt de lui donner toujours le même nom et de le renommer ou d'en sauvegarder tout ou partie lorsque cela me semble utile
Pour la ligne de commande, je vais approfondir la question pour apprendre à faire, mais en l’occurrence je compte aussi passer par tkinter en vue d'un interface plus convivial
Merci en tout cas de consacrer du temps à nos balbutiements

@parmentelat
Copy link
Owner

désolé car j'ai continué sur ma branche sans voir qu'il y avait du nouveau
donc dans la branche 'mastermind-thierry' j'ai fait ce dont je parlais, unifier les deux versions en une seule avec une ligne de commande qui permet de choisir le contexte du jeu
j'ai dans cette version implémenté l'option qui permet de choisir son journal (mettre - pour stdout)

ça n'est sans doute pas utile de reporter ça dans la branche master, surtout si l'étape suivante c'est tkinter, mais au moins jette un coup d'oeil, c'est très pratique je conseille de prendre l'habitude d'utiliser ça très tôt dans le développement..

@PapiSido
Copy link
Collaborator Author

Merci, je vais décrypter et adapter à la nouvelle version
En fait je n'ai pas l'habitude de passer les paramètres par ligne de commande. Une bonne occasion d'essayer de s'y mettre

@parmentelat
Copy link
Owner

parmentelat commented Jan 29, 2018 via email

@PapiSido
Copy link
Collaborator Author

C'est fait, j'ai modifié un peu le libellé des options, mais l'essentiel y est. Merci, j'utiliserai davantage à l'avenir, mais sans ton implémentation, j'aurais eu du mal à décrypter seul la doc
La richesse de python est impressionnante, même parfois un peu effrayante lorsque l'on pense à tous les modules dont, malgré la profondeur du MOOC, nous n'avons je pense qu'effleuré la surface.

@PapiSido
Copy link
Collaborator Author

PapiSido commented Feb 1, 2018

Terminé, tout semble fonctionner.
Je reviendrai plus tard avec gui et graphique, mais je vais attaquer tkinter sur un autre projet

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants