Master-mind(tm) [tb06] - Exercice Karine Zampieri, Bruno Adam, Stéphane Rivi` ere Unisciel algoprog Version 19 mai 2018 Table des mati`eres 1 Énoncé 2
Previous PDF | Next PDF |
[PDF] Mastermind - Concours-infirmierfr
Si une proposition vérifie toutes les lignes de l'exercice (affirmations), alors cette proposition est la solution Propositions : 1 : U E W 2 : U L W 3 : N E U Première
[PDF] Entraînement intensif aux tests daptitude IFSI - Remedeorg
Entraînement intensif aux tests d'aptitudes IFSI Planning, Logigramme, Organigramme, Cases à noircir, Master Mind Christelle Boisse
[PDF] Test psychotechnique IFSI Mastermind - Réussir les concours
Si une proposition vérifie toutes les lignes de l'exercice (affirmations), alors cette proposition est la solution Propositions : 1 : U E W 2 : U E L 3 : N E U Première
[PDF] Master-mind(tm) [tb06] - Exercice - Unisciel
Master-mind(tm) [tb06] - Exercice Karine Zampieri, Bruno Adam, Stéphane Rivi` ere Unisciel algoprog Version 19 mai 2018 Table des mati`eres 1 Énoncé 2
[PDF] FICHE DE MASTERMIND N LE BUT DE L EXERCICE
Avant même de voir à quoi ressemble un mastermind, il est important de déjà bien comprendre en quoi consiste le principe de l'exercice, c'est à dire ce qu'on
[PDF] FICHE DE MASTERMIND N PRÉSENTATION DUN ITEM
Rendez-vous sur le site http://tests-psychotechniques sithis pour vous entraîner aux tests psychotechniques • Une base de données de + de 5 000 questions
[PDF] Test daptitude Entraînement intensif - Dunod
5 Carrés logiques/Master Mind 102 Fiche méthode 102 Exercices d' entraînement 107 Corrigés des exercices 137 6 Master Mind variantes 145
[PDF] Une formalisation du jeu de Mastermind - Numdam
impossible du fait de la complexité des calculs qu'elle entraîne On peut Dans le cas du jeu du Mastermind, S est l'ensemble des n-uplets s= (sx, , sn)
[PDF] Les Tests psycho by Debo
Les mastermind ou carrés logiques exhaustive et bien entendu, seul l' entrainement permet de les résoudre plus facilement A Numérique Dans la plupart
[PDF] Tests psychotechniques - Vuibert
fruits 20 Cette industrie a entraîné quelque embauche Quelque courageux qu'il soit Carrés logiques ou Master Mind 1Master Mind sans propositions
[PDF] test psychotechnique mastermind gratuit
[PDF] comment résoudre un mastermind
[PDF] test psychotechnique mastermind corrigé
[PDF] mastermind pour les nuls
[PDF] exemple de test psychotechnique pour entretien d'embauche
[PDF] test de recrutement gratuit pdf
[PDF] imparfait latin 5ème
[PDF] imparfait des verbes en latin
[PDF] présent en latin traduction
[PDF] ecart qi verbal et performance
[PDF] conversion notes france canada
[PDF] qi verbal qi performance
[PDF] dyssynchronie qi verbal qi performance
[PDF] qu'est ce que le qi verbal
Master-mind(tm) [tb06] - Exercice
Karine Zampieri, Bruno Adam, Stephane Riviere
UniscielalgoprogVersion 19 mai 2018
Table des matieres
1Enonce2
2 Jeu Machine-contre-Humain
42.1 Representation du jeu
42.2Etude du code d'un humain. . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Mise en place du tout
1 12.4 Jeu avec niveaux
1 22.5 Validation
143 References generales
1 4 Python - Master-mind(tm) (Solution)Mots-ClesTableau unidimensionnel, Jeu RequisStructures de base, Structures conditionnelles, Algorithmes parametres, Struc- tures repetitives, Schema iteratifDiculte• • ◦Objectif
Cet exercice realise un jeu de Master-Mind(tm).
...(enonce page suivante)... 1Unisciel algoprog { Master-mind(tm) [tb06]2
1EnonceLe Master-Mind(tm)
C'est unjeu de logiquequi se joue a deux. Generalement, il se presente sous la forme d'un plateau ayant 12 rangees de 4 trous pouvant accueillir des pions de couleurs. Le nombre de couleurs est 8 et sont : rouge, jaune, vert, bleu, orange, noir, marron, fuchsia.(image :https://fr.wikipedia.org/wiki/Mastermind)Des ches blanches et noires (ou rouges selon les versions du jeu, cf. gure ci-avant, sur
la droite) seront utilisees pour donner des indications a chaque etape du jeu. Il existe de nombreuses variantes selon le nombre de couleurs, de rangees ou de trous.Regles du jeu Avant de demarrer la partie, le second joueur place ses pions de couleurs derriere le cache (voir gure) pour eviter que le joueur ne voie les pions choisis. Le but est de retrouver quels sont les pions choisis par l'autre joueur et d'en conna^tre les positions. Pour cela, a chaque tour, le joueur doit se servir des pions de couleurs pour former une rangee. Une fois les pions places, l'autre joueur indique le nombre de pions de bonne couleur :1.Bien placesen utilisant les ches noires.
2.Mal placesavec les ches blanches.Exemple
La ligne du haut est celle du joueur et la ligne du bas est la combinaison a trouver :Unisciel algoprog { Master-mind(tm) [tb06]3
La che noire correspond au deuxieme pion Rouge bien place. On n'obtient rien pour le premier pion Rouge car la combinaison ne contient pas deux fois la couleur Rouge.Exemple Ici le premier pion Rouge et le troisieme pion Jaune sont mal places.Fin d'une partieDeux situations terminent une partie :
•Le joueur n'a pas reussi a trouver la solution : la partie est perdue. •Le joueur a trouve la solution : la partie est gagnee.Objectif Ecrire une version programmee du jeuUnisciel algoprog { Master-mind(tm) [tb06]4
2 Jeu Machine-contre-Humain
Le programme (= machine) tire une combinaison au hasard et demande au joueur (= hu- main) de la retrouver sur la base de ses reponses successives. Le programme indique a chaque coupcombiend'elements sont bien devines et correctement places (par#) ou bien devines mais mal places (paro). Le joueur dispose demaxcoupstentatives. Une com- binaison est representee par une sequence densymboles tires parmim. Voici un exemple du resultat attendu :Pouvez-voustrouver ma combinaison de 4 symboles chiffres entre 1 et 6 avec repetitions possibles en moins de 10 coupsEntrez
les symboles des propositions terminees parEntree
un bien place o un mal place Votre proposition ? 1 2 3 4 o reste 9 coups Votre proposition ? 2 5 6 3 oo reste 8 coups Votre proposition ? 5 4 2 1 oo reste 7 coups Votre proposition ? 5 2 2 5 o reste 6 coups Votre proposition ? 1 2 1 5 o reste 5 coups Votre proposition ? 5 2 1 2 reste 4 coups Bravo Vous avez trouve en 6 coups2.1 Representation du jeuDenissez la constanteCMAX=6(nombre maximum de symboles) puis le typeCombinaison
comme etant un tableau d'entiers de taille maximaleCMAX. Ecrivez une proceduregenererCmb(c,n,m)qui tire (au hasard) uneCombinaisonc densym- boles dans[1..m]. Exemple :genererCmb(c,4,6)doit generer4(=n)entiers compris dans [1..6(= m )]dansc.Outil Python Le packagerandomdenit la fonctionrandint(a,b)qui renvoie un entier pseudo-aleatoire compris dans l'intervalle[a..b].Validez vos denitions et votre procedure avec la solution. Unisciel algoprog { Master-mind(tm) [tb06]5Solution Python@[pgtmind.py]CMAX= 6Taille
maximale desCombinaison
defgenererCmb(c,n ,m ):"""G énèreune Combinaison de n symboles dans [1.. m] param c uneCombinaison
param n taille desCombinaison
param m nombre de couleurs forkinrange (0,n ):c[k] =rd .randint(1,m ) Ecrivez une proceduresaisirCmb(c,n,m)qui saisit uneCombinaisondanscdensymbolesdans[1..m]. Supposez que les symboles sont eectivement dans[1..m]. Achez l'invite :Votreproposition ?
An de verier la generation ainsi que la saisie, ecrivez une procedureafficherCmb(c,n) qui ache uneCombinaisonc densymboles.Validez vos procedures avec la solution. Solution Python@[pgtmind.py]defsaisirCmb0(c,n ,m ):"""Saisit la Combinaison du joueur param c uneCombinaison
param n taille de c param m nombre de couleursprint(n," chiffres dans [1.. ",m ," ]?" ,sep ="",end ="")forkinrange (0,n ):c[k] =int(input())defafficherCmb0(c,n ):"""Affiche une Combinaison
param c uneCombinaison
param n taille de c forkinrange (0,n ):print(c[k]," " ,sep ="",end ="")print() Ecrivez une proceduretest_cmbqui teste vos deux procedures ci-avant, a savoir : •Generez uneCombinaisonm puis achez-la. •Saisissez uneCombinaisonj puis achez-la.Appelez vos procedures avecn=4etm=6.
Unisciel algoprog { Master-mind(tm) [tb06]6Testez.Validez votre procedure avec la solution.
Solution Python@[pgtmind.py]deftest_cmb():"""@test """ mystere = [0 forxinrange (CMAX)]genererCmb(mystere, 4, 6) afficherCmb0 mystere , 4) humain = [0 forxinrange (CMAX)]saisirCmb0(humain, 4, 6) afficherCmb0 humain , 4) 2.2Etude du code d'un humain
Une reponse est constituee d'indicateurs (au plusn) : •Ceux correspondant auxsymboles corrects bien places, c.-a-d. les valeurs et positions exactement les m^emes entre les deux sequences. Exemple : Si la sequence a deviner est1213et que le joueur propose4516, la reponse sera<1 correct>ce qui correspond au1. Ce type de reponse sera note par un<#>et marque de facon interne par la constanteBIEN_PLACE. •Ceux correspondant auxsymboles corrects mais mal places, c.-a-d. une valeur presente mais pas a la bonne position. Exemple : Si la sequence a deviner est1213 et que le joueur propose4562, la reponse sera<1mal place>ce qui correspond au2. Ce type de reponse sera note par un5243, la reponse sera<##o>et non pas<_#o#>(ou_designe un blanc).
Unisciel algoprog { Master-mind(tm) [tb06]7Denissez les constantesBIEN_PLACE=-1etMAL_PLACE=0. Notez que ces deux valeurs ne correspondent a aucune couleur. Ecrivez une fonctiontrouverBienPlaces(copie,c,n)qui trouve et xe les biens places dans uneCombinaisoncopie du code secret. LaCombinaisonc est celle du joueur. L'entiern designe la taille des combinaisons. La fonction doit remplacer danscopietout symbolebien place par unBIEN_PLACEetretournerle nombre de biens places (entier). Exemple :Pour:copie =[1, 4, 3, 2]avec n =4,m =6
c =[2, 4, 1, 6] Alors copie =[1,-1, 3, 2] et nbp =1Solution simple
Cela consiste en :
•Compter le nombre de couleurs bien placees, c.-a-d. comparer et compter un a un les elements a la m^eme position dans les deux tableaux. •Pour eviter de confondre les couleurs bien placees et les mal placees, il faudra elimi-ner les couleurs deja comptees. Pour ce, on la remplace par la valeur duBIEN_PLACE.Validez vos denitions et votre fonction avec la solution.
Solution Python@[pgtmind.py]BIEN_PLACE= -1
Valeur
du Bien placMAL_PLACE
= 0Valeur
du Mal plac o deftrouverBienPlaces(copie,c ,n ):"""Trouve et positionne les biens plac ésdans la copie param copieCombinaison
du code secret param cCombinaison
du joueur param n taille desCombinaison
return le nombre de bien plac s nbp = 0 forkinrange (0,n ):ifcopie[k] ==c [k]:nbp+= 1 copie kBIEN_PLACE
returnnbp Ecrivez une fonctionposition(valeur,c,n)qui recherche l'entier de valeurvaleurdans lesn symboles d'uneCombinaisonc . Dans le cas d'une recherche fructueuse, la fonction renvoie le premier indicektel quec[k]vautvaleur,-1sinon. Exemples : Unisciel algoprog { Master-mind(tm) [tb06]8Indices: 0 1 2 3 Pour c =[1,-1, 3, 2] avec n =4, m =6 Alors position (2, c n renvoie 3 Et position (6, c n renvoie -1 Deduisez une fonctiontrouverMalPlaces(copie,c,n)qui trouve et xe les mal places dans uneCombinaisoncopie du code secret. LaCombinaisonc est celle du joueur. L'entiernde- signe la taille des combinaisons. La fonction doit remplacer danscopietout symbole de- vine mal place par unMAL_PLACEetretournerle nombre de mal places (entier). Exemple :Indices: 0 1 2 3 Pour copie =[1,-1, 3, 2] avec n =4, m =6 c =[2, 4, 1, 6] Alors copie =[1,-1, 3, 0] apres position c [0]=2, copie n qui renvoie 2 =[0,-1, 3, 0] apres position c [2]=1, copie n qui renvoie 0 =[0,-1, 3, 0] apres position c [3]=6, copie n qui renvoie -1 Et nmp =2 On notera queposition(c[1]=4,copie,n)n'a pas ete appele car le symbole etaitBIEN_PLACE danscopie.Solution simpleIci cela consiste en :
•Parcourir laCombinaisonc du joueur, et pour chaque element qui n'est pas bien place (c.-a-d. dont la valeur est dierente deBIEN_PLACEdans lacopie), rechercher sa position dans lacopie. •Si cet element existe, il faut le compter puis en modier sa valeur par celle duMAL_PLACEdans lacopiepour qu'il ne puisse ^etre compte deux fois.Validez vos fonctions avec la solution.
Solution Python@[pgtmind.py]defposition(valeur,c ,n ):"""Recherche lin éaired "unecouleur dans une Combinaison
param valeur une couleur param cCombinaison
du joueur param n taille de c return l indice de valeur dans c -1 si elle n existe pas k = 0 whilek< n andc[k] !=valeur :k+= 1 return(kifk< n else-1)Unisciel algoprog { Master-mind(tm) [tb06]9deftrouverMalPlaces(copie,c ,n ):"""Trouve et positionne les mal plac ésdans la copie
param copieCombinaison
du code secret param cCombinaison
du joueur param n taille desCombinaison
return le nombre de mal plac s nmp = 0 forkinrange (0,n ):ifcopie[k] !=BIEN_PLACE :p= position (c[k],copie ,n ) ifp!= -1: nmp+= 1 copie kMAL_PLACE
returnnmpModiezvotre procedureafficherCmb(c,n)qui ache uneCombinaisonc densymboles de sorte qu'elle ache : •Un"#"si le symbole est bien place. •Un"o"si le symbole est mal place. •Et le symbole sinon.Exemple :Pour:c =[0,-1, 3, 0]et n =4 ==>o #3o
Validez votre procedure avec la solution.
Solution Python@[pgtmind.py]defafficherCmb(c,n ):"""Affiche une Combinaison param c uneCombinaison
param n taille de c forkinrange (0,n ):valeur= c [k]ifvaleur== BIEN_PLACE :print("#",end ="")elifvaleur== MAL_PLACE :print("o",end ="")else:print(valeur,end ="")print()Copiez/collezla proceduretest_cmben la proceduretest_codepuiscompletez-la de
sorte qu'elle : 1. Ap pelletrouverBienPlacesou le parametre muetcopieest laCombinaisonm de la machine et le parametre muetcest laCombinaisonj du joueur.