Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
infoh100-projet1 [2013/11/25 20:56]
stefeppe
infoh100-projet1 [2013/12/05 06:22] (current)
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 pratiquesl'​utilisation ​de //toutes// les fonctions qui la composent est permiseIl 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** à faireLes 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?//** \\ 
 +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.
  
 +  * **//Puis-je utiliser la librairie //''​random''//​ (et/ou d'​autres)?//​** \\
 +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''​.
 +
 +  * **//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''"​
 +
 +''​word_on_board("​MER",​ board) == True''​
 +''​word_on_board("​SALUT",​ board) == False''​
 +
 +  - "​**''​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''​).
 +Ce découpage imposé est là pour vous aider.
 +
 +  * **//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.
 +
 +  * **//​L'​énoncé du projet spécifie qu'un jeu est composé de 5 tours. A quoi alors sert la fonction ''​ask_yes_no''​ fournie?//​** \\
 +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.
 
infoh100-projet1.1385409379.txt.gz · Last modified: 2013/11/25 20:56 by stefeppe