π
<-

Aide pour la création d'un Mastermind

Aide pour la création d'un Mastermind

Unread postby Adriweb » 22 Jun 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 !

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby chicu » 23 Jun 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 ^^
User avatar
chicu
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 85.9%
 
Posts: 206
Joined: 27 May 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: TS SI

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

Unread postby Adriweb » 23 Jun 2007, 12:26

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

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby tama » 23 Jun 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.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

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

Unread postby tama » 23 Jun 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.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

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

Unread postby Adriweb » 23 Jun 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 ?

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby tama » 23 Jun 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.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

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

Unread postby Adriweb » 24 Jun 2007, 10:06

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

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby tama » 26 Jun 2007, 10:14

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

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

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

Unread postby Adriweb » 26 Jun 2007, 18:33

:D

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Next

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 9 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1763 utilisateurs:
>1692 invités
>65 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)