je me suis déjà amusée à créer quelques petits programmes sur ma TI84+SE mais ils ne sont pas très optimisés (alkashi, trinome, ..., voire carrément lourd pour mon convertisseur dec-bin-bcd-hex ! [_])
Tout récemment (hier soir), j'ai codé un tit mastermind. Mais il fait plus de 600oct et il ne fonctionne que pour 4 chiffres différents (sinon, ça compte 2 ou 3 fois le même chiffre, enfin on se retrouve avec 3 bien placés et un mal placé, ou 2 bien placés et 3 mal placés... c'est du n'importe quoi !)
ü correspond à STO (-)
- corres. à é
ø corres. à Différent
pour les variables:
ABCD sont les chiffres de la combinaison à deviner
IJKL sont les chiffres proposés par le joueur (enfin le joueur propose T qui est séparé en 4 chiffres)
Y est le nombre de tour
M ne sert que pour l'affichage des bons chiffres mal placés (U) et des bons chiffres bien placés (V)
- Code: Select all
EffEcr
entAl–at(1,8)üA
AüB
While A=B
entAl–at(1,8)üB
End
BüC
While A=C ou B=C
entAl–at(1,8)üC
End
CüD
While A=D ou B=D ou C=D
entAl–at(1,8)üD
End
1üY
While Y÷12
Input "",T
T/1000üI
partEnt(I)üI
T-I*1000üT
T/100üJ
partEnt(J)üJ
T-J*100üT
T/10üK
partEnt(K)üK
T-K*10üL
0üU
0üV
If I=A
Then
V+1üV
Else
If ((I=B et IøJ) ou (I=C et IøK) ou (I=D et IøL)) et IøA
Then
U+1üU
End
End
If J=B
Then
V+1üV
Else
If ((J=A et JøI) ou (J=C et JøK) ou (J=D et JøL)) et JøB
Then
U+1üU
End
End
If K=C
Then
V+1üV
Else
If ((K=A et KøI) ou (K=B et KøJ) ou (K=D et KøL)) et KøC
Then
U+1üU
End
End
If L=D
Then
V+1üV
Else
If ((L=A et LøI) ou (L=B et LøJ) ou (L=C et LøK)) et LøD
Then
U+1üU
End
End
0üV
If A=I
Then
V+1üV
End
If B=J
Then
V+1üV
End
If C=K
Then
V+1üV
End
If D=L
Then
V+1üV
End
YüM
If Mù7
Then
7üM
End
If V=4
Then
Output(M,9,"BRAVO!"
Pause
Stop
End
If Y=12
Then
A*10^3+B*10Ü+C*10+DüR
Output(M,13,R
End
Output(M,8,U
Output(M,11,V
Y+1üY
End
Si quelqu'un pouvait m'aider (et surtout m'expliquer !) pour alléger le code et un peu l'améliorer !