La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

MasterMind en spécialité i.s.n. Projet pour la spécialité ISN en terminale S, juin 2012 S. Zimmerman – A. Morouche – S. Gentilhomme.

Présentations similaires


Présentation au sujet: "MasterMind en spécialité i.s.n. Projet pour la spécialité ISN en terminale S, juin 2012 S. Zimmerman – A. Morouche – S. Gentilhomme."— Transcription de la présentation:

1 MasterMind en spécialité i.s.n. Projet pour la spécialité ISN en terminale S, juin 2012 S. Zimmerman – A. Morouche – S. Gentilhomme

2 Pourquoi ce sujet ? Retenant lidée de J.C. Routier, proposer aux élèves des projets axés sur la création dun jeu ou dune application autour de limage ne sera pas vécu comme ne faire que des maths ou de la physique ! Même si on fait appelle à des notions mathématiques, elles ne seront pas vécues comme telles par les élèves, et le travail semblera ainsi plus ludique. Nous retenons lidée des jeux à un ou deux joueurs, et nous viennent à lesprit quelques jeux assez simples :

3 Le jeu du nombre mystère Exemple : Lordinateur choisit un nombre compris entre 1 et à chaque tour : le joueur propose un nombre Lordinateur donne une indication (supérieur ou inférieur). Obj : trouver le nombre mystère en un minimum de propositions. Le jeu est assez basique, il est possible de demander la programmation de la solution idéale afin que le joueur compare son résultat et cette dernière (sans toutefois lui indiquer la méthode).

4 Le jeu de Nim (qui existe sous différentes variantes) Exemple : Version de base au départ : un tas de 21 allumettes à tour de rôle : Chaque joueur retire une à trois allumettes du tas Objectif : ne pas être celui-qui retire la dernière allumette. Afin damener les élèves à créer une version un peu moins basique, il est possible de moduler le jeu avec 3 paramétres : le nombre dallumettes initiales (par ex. de 20 à 50) le nombre dallumettes que lon peut retirer (3 à 6) choisir le niveau dintelligence de lordinateur (choix aléatoire, avec une méthode infaillible à 100% ou avec un taux de 50%).

5 Le pendu Archiclassique, cest la recherche dun mot ou dune expression, qui pourrait être une bonne occasion de manipuler des chaines de caractères. Les tours de Hanoï Un jeu sans doute intéressant et peu connu de nos élèves, qui consiste à faire passer une pile de disques classés par tailles croissantes, dun piquet vers un autre avec un piquet intermédiaire, en conservant toujours un empilement ordonné.

6 Lobjectif est à atteindre en un minimum de coups, en respectant deux règles : on ne peut déplacer plus d'un disque à la fois, on ne peut placer un disque que sur un autre disque plus grand que lui ou sur un emplacement vide.

7 Le Mastermind Exemple : Lordinateur choisit P pions de couleurs différentes parmi C couleurs possibles, avec un placement particulier (C > P mais inférieur à 10). à chaque tour : le joueur propose P pions disposés avec précision. Lordinateur donne deux indications : - le nombre de jetons présents dans la combinaison - le nombre de jetons correctement placés Objectif du joueur : Trouver la combinaison gagnante.

8 Le jeu nous semble assez simple à programmer, et fera intervenir la manipulation de nombres, dimages, etc. nous retenons donc ce projet, dabord à deux membres, avec un élargissement avec la venue dAbdelkrim Morouche nous proposant sa collaboration, trouvant le projet intéressant, avec un rôle de membre ressource.

9 Première phase de développement

10 Objectifs: Définir les caractéristiques du jeu. Définir les caractéristiques du jeu. Rechercher les algorithmes les plus pertinents afin dévaluer le niveau de complexité. Rechercher les algorithmes les plus pertinents afin dévaluer le niveau de complexité. Développer un programme de test relativement simple afin de tester les solutions algorithmiques retenues. Développer un programme de test relativement simple afin de tester les solutions algorithmiques retenues.

11 Les variables qui caractérisent le jeu // La grille du jeu n'est rien d'autre qu'un tableau à 2 dimensions var NbrLignes = 10; // Correspond aussi au nombre maximum d'essais possibles pour // trouver la combinaison (10 par défaut). var NbrColonnes = 4; // Correspond aussi au nombre de pions dans la combinaison // (4 par défaut) var NbrMaxiCouleurs = 6; // On limitera le jeu à 6 couleurs au maximum var NbrCouleurs = 4; // Nombre de couleurs choisies par le joueur pour sa partie // (4 par défaut et sera <= NbrMaxiCouleurs) var Combinaison = new Array(); // Tableau pour ranger la combinaison secrète.

12 Les variables pour gérer la partie var Gagne = false; // Passe à « true » si le joueur trouve la bonne combinaison. var Proposition = new Array(); // Tableau pour mémoriser la proposition du joueur. var NbrEssais = 0; // Mémorise le nombre de propositions faites par l'utilisateur. var NbrCoulPlacees = 0; // Nombre de couleurs bien placées dans la proposition var NbrCoulBonnes = 0; // Nombre de couleurs bonnes mais mal placées

13 Algorithme «Tirage aléatoire dune combinaison secrète » for(var i=0 ; i < NbrColonnes ; i++) { Combinaison[i] = Math.round(Math.random()*(NbrCouleurs - 1) + 1) } Cet algorithme va générée la combinaison gagnante avec des pions qui peuvent être de même couleur.

14 Dans une première ébauche, nous avions imaginé une combinaison secrète avec des pions différents, ce qui avait amené à un algorithme de cette forme : POUR i ALLANT DE 0 A NbPions – 1 TestCouleurValide = 0// VARIABLE BOOLEENNE TANT QUE TestCouleurValide = 0 FAIRE CombGagn [i] = PartieEntière (NbreAléatoire () * NbCouleurs) TestCouleurValide = 1 POUR j ALLANT DE 0 A i – 1 SI CombGagn [i] == CombGagn [j] TestCouleurValide =0 FIN SI FIN POUR FIN TANT QUE FIN POUR for(var i=0 ; i < NbrColonnes ; i++) {TestCoulValide = TRUE; while (TestCoulValide = TRUE) { Combinaison[i] = Math.round(Math.random()*(NbrCouleurs - 1) + 1); for (var j = 0 ; j < i-1 ; j ++) { TestCoulValide=(Combinaison[i]==Combinaison[j]); }

15 Algorithme «Tester la proposition du joueur par rapport à la combinaison secrète » // Une copie de la Proposition et de la combinaison secrète qu'on pourra modifier var CopieS = new Array() ; var CopieP = new Array() ; for (var i=0 ; i

16 // 1 er test : On teste si des couleurs sont bonnes (cest-à-dire bien placées). for ( i=0 ; i

17 // 2 nd test: On teste si une couleur est bonne mais mal placée for ( i = 0; i < NbrColonnes; i++ ) { for (j =0; j < NbrColonnes; j++ ) { if(CopieS[i] == CopieP[j]) { NbrCoulBonnes++; // Une couleur bonne CopieS[i] = 'x'; // on écrase cette couleur CopieP[j] = 'y; // on ne la compte plus } // On conclut sur les tests if(NbrCoulPlacees == NbrColonnes) // Si toutes les couleurs sont bien placées, Gagne = true;// la partie est gagnée. NbrEssais++; // Le joueur a testé une fois de plus une proposition

18 Une première version en mode texte nous a permis de tester et de mettre au point lalgorithme qui est au cœur du jeu, à savoir la comparaison dune proposition par rapport à la combinaison secrète ; la proposition rentrée au clavier sous la forme dune chaine de caractères est convertie en tableau. Cette première version est disponible dans le dossier nommé « MASTERMIND_ver1 ».

19 Deuxième phase de développement

20 Objectifs : Développer une couche graphique et lintégrer au programme Développer une couche graphique et lintégrer au programme Séparation des éléments selon leur nature dans des fichiers différents : Séparation des éléments selon leur nature dans des fichiers différents : Les variables dans un fichier JS Les variables dans un fichier JS Les fonctions dans un fichier JSLes fonctions dans un fichier JS Le programme principal dans un fichier JSLe programme principal dans un fichier JS Page HTML basique permettant de tester le programmePage HTML basique permettant de tester le programme

21 Conclusion Une expérience enrichissante sur le plan informatique avec réinvestissement de nombreuses connaissances acquises au cours des séquences « Algorithmique & Programmation », avec un apport bénéfique pour toutes les ressources mises en œuvre par Abdelkrim Une association qui a amené à maturité un projet réaliste pour des élèves de lycée Un bénéfice personnel quand au travail par projet, encore quelque peu éloigné de nos modes denseignement plus classique en lycée, pour des disciplines générales (mathématiques, sciences physiques).


Télécharger ppt "MasterMind en spécialité i.s.n. Projet pour la spécialité ISN en terminale S, juin 2012 S. Zimmerman – A. Morouche – S. Gentilhomme."

Présentations similaires


Annonces Google