This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
infoh100-projet1 [2013/11/25 21:01] stefeppe |
infoh100-projet1 [2013/12/05 06:22] stefeppe |
||
---|---|---|---|
Line 6: | Line 6: | ||
Toutefois, pour tempérer le ton péremptoire de l'énoncé, nous vous suggérons de prendre l'éventuel dépassement de cette limite comme un signal qui devrait vous inciter à vous arrêter et à reconsidérer la manière dont vous avez construit votre fonction: fait-elle bien une seule chose bien définie? ne serait-il pas mieux (plus clair) de créer/appeler l'une ou l'autre fonction? Dans des cas particuliers et justifiés, un léger dépassement de cette limite peut être acceptable, voire nécessaire. | Toutefois, pour tempérer le ton péremptoire de l'énoncé, nous vous suggérons de prendre l'éventuel dépassement de cette limite comme un signal qui devrait vous inciter à vous arrêter et à reconsidérer la manière dont vous avez construit votre fonction: fait-elle bien une seule chose bien définie? ne serait-il pas mieux (plus clair) de créer/appeler l'une ou l'autre fonction? Dans des cas particuliers et justifiés, un léger dépassement de cette limite peut être acceptable, voire nécessaire. | ||
- | * **//Dois-je rédiger les commentaires (//docstrings//) en anglais?//** \\ | + | * **//Dois-je rédiger les commentaires (//''docstrings''//) en anglais?//** \\ |
Si l'anglais est l'option préférée, nous ne sanctionnerons pas les commentaires en français. Mieux vaut un commentaire en français clair, qu'une description anglaise incompréhensible. | Si l'anglais est l'option préférée, nous ne sanctionnerons pas les commentaires en français. Mieux vaut un commentaire en français clair, qu'une description anglaise incompréhensible. | ||
- | * **//Puis-je utiliser la librairie //random// (et/ou d'autres)?//** \\ | + | * **//J'ai des problèmes pour importer le module PYC fourni avec l'énoncé. Que dois-je faire?//** \\ |
- | La librairie random ayant été vue lors des travaux pratiques, l'utilisation de //toutes// les fonctions qui la composent est permise. Il en va de même pour l'ensemble des méthodes liées aux strings, listes et tuples. | + | Nous avons mis à disposition une version //non compilée// du module. Celui-ci est à importer de manière similaire que la version compilée: |
+ | - décompresser le fichier fourni "boggle_mod.tar.gz", | ||
+ | - copier le fichier Boggle_mod.py dans le répertoire de votre projet, | ||
+ | - importer dans votre code avec ''import Boggle_mod'' (ceci //remplace// l'ancien import!) | ||
+ | Pour les étudiants ayant utilisé les modules **compilés**, il n'y a **rien** à faire. Les deux versions (compilée et non-compilée) fonctionnent de la même manière et contiennent les mêmes fonctions! | ||
- | * **//Que font les fonctions fournies "//word_in_place//" et "//word_on_board//"?//** | + | * **//Puis-je utiliser plus d'un //''return''// dans une fonction?//** \\ |
- | - "**word_on_board**"\\ | + | Non: un seul ''return'' par fonction. Il s'agit là d'une convention adoptée dans ce cours. Cela ne devrait d'ailleurs pas avoir de répercutions dramatiques sur votre code. |
- | Cette fonction renvoie True si le mot est présent dans la grille EN RESPECTANT LES RÈGLES DU BOGGLE. Donc dans la grille ci dessous :\\ | + | |
- | A B S E\\ | + | |
- | A L U H\\ | + | |
- | M E Y T\\ | + | |
- | N R B J\\ | + | |
- | la fonction renvoie True pour "MER" mais pas pour "SALUT" | + | |
- | word_on_board("MER", board) == True | + | * **//Puis-je utiliser la librairie //''random''// (et/ou d'autres)?//** \\ |
- | word_on_board("SALUT", board) == False | + | La librairie random ayant été vue lors des travaux pratiques, l'utilisation de //toutes// les fonctions qui la composent est permise. Il en va de même pour l'ensemble des méthodes liées aux types ''str'', ''list'' et ''tuple''. |
- | EXPLICATION DE word_in_place : | + | * **//Que font les fonctions fournies //''word_in_place''// et //''word_on_board''//?//** |
+ | - "**''word_on_board''**"\\ | ||
+ | Cette fonction renvoie ''True'' si le mot est présent dans la grille EN RESPECTANT LES RÈGLES DU BOGGLE. Donc dans la grille ci dessous :\\ | ||
+ | ''A B S E\\ | ||
+ | A L U H\\ | ||
+ | **M** **E** Y T\\ | ||
+ | N **R** B J''\\ | ||
+ | la fonction renvoie ''True'' pour "''MER''" mais pas pour "''SALUT''" | ||
- | Elle fait la même chose uniquement si le mot commence dans la case donnée en paramètre (attention les indices commencent à 0 donc la case en haut à gauche est la case 0,0) | + | ''word_on_board("MER", board) == True'' |
- | Dans l'exemple ci dessus : | + | ''word_on_board("SALUT", board) == False'' |
- | word_in_place("MER", board, 0, 1) == False | + | |
- | word_in_place("MER", board, 2, 0) == True | + | |
- | word_in_place("MER", board, 3, 1) == False | + | |
- | Le sujet sera modifié pour être plus clair pour tous. | + | - "**''word_in_place''**"\\ |
+ | Elle fait la même chose uniquement si le mot commence dans la case donnée en paramètre (attention les indices commencent à 0 donc la case en haut à gauche est la case 0,0) | ||
+ | Dans l'exemple ci dessus :\\ | ||
+ | ''word_in_place("MER", board, 0, 1) == False''\\ | ||
+ | ''word_in_place("MER", board, 2, 0) == True''\\ | ||
+ | ''word_in_place("MER", board, 3, 1) == False'' | ||
- | Il est évident que word_on_board appellera word_in_place (de la même manière que play_boggle appelera play_one_round). | + | Il est évident que ''word_on_board'' appellera ''word_in_place'' (de la même manière que ''play_boggle'' appelera ''play_one_round''). |
Ce découpage imposé est là pour vous aider. | Ce découpage imposé est là pour vous aider. | ||
- | CONSEILS: | + | * **//Faut-il placer aléatoirement les dés sur le tableau?//** \\ |
+ | En d'autres termes, //les dés du tableau doivent-ils, en plus d'afficher une face aléatoire, être placés également aléatoirement sur le tableau//? La réponse est: oui. Le premier dé renvoyé par ''get_dices()'' ne doit donc pas se retrouver systématiquement sur la première case du tableau; cette position (ainsi que celle des autres dés) doit changer aléatoirement d'une partie à l'autre. | ||
- | word_in_place est la fonction la plus difficile du projet. | + | * **//L'énoncé du projet spécifie qu'un jeu est composé de 5 tours. A quoi alors sert la fonction ''ask_yes_no'' fournie?//** \\ |
- | Vous pouvez coder les fonctions dans l'ordre que vous voulez, vous pouvez coder par exemple word_on_board en considérant que word_in_place marche. | + | Il s'agit d'une ambiguïté de l'énoncé. Concrètement, vous pouvez: |
+ | - demander à l'utilisateur s'il veut rejouer après les 5 tours, ou | ||
+ | - ne rien lui demander et quitter le programme après les 5 tours. | ||
+ | Nous acceptons les deux possibilités. |