Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

MAPLE: Programmer le jeu Mastermind

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
romain.dupont



Inscrit le: 21 Mai 2013
Messages: 3

MessagePosté le: 22 Mai 2013 19:24    Sujet du message: MAPLE: Programmer le jeu Mastermind Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
romain.dupont



Inscrit le: 21 Mai 2013
Messages: 3

MessagePosté le: 22 Mai 2013 19:27    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
prof_simplet



Inscrit le: 12 Sep 2006
Messages: 86

MessagePosté le: 23 Mai 2013 11:59    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
romain.dupont



Inscrit le: 21 Mai 2013
Messages: 3

MessagePosté le: 24 Mai 2013 12:42    Sujet du message: Répondre en citant

OK merci de l'aide, j'essaie ça et je vous tiens au courant !
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
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


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.