[PDF] [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



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] astuce pour mastermind

[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

1

Enonce2

2 Jeu Machine-contre-Humain

4

2.1 Representation du jeu

4

2.2Etude du code d'un humain. . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Mise en place du tout

1 1

2.4 Jeu avec niveaux

1 2

2.5 Validation

14

3 References generales

1 4 Python - Master-mind(tm) (Solution)Mots-ClesTableau unidimensionnel, Jeu RequisStructures de base, Structures conditionnelles, Algorithmes parametres, Struc- tures repetitives, Schema iteratif

Diculte• • ◦Objectif

Cet exercice realise un jeu de Master-Mind(tm).

...(enonce page suivante)... 1

Unisciel algoprog { Master-mind(tm) [tb06]2

1

EnonceLe 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 partie

Deux 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 jeu. ...(suite page suivante)...

Unisciel 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 coups

Entrez

les symboles des propositions terminees par

Entree

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 coups

2.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= 6

Taille

maximale des

Combinaison

defgenererCmb(c,n ,m ):"""G énèreune Combinaison de n symboles dans [1.. m] param c une

Combinaison

param n taille des

Combinaison

param m nombre de couleurs forkinrange (0,n ):c[k] =rd .randint(1,m ) Ecrivez une proceduresaisirCmb(c,n,m)qui saisit uneCombinaisondanscdensymboles

dans[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 une

Combinaison

param n taille de c param m nombre de couleurs

print(n," chiffres dans [1.. ",m ," ]?" ,sep ="",end ="")forkinrange (0,n ):c[k] =int(input())defafficherCmb0(c,n ):"""Affiche une Combinaison

param c une

Combinaison

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.2

Etude 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 unet marque de facon interne par la constanteMAL_PLACE. Ces indicateurs sont cumules pour tous les symboles de la reponse. Exemple : Si la sequence a deviner est1213et que le joueur propose4512, la reponse sera<#o>ce qui correspond au1et au2.Rappel Il y a deux principes dans la generation des reponses : 1. Un sy mbolen ep eutser virq u'une seule foisdans la reponse. Exemple : Si la sequence a deviner est1213et que la proposition est4156, la reponse est (c.-a-d. un bon symbole mais mal place : le1) et non pas(pour le 1 deux fois mal place) car il n'y a qu'un seul1 dans la sequence proposee. Par contre, si la proposition est4134, la reponse sera bien(le1et le3). 2. O nn ep recisep asqu elssy mbolesso ntb ieno um alp laces.On i ndiqueu niquement leur nombre. Exemple : Si la sequence a deviner est4213et que la proposition est

5243, 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 symbole

bien 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 =1

Solution 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 plac

MAL_PLACE

= 0

Valeur

du Mal plac o deftrouverBienPlaces(copie,c ,n ):"""Trouve et positionne les biens plac ésdans la copie param copie

Combinaison

du code secret param c

Combinaison

du joueur param n taille des

Combinaison

return le nombre de bien plac s nbp = 0 forkinrange (0,n ):ifcopie[k] ==c [k]:nbp+= 1 copie k

BIEN_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 simple

Ici 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 du

MAL_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 c

Combinaison

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 copie

Combinaison

du code secret param c

Combinaison

du joueur param n taille des

Combinaison

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 k

MAL_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 une

Combinaison

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.

Unisciel algoprog { Master-mind(tm) [tb06]10

2. A chemainsi que le nombre de biens places calcules. 3. Ap pelletrouverMalPlacesselon le m^eme principe que (1). 4. A chemainsi que le nombre de mal places calcules.Testez.

Validez votre procedure avec la solution.

Solution Python@[pgtmind.py]deftest_code():"""@test """ mystere = [0 forxinrange (CMAX)]genererCmb(mystere, 4, 6) afficherCmb mystere , 4) humain = [0 forxinrange (CMAX)]saisirCmb0(humain, 4, 6) afficherCmbquotesdbs_dbs6.pdfusesText_11