 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
romain.dupont
Inscrit le: 21 Mai 2013 Messages: 3
|
Posté le: 22 Mai 2013 19:24 Sujet du message: MAPLE: Programmer le jeu Mastermind |
|
|
Bonjour à tous
voila je dois programmer le jeu MASTERMIND grâce au logiciel MAPLE.Mais j'ai un problème dans mon programme , le problème c'est que je ne vois pas d'où cela vient.
Voici la règle du MASTERMIND:
Un joueur choisit un code de 4 couleurs parmi 6, dans un ordre donné (on peut varier ces
nombres). L’autre joueur propose des codes et le premier joueur lui indique à chaque fois
combien il y a de bonnes couleurs au bon emplacement et combien il y a de bonnes couleurs au
mauvais emplacement. Le but est de trouver le code en un nombre minimal de coups.
...et voici mon programme:
Code: | secret := [rand(1 .. 6)(), rand(1 .. 6)(), rand(1 .. 6)(), rand(1 .. 6)()] ;
tour := 0;
mastermind:=proc(a,b,c,d)
global secret,tour;
local i,j, l:=[NULL], rouges:=0,blancs:=0,secretbis:=secret,M:=[a,b,c,d];
while nops(l)<> 4 do
for i from 1 to 4 do
if M[i]=secretbis[i] then
rouges:= rouges +1;
l:=[l,op(i,secretbis)];
print('il_y_a', rouges, 'rouges') ;
print(l) ;
fi ;
od ;
secretbis := subs(secretbis[i] = NULL, secretbis);
M := subs(M[i] = NULL, M) ;
for i from 1 to 4-rouges do
for j from 1 to 4 - rouges do
if M[i]=secretbis[j] then
blancs:= blancs +1;
secretbis:=subs(secretbis[i]=NULL, secretbis);
print*('il_y_a', blancs, 'blancs') ;
fi ;
od ;
od ;
print(l);
tour:=tour+1;
od;
end proc; |
Il me renvoi après:
Code: | Error, (in mastermind) invalid subscript selector |
Est ce que quelqu'un pourrait m'aider??
Merci de votre aide |
|
Revenir en haut de page |
|
 |
romain.dupont
Inscrit le: 21 Mai 2013 Messages: 3
|
Posté le: 22 Mai 2013 19:27 Sujet du message: |
|
|
Pour info dans mon programme :
les "rouges " correspondent aux numéros bien placés et les "blancs" correspondent aux numéros mal placés. |
|
Revenir en haut de page |
|
 |
prof_simplet
Inscrit le: 12 Sep 2006 Messages: 86
|
Posté le: 23 Mai 2013 11:59 Sujet du message: |
|
|
Salut,
Dans la boucle:
for i from 1 to 4-rouges do
for j from 1 to 4 - rouges do
i, j peuvent avoir des valeurs supérieures au nombre d'éléments de secretbis, c'est la ligne:
if M[i]=secretbis[j] then
qui provoque le message d'erreur.
Solution:
à la place d'enlever la valeur dans secretbis lorsqu'on tombe sur un rouge ou un blanc, ne vaudrait-il pas mieux la remplacer par la valeur 0 par exemple, ainsi secretbis aurait toujours le même nombre d'éléments .
A plus tard. |
|
Revenir en haut de page |
|
 |
romain.dupont
Inscrit le: 21 Mai 2013 Messages: 3
|
Posté le: 24 Mai 2013 12:42 Sujet du message: |
|
|
OK merci de l'aide, j'essaie ça et je vous tiens au courant ! |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - © 03/04/2025
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|