Créer un MasterMind

Créer un MasterMind

Messagepar sc le 28 Oct 2012, 11:22

Voici un challenge algorithmique intéressant :

Ecrire un programme ou un algorithme qui permette à l'utilisateur de découvrir un nombre de 4 chiffres. Les digits seront choisis entre 1 et 8.
L'ordinateur choisit d'abord un nombre (p. ex. 7653). L'utilisateur entrera ensuite des nombres (p. ex. 7131) et l'ordinateur donnera le nombre de chiffres bien et mal placés. Dans notre exemple l'ordinateur répondra 1 bien placé(s) 1 mal placé(s)


Exemple de partie :

caché : 7653

1234 : 0 bien placé(s) 1 mal placé(s)
4567 : 0 bien placé(s) 3 mal placé(s)
8654 : 2 bien placé(s) 0 mal placé(s)
3657 : 2 bien placé(s) 2 mal placé(s)
7653 : 4 bien placé(s) 0 mal placé(s)

Bravo !


Penser à utiliser la balise [ code=python][/code] ou [ code=java][/code]pour le programme ou [ code][/code] pour l'algorithme
(Pour l'affectation, copier-coller ce caractère : ← )


NB:

En Python : après avoir importé la bibliothèque nécessaire en début de programme par :

Code: Tout sélectionner
from random import randint


Pour tirer un entier aléatoire entre 1 et 8 on saisit :

Code: Tout sélectionner
a=randint(1,9)

En Java :
Il suffit d'écrire :

Code: Tout sélectionner
int a=(int) (1 + Math.random()*8) ;
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Créer un MasterMind

Messagepar kilag le 28 Oct 2012, 18:46

le nombre aléatoire choisit par l'ordinateur peut-il avoir deux fois le même chiffre?
exemple : l'ordinateur choisit 1552
Le Soleil, c'est l'endroit le plus chaud de la Terre
Avatar de l’utilisateur
kilag
~ membre surdoué ~
 
Messages: 23
Inscrit le: 02 Oct 2012, 19:23
Localisation: capitale de France : Lyon

Re: Créer un MasterMind

Messagepar kilag le 28 Oct 2012, 19:30

a oui et juste pour savoir, comment faisons nous pour créer des labels?
sur calculatrice je sais que c'est grâce à la commande goto mais comment faisons nous sur python?
ainsi que la commande "valeur absolue"
merci :D
Le Soleil, c'est l'endroit le plus chaud de la Terre
Avatar de l’utilisateur
kilag
~ membre surdoué ~
 
Messages: 23
Inscrit le: 02 Oct 2012, 19:23
Localisation: capitale de France : Lyon

Re: Créer un MasterMind

Messagepar csamborski le 28 Oct 2012, 19:48

Ah, fini la calculatrice : bienvenu dans le monde de la programmation fonctionnelle \o/

Au lieu de s'embêter avec des sauts dans le code, on peut définir des fonctions. Il s'agit de blocs de code que l'on peut réutiliser par la suite. Dans l'idée le programme suit les instructions, arrive à une fonction et là il saute vers la fonction, exécute son code puis revient là d'où il est parti.

Voilà comment on les définit :

Code: Tout sélectionner
def nomdelafonction( argument1 , argument2, ... , argumentN ):
      #code...
      #code...
    return resultatdelafonction


"argument" désigne les paramètres que l'on peut indiquer à la fonction, on peut en mettre autant qu'on veut et il faut les séparer par une virgule.

Voilà un exemple concret qui calcule la factorielle (produit de 1 à a) de a :

Code: Tout sélectionner
def factorielle( a ):
    f = 1
    for i in range(1,a+1):
        f *= i
    return f


La fonction s'appelle "factorielle", on lui envoie un paramètre : a qui est le nombre dont on doit calculer la factorielle. La fonction renvoie f, la factorielle.

En dessous on peut faire ceci :

Code: Tout sélectionner

n = 4
f = factorielle(n)
print(f)
 

Dans ce code, on attribue 4 à n, puis on fait un saut vers le code "factorielle" en mettant comme paramètre n. Quand la fonction a fini son travail elle renvoie la réponse que l'on stocke dans f et on retourne au code pour faire la suite : ici on affiche f. (24 dans cet exemple).

Tu peux ainsi définir tes propres fonctions, par exemple valeur absolue :
Code: Tout sélectionner
def absolute(a):
    return -a if a<0 else a


k = absolute( 1 )  #k = 1
k = absolute( -2 ) #k = 2
Skype : csamborski
Sur navigateur moderne : http://ld24pm-easy.quantum-softwares.fr/
Avatar de l’utilisateur
csamborski
~ membre surdoué ~
 
Messages: 26
Inscrit le: 02 Oct 2012, 17:46
Localisation: Vienne

Re: Créer un MasterMind

Messagepar askolein le 28 Oct 2012, 19:52

En effet Charles :wink:

C'est ce qu'on a appris en ISN Vendredi :Bleh:


Mais dans le cas du MasterMind, ça peux aider plus ou moins ! :clapclap:
~~~~  () ()      ~~~~
~~~~ (-.-)    ~~~~
~~~~   ( )    ~~~~
~~     (") (")o  ~~~~
Mathias Dail.
askolein
~ membre génial ~
 
Messages: 78
Inscrit le: 30 Sep 2012, 19:14
Localisation: Terre, Voie Lactée, Univers 42.

Re: Créer un MasterMind

Messagepar kilag le 28 Oct 2012, 20:06

merci charles :amen:
Le Soleil, c'est l'endroit le plus chaud de la Terre
Avatar de l’utilisateur
kilag
~ membre surdoué ~
 
Messages: 23
Inscrit le: 02 Oct 2012, 19:23
Localisation: capitale de France : Lyon

Re: Créer un MasterMind

Messagepar askolein le 28 Oct 2012, 21:22

VOILA !!!!!! :combat:
J'ai réussi à créer ce mastermind !! :gunsmilie: :gunsmilie: :gunsmilie: :Bleh:
Il m'a pris pas mal de temps, et de réflexion !

Un peu long, je sais qu'à certains endroit je pourrais raccourcir, mais après le programme devient illisible ! donc le mien est un peu long , mais est assez clair ! :D
J'ai mis des commentaires pour faciliter la lecture !

Et j'ai pris soin de rajouter un compteur pour savoir si on a réussi en 4000 coups, ou 10 :Bleh:

Yeeeeeeeha :roi:
Dernière édition par askolein le 28 Oct 2012, 23:41, édité 4 fois au total.
~~~~  () ()      ~~~~
~~~~ (-.-)    ~~~~
~~~~   ( )    ~~~~
~~     (") (")o  ~~~~
Mathias Dail.
askolein
~ membre génial ~
 
Messages: 78
Inscrit le: 30 Sep 2012, 19:14
Localisation: Terre, Voie Lactée, Univers 42.

Re: Créer un MasterMind

Messagepar kilag le 28 Oct 2012, 21:32



voilà fini! un peut long c'est vrai mais sympathique :gunsmilie:
Le Soleil, c'est l'endroit le plus chaud de la Terre
Avatar de l’utilisateur
kilag
~ membre surdoué ~
 
Messages: 23
Inscrit le: 02 Oct 2012, 19:23
Localisation: capitale de France : Lyon

Re: Créer un MasterMind

Messagepar askolein le 28 Oct 2012, 21:55

En effet, ça pique les yeux sur Python :mrgreen:
~~~~  () ()      ~~~~
~~~~ (-.-)    ~~~~
~~~~   ( )    ~~~~
~~     (") (")o  ~~~~
Mathias Dail.
askolein
~ membre génial ~
 
Messages: 78
Inscrit le: 30 Sep 2012, 19:14
Localisation: Terre, Voie Lactée, Univers 42.

Re: Créer un MasterMind

Messagepar sc le 29 Oct 2012, 08:38

:clapclap: :clapclap:
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Créer un MasterMind

Messagepar Valentin le 29 Oct 2012, 17:52

J'ai fini le mien mais...Il est pas correct, il faut que les quatre nombres soit sous la forme de

Code: Tout sélectionner
Nombre mystère = 4561
par exemple ou
Code: Tout sélectionner
a = 4
b = 5
c = 6
d = 1


Merci
Valentin
~ membre hyper actif ~
 
Messages: 48
Inscrit le: 02 Oct 2012, 14:57

Re: Créer un MasterMind

Messagepar askolein le 29 Oct 2012, 18:28

Comment ça? Tu n'arrive pas à isoler les chiffres du nombre?

Si c'est ça le probleme, c'est LA difficulté de ce challenge ! :Bleh:


Sinon si tu dois avoir 4 chiffres différents, c'est facile :|
Il faut juste empêcher de taper 2 fois le même chiffre !
~~~~  () ()      ~~~~
~~~~ (-.-)    ~~~~
~~~~   ( )    ~~~~
~~     (") (")o  ~~~~
Mathias Dail.
askolein
~ membre génial ~
 
Messages: 78
Inscrit le: 30 Sep 2012, 19:14
Localisation: Terre, Voie Lactée, Univers 42.

Re: Créer un MasterMind

Messagepar Valentin le 29 Oct 2012, 18:37

C'est pas le problème, je veux juste savoir s'il faut générer un nombre à quatre chiffre directement (donc compris entre 1000 et 9999) ou s'il faut générer 4 nombres différents, parce que du coup moi j'ai générer 4 chiffres différents puis je me suis posé la question...
Valentin
~ membre hyper actif ~
 
Messages: 48
Inscrit le: 02 Oct 2012, 14:57

Re: Créer un MasterMind

Messagepar askolein le 29 Oct 2012, 18:39

Non les chiffres sont compris entre 1 et 8, donc il peuvent être 1,2,3,4,5,6,7 ou 8.


et il faut générer un nombre à quatre chiffres différents.
~~~~  () ()      ~~~~
~~~~ (-.-)    ~~~~
~~~~   ( )    ~~~~
~~     (") (")o  ~~~~
Mathias Dail.
askolein
~ membre génial ~
 
Messages: 78
Inscrit le: 30 Sep 2012, 19:14
Localisation: Terre, Voie Lactée, Univers 42.

Re: Créer un MasterMind

Messagepar kilag le 29 Oct 2012, 18:41

il doit généré un nombre directement, et toi tu doit rentrer des nombres directement, donc compris entre 1000 et 9000 :gunsmilie:
Le Soleil, c'est l'endroit le plus chaud de la Terre
Avatar de l’utilisateur
kilag
~ membre surdoué ~
 
Messages: 23
Inscrit le: 02 Oct 2012, 19:23
Localisation: capitale de France : Lyon

Suivant

Retourner vers Algorithmique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités

cron