π
<-
Chat plein-écran
[^]

Aide pour la création d'un Mastermind

Aide pour la création d'un Mastermind

Message non lude Adriweb » 22 Juin 2007, 13:49

Salut à tous !

Depuis deux jours, j'ai l'idée de créer un mastermind, sympa, pour z80 et en basic. :):
Et les quelques problèmes que je rencontrent commencent à être assez [*chiants*]. Je m'explique : J'utilise deux programmes (mstrmnd1 et mastrmnd2) : Le 1er est celui qui affiche les résultats et demande les propositions de la personne, et le second est celui qui analyse les réponses en fonction du nombre (à 4 chiffres, de 1000 à 9999) choisi aléatoirement.
- Voir code source -

Le tout marche environ à 70%, car des fois, je ne sais pas pourquoi, je me retrouve avec le chiffre final mauvais alors qu'il était bon un essai avant :#gol#: . Bref, si vous pouvez essayer de m'aider, ce serait vachement sympa ! :;):

Avant de passer au code source, je voudrai expliquer le principe de l'affichage du résultat : au départ, lorsque tous les chiffres du nombre donné par la personne sont faux, il y a quatre "0" (zéro). Si seul le 2eme chiffre est vrai, le résultat sera 0100. Si les deux derniers sont vrais, alors ça sera : 0011 ........ On a gagné, quand le nombre est, vous l'avez compri, 1111. J'espère avoir été clair ...

De plus, un autre petit problème (à moitié résolu) ,c'est que si le résultat était 0100, il affichait 1 (car le "0" du début ne sert à rien, comme les autres. J'ai alors divisé le résultat par 10 000, avec un Fix 4 pour avoir tous les chiffres. mais j'ai alors des résultats, parfois en écriture scientifique ... mais je cache tout ca avec des Output avec des espaces ...

Voici les 2 codes sources :

ø, c'est [différent] et - c'est [STO]

Mstrmnd1 :

0-[theta]
Fix 4
randInt(1000,9999-A
prgmMSTRMND2
B-F:C-G:D-H:E-I
While Áø1111
Prompt A
prgmMSTRMND2
1000(B=F)+100(C=G)+10(D=H)+1(E=I)-[theta]
[plein d'output pour cacher ce qui n'est pas la réponse]
Disp [theta]/10000
End
Disp "BRAVO !
Output(1,1,"


Mstrmnd2 :

S'il vous plaît ne prenez pas peur :#roll#: :
Ce programme analyse le nombre donné : extraction des chiffres le composant (partie entiere de A divisé par 10 puissance (partie entière du log [ça détermine le nombre de chiffre] de A+1)

iPart((A/10^iPart(log(A+1-B
A-B*10^iPart(log(A+1-A
iPart((A/10^iPart(log(A+1-C
A-C*10^iPart(log(A+1-A
iPart((A/10^iPart(log(A+1-D
A-D*10^iPart(log(A+1-A
iPart((A/10^iPart(log(A+1-E
Output(1,1,"


Merci d'avance pour votre aide, et merci encore d'avoir tout lu !
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Aide pour la création d'un Mastermind

Message non lude chicu » 23 Juin 2007, 10:55

Bon moi je suis pas un pro mais si tu veux pas te casser la tête pour avoir 4 chiffres tu fais

For(X,1,4
iPart(rand9)+1-L1(X)
End

Comme sa tu as 4 chiffres allant de 1 à 9 choisi aléatoirement

While Áø1111 c'est A ou [thêtha] ?

Sinon pour matter si la soluce est bonne tu fais une boucle for avec un truc du genre
If L1(X) = L2(X)
1-L3(X)
Tu ferme ton for et tu teste avec une autre for si L3 = {1,1,1,1} si oui il gagne si non tu fais
Disp L3 et hop c'est fini non ?

Bon parcontre si tu veux gérer les cas ou ya un chiffre de mal placé faut faire un for imbriqué dans un autre for ^^
Avatar de l’utilisateur
chicu
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 85.9%
 
Messages: 206
Inscription: 27 Mai 2007, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: TS SI

Re: Aide pour la création d'un Mastermind

Message non lude Adriweb » 23 Juin 2007, 12:26

ouaiP merci de ton aide !
Je vais faire une autre version du jeu avec les listes !!
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Aide pour la création d'un Mastermind

Message non lude tama » 23 Juin 2007, 14:23

Hello je suis de retour (définitivement après Mardi mon oral de français)

donc adriweb je peux poster mon code pour un mastermind très très très réduit mais qui fonctionne (j'ai rajouté 2 lignes de code...ça fait 233-17=216 octets maintenant)

MAJ 1 : j'ai supprimé une ligne de code = de 216 on passe à 212
MAJ 2: encore supprimé des lignes (décidément ça m'a aidé de recopier le code sur PC ^^) = 212 -- 187 :): (36% de moins que le tien ^^)
MAJ 3 (encore ?!): supprimé une ligne qui ne devait pas être là (que je n'ai pas recopié ici c'était pour afficher la solution et tester si ça marchait) = donc on passe de 187 à 183 (39%)
MAJ 4 : supprimé une ligne vide = 2 octets de gagnés encore = 181 désormais (41%)

A chaque fois que tu entres une combinaison ça te sort un nombre du type c,ic est le nombre de chiffres bien placés et i le nombre de chiffres corrects mais mal placés

par exemple 2.2 - il y a 2 chiffres corrects et bien placés et 2 chiffres corrects mais mal placés


bon voilà ça tient en 1 seul programme
Ne mets pas ce qu'il y a après les "//" (enfin je pense que t'as compris...)

ClrHome
Fix 1
randInt(0,9,4-LC //crée une liste de 4 chiffres aléatoires de 0 à 9 (combinaison)
4-dim(LR //crée une liste "réponse" = essais du joueur
DelVar VDelVar C //V c'est "victoire" qui détermine si tous les nombres sont bons et C le nombre d'essais
While V4 and C10 //tant qu'il n'a pas gagné ou il lui reste des chances
0-V //on réinitialise le nombre de réponses correctes
C+1-C //nombre d'essais
Input "",Str0 //on demande une combinaison
For(A,1,4
expr(sub(Str0,A,1-LR(A //on stocke les 4 chiffres séparément dans la liste réponse (LR)
End
For(A,1,4
For(B,1,4
If LC(A)=LR(B //si c'est bon
Then
If A=B //bien placé
Then
V+1-V //on ajoute 1 aux unités de V (=victoire)
.2+LR(B-LR(B //pour éviter qu'il compte le même chiffre plusieurs fois (6.2 différent de 6 par exemple) et pour "debugger" (voir où ça bug si le programme bug)
Else
V+.1-V //on ajoute 1 aux décimales de V
.1+LR(B-LR(B //voir plus haut
End
End
End
End
Disp V //on affiche les biens placés mal placés
End
If C=10 //s'il ne restait plus d'essais
LC //on affiche la solution
Float //on remet en virgule flottante (mode normal)


Voila en espérant que ça puisse t'aider ^^
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40%
 
Messages: 10994
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: epita ING3 \o

Re: Aide pour la création d'un Mastermind

Message non lude tama » 23 Juin 2007, 14:30

(au passage on doit pas avoir le même point de vue, pour moi le mastermind on ne dit pas quels chiffres sont bons on dit seulement il y a n chiffres bons et biens placés et n chiffres bons et mal placés...)
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40%
 
Messages: 10994
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: epita ING3 \o

Re: Aide pour la création d'un Mastermind

Message non lude Adriweb » 23 Juin 2007, 15:42

1- Merci pour ton aide ^^
2- Oui je sais, mais au niveau programmation en basic, c'est chiant à faire ^^


Edit: oui alors, déjà VTI prend tout tes noms de listes sans un "L" devant et il me dit "Syntax Error", bon ça c'est pas grave, mais c'est bizarre, j'ai mis devant chaque nom un petit "L" et le programme marche. Mais a quoi correspond en gros le résultat donné ? ^^
par exemple : 1.3 : veut dire que 1 chiffre est ok et 3 autres bien placés ?
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Aide pour la création d'un Mastermind

Message non lude tama » 23 Juin 2007, 19:53

A chaque fois que tu entres une combinaison ça te sort un nombre du type c,ic est le nombre de chiffres bien placés et i le nombre de chiffres corrects mais mal placés

par exemple 2.2 - il y a 2 chiffres corrects et bien placés et 2 chiffres corrects mais mal placés


^^ t'as pas tout lu
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40%
 
Messages: 10994
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: epita ING3 \o

Re: Aide pour la création d'un Mastermind

Message non lude Adriweb » 24 Juin 2007, 10:06

ah merde oui dsl, je me suis focalisé directement sur le code ^^
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Aide pour la création d'un Mastermind

Message non lude tama » 26 Juin 2007, 10:14

=P
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40%
 
Messages: 10994
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: epita ING3 \o

Re: Aide pour la création d'un Mastermind

Message non lude Adriweb » 26 Juin 2007, 18:33

:D
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 17 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1280 utilisateurs:
>1247 invités
>28 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)