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:04] stefeppe |
infoh100-projet1 [2013/12/05 06:22] (current) stefeppe |
||
---|---|---|---|
Line 8: | Line 8: | ||
* **//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. | ||
+ | |||
+ | * **//J'ai des problèmes pour importer le module PYC fourni avec l'énoncé. Que dois-je faire?//** \\ | ||
+ | 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! | ||
+ | |||
+ | * **//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)?//** \\ | * **//Puis-je utiliser la librairie //''random''// (et/ou d'autres)?//** \\ | ||
Line 14: | Line 24: | ||
* **//Que font les fonctions fournies //''word_in_place''// et //''word_on_board''//?//** | * **//Que font les fonctions fournies //''word_in_place''// et //''word_on_board''//?//** | ||
- "**''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 :\\ | + | 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 B S E\\ |
A L U H\\ | A L U H\\ | ||
**M** **E** Y T\\ | **M** **E** Y T\\ | ||
- | N **R** B J\\ | + | N **R** B J''\\ |
- | la fonction renvoie True pour "MER" mais pas pour "SALUT" | + | la fonction renvoie ''True'' pour "''MER''" mais pas pour "''SALUT''" |
- | word_on_board("MER", board) == True | + | ''word_on_board("MER", board) == True'' |
- | word_on_board("SALUT", board) == False | + | ''word_on_board("SALUT", board) == False'' |
- | + | ||
- | EXPLICATION DE word_in_place : | + | |
+ | - "**''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) | 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 : | + | Dans l'exemple ci dessus :\\ |
- | word_in_place("MER", board, 0, 1) == False | + | ''word_in_place("MER", board, 0, 1) == False''\\ |
- | word_in_place("MER", board, 2, 0) == True | + | ''word_in_place("MER", board, 2, 0) == True''\\ |
- | word_in_place("MER", board, 3, 1) == False | + | ''word_in_place("MER", board, 3, 1) == False'' |
- | + | ||
- | Le sujet sera modifié pour être plus clair pour tous. | + | |
- | 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. |