Home
énoncé pdf
Contents
1. L nigme des N reines POnGL TP1 r visions de programmation Java 1 Pr sentation Le probl me des N reines s nonce ainsi peut on placer N reines sur un chiquier de taille N de sorte qu aucune reine ne soit menac e par une autre Autrement dit nous disposons d un tableau deux dimensions carr de c t N et nous voulons placer N points dans ce tableau de sorte qu il n y ait jamais deux points sur une m me ligne une m me colonne ou une m me diagonale Configuration valide Solution compl te Configuration invalide Dans ce TP nous allons cr er un plateau de jeu graphique qui proposera un joueur de r soudre cette nigme Le joueur pourra effectuer les deux actions suivantes sur le plateau Cliquer sur une case libre pour y placer une reine Cliquer sur une case occup e pour retirer la reine qui s y trouve On ajoutera galement au jeu deux boutons Un bouton de validation qui indique si la configuration actuelle du plateau est acceptable c est dire qu aucune des reines pr sentes n en menace une autre ind pendamment du nombre de reines pr sentes Un bouton de demande d indice Si la configuration actuelle peut tre compl t e en une solution alors l interface propose au joueur une case sur laquelle jouer Sinon elle indique que le joueur est bloqu Dans tout ce TP on utilisera la mini biblioth que IG fournie et on compl tera le squelette de fichier NReines ja
2. n un int Il existe une m thode pour cela vous de trouver son nom sur internet ou dans la documentation Mode d emploi pour donner des arguments la m thode main Depuis un terminal pour cr er un tableau de taille 6 il faudra lancer le programme avec la ligne de commande java NRe ines 6 Depuis Eclipse au lieu de s lectionner Run as Java application il faudra s lectionner la ligne inf rieure Run configuration puis aller dans l onglet Arguments et donner l argument 6 dans le principal champ de texte il suffit de le faire une fois 3 Validation d une configuration Mots cl s tableaux deux dimensions if for for each L objectif de cette partie est de programmer le comportement du bouton de validation Pour chaque m thode crite dans cette partie il vous est demand de cr er des tests que vous inclurez dans la m thode main N h sitez pas cr er des tableaux la main et faire appel des m thodes comme System out println pour suivre les r sultats de vos tests Remarque pour certaines questions il sera pertinent d ajouter des attributs aux classes pr sentes dans le squelette 1 Pour pouvoir parcourir les cases de l chiquier il faudra que celles ci soient re group es dans un tableau deux dimensions qui sera un attribut de l une des classes de l exercice Oui mais laquelle Et dans quelle classe d finir les m thodes qui devront agir sur ce tableau 2 c
3. ordonn es de l une des cases test es lors de l exploration 5 Questions bonus Mots cl s lancement et rattrapage d exceptions 1 Dans la m thode main faire en sorte que si un argument est fourni alors un plateau de taille correspondante est cr mais que si aucun argument n est fourni ou si l argument n est pas un entier valide alors la taille par d faut 8 est utilis e 2 Lors d un appel verifieConfiguration faire en sorte qu en cas de configu ration invalide deux reines se mena ant l une l autre sont affich es en rouge
4. r choix et essayer une autre case backtrack Plus pr cis ment on utilisera la proc dure suivante A V rifier la validit de la configuration actuelle B C Placer une reine sur la premi re case de cette ligne D Si on trouve une solution compl te c est dire si on a plac une reine sur chaque ligne et que l ensemble est valide alors on s arr te Si on arrive une configuration invalide alors on annule le choix qui avait t fait l tape C et on essaye nouveau avec la deuxi me case de la ligne puis la troisi me et ainsi de suite jusqu avoir trouv une solution ou avoir vu qu aucune des cases ne permettait d arriver une solution D terminer la premi re ligne non occup e Revenir l tape A avec cette nouvelle configuration 1 crire la proc dure propos e sous la forme d un algorithme plus pr cis sur papier 2 crire une m thode de signature public boolean verifieResolubilite qui met en uvre cet algorithme et compl ter la m thode void clicGauche de la classe Indice On veut que le bouton s affiche en vert si la configuration peut tre compl t e en une solution et en rouge sinon 3 Compl ter le code pr c dent pour que dans le cas o une solution est trouv e le jeu affiche en bleu une case dans laquelle il serait judicieux de placer une reine On pourra introduire des attributs int indiceL et int indiceC dans lesquels stocker les co
5. rire une m thode de signature private int compteLigne Case 1 qui compte le nombre de reines pr sentes dans la ligne 1 et d duisez en une m thode de signature private boolean verifieLignes qui renvoie true si et seulement si aucune ligne de notre plateau ne contient plus d une reine Pour ces deux m thodes on utilisera des constructions de type for each 3 Proc der de m me pour les colonnes puis pour les diagonales On utilisera cette fois des constructions for traditionnelles 4 En d duire une m thode de signature public boolean verifieConfiguration v rifiant la validit d une configuration et compl ter la m thode void clicGauche de la classe Validation On veut que le bouton s affiche en vert si la configuration est valide et en rouge sinon 4 Exploration des solutions et proposition d un indice Mots cl s r cursivit backtrack L objectif de cette partie est de programmer le comportement du bouton de demande d indice Comme la partie pr c dente chaque m thode crite devra tre m thodiquement test e On va pour cela utiliser une m thode qui a pour objectif de tester toutes les mani res possibles de compl ter le plateau jusqu trouver une solution Les deux principaux ingr dients sont TA chaque tape choisir une case y placer une reine et rappeler la m thode r cursivement avec cette nouvelle configuration de d part Si on ne trouve pas de solution revenir au dernie
6. va Le tout peut tre t l charg l adresse http www lri fr blsk POnGL NReines zip 2 Mise en place de l interface graphique Mots cl s if for cr ation d un objet lecture d un argument conversion d une cha ne de caract res en un entier surcharge d un constructeur Pour commencer on veut cr er un plateau dans lequel un clic fait passer une case du blanc au noir ou inversement 1 Compl ter les constructeurs des classes Plateau et Case ainsi que la m thode clicGauche de la classe Case On donnera pour l instant au plateau une taille par d faut de 8 et les signatures de ces constructeurs et m thodes seront les suivantes public Plateau public Case Plateau p public void clicGauche Pour colorer une case en noir on pourra utiliser l appel de m thode setBackground Color BLACK 2 Cr er un deuxi me constructeur pour la classe Plateau de signature public Plateau int taille auquel la taille du plateau est pass e en argument et modifier la m thode main pour qu elle utilise ce nouveau constructeur avec une taille diff rente de 8 par exemple 6 Note il faudra modifier la ligne super 8 8 pour que l affichage tienne compte de ces dimensions diff rentes 3 Modifier la m thode main pour que la taille soit maintenant pass e comme un argument en ligne de commande Cet argument sera le premier l ment du tableau args c est dire un objet de type String qu il va falloir convertir e
Download Pdf Manuals
Related Search
Related Contents
滅菌バリデーション基準の制定について format PDF - GBIF France Mod: NT53/G-VV Modèle 960V Series VSM Manuel d`Utilisation - French Manual - ALGE Pioneer PRS-D3000SPL Stereo Amplifier User Manual SGH-M610 User's Guide CareLink User Manual - Rubbermaid Healthcare BoConcept London & Tokyo barstool Assembly Instruction DeLOCK 91699 card reader Copyright © All rights reserved.
Failed to retrieve file