Mastermind [fx-92+ Spéciale Collège]
Posted: 08 Apr 2018, 16:50
Allez, je me risque à la programmation d'un Mastermind
Une version sans prétention puisque non graphique (je me suis cantonné à l'algorithme).
Afin de rester fidèle au jeu, j'ai fait en sorte que la série à trouver soit composée de 4 chiffres distincts entre 1 et 6, et sans doublon.
Pour le côté pratique, on aura juste à entrer d'un coup les 4 chiffres (donc entre 1234 et 6543).
Puis, la Casio répondra par 2 valeurs séparées par une virgule, de cette manière:
"nb de chiffres trouvés dans l'ordre" , "nb de chiffres trouvés dans le désordre"
Bien sûr, si , parfois, ne s'affiche qu'une seule valeur, c'est qu'aucun chiffre dans le désordre n'aura été trouvé
Quand vous parviendrez à trouver la combinaison dans l'ordre, l'ultime affichage d'un "4" sera suvi d'un modeste "Oui"
(https://pastebin.com/zi5Q1Qb5)
Si vous avez des idées d'optimisation, n'hésitez pas, hein !
EDIT: Nouvelle version plus courte !
Une version sans prétention puisque non graphique (je me suis cantonné à l'algorithme).
Afin de rester fidèle au jeu, j'ai fait en sorte que la série à trouver soit composée de 4 chiffres distincts entre 1 et 6, et sans doublon.
Pour le côté pratique, on aura juste à entrer d'un coup les 4 chiffres (donc entre 1234 et 6543).
Puis, la Casio répondra par 2 valeurs séparées par une virgule, de cette manière:
"nb de chiffres trouvés dans l'ordre" , "nb de chiffres trouvés dans le désordre"
Bien sûr, si , parfois, ne s'affiche qu'une seule valeur, c'est qu'aucun chiffre dans le désordre n'aura été trouvé
Quand vous parviendrez à trouver la combinaison dans l'ordre, l'ultime affichage d'un "4" sera suvi d'un modeste "Oui"
- Code: Select all
RanInt#(1;6→A
A+RanInt#(1;5→B
Si B>6 Alors
B-6→B
Fin
B→C
Répéter jusqu'à C≠A≠D≠C≠B≠D
RanInt#(1;6→C
RanInt#(1;6→D
⤴
0→M
Répéter jusqu'à M=4
?→E
,4→M
,1Ent(E→E
10(E-Ent(E→F
Si A≠F≠B≠C≠F Alors
M-,1→M
Fin
Si F=D Alors
M+1→M
Fin
,1Ent(E→E
10(E-Ent(E→F
Si A≠F≠B≠D≠F Alors
M-,1→M
Fin
Si F=C Alors
M+1→M
Fin
,1Ent(E→E
10(E-Ent(E→F
Si A≠F≠C≠D≠F Alors
M-,1→M
Fin
Si F=B Alors
M+1→M
Fin
Ent(E→F
Si B≠F≠C≠D≠F Alors
M-,1→M
Fin
Si F=A Alors
M+1→M
Fin
Afficher résultat M
⤴
"Oui"
(https://pastebin.com/zi5Q1Qb5)
Si vous avez des idées d'optimisation, n'hésitez pas, hein !
EDIT: Nouvelle version plus courte !