Suggestion de progression#
Partie I : COMPRENDRE le trio Spécification Test Codage#
Exercice 1
Consultez la documentation de la fonction
calculPoints
dans le fichier mCalculPoints.hpp.Copiez cette documentation dans un nouveau fichier
mCalculPoints.cpp
.Consultez les tests de la fonction
calculPoints
dans le fichier mCalculPoints-test.cpp.Copiez ces tests, et la fonction
main
qui les contient, dans le fichiermCalculPoints.cpp
.Écrivez dans
mCalculPoints.cpp
une première implantation decalculsPoints
qui renvoie toujours la constante 100, c’est à dire sans respecter la spécification indiquée dans l’entête ni dans la règle du JARNAC.Compilez le fichier
mCalculPoints.cpp
. Il vous faudra probablement le compléter en récupérant des lignes comme#include <vector>
ou# define CHECK ...
depuis mCalculPoints-test.cpp.Exécutez le programme obtenu pour tester votre fonction et mettre en évidence que certains tests échouent.
Complétez par petites étapes l’implantation de la fonction
calculPoints
afin qu’elle respecte sa spécification; vérifiez à chaque étape quels tests passent ou non; cela vous donnera des indications ce que vous aurez à faire.
Partie II : INTERAGIR avec des fichiers#
Exercice 2
Créer un dictionnaire de test avec seulement 20 mots dedans.
À l’aide de ce dictionnaire, écrire dans le fichier mDictionnaire.cpp des tests pour les fonctions documentées dans le fichier mDictionnaire.hpp.
Implantez ces fonctions dans mDictionnaire.cpp. Compilez et vérifiez au fur et à mesure quels tests passent ou pas.
Indication
Indication
Pour la fonction purification, vous pourrez vous inspirer des exemples ci-dessous
char lettre = 'c';
char(lettre + 'A' - 'a')
'c' < 'e'
'b' < 'a'
lettre = '@';
'a' < lettre and lettre < 'z'
Partie III : CODER avec un cadre#
Exercice 3
En procédant comme dans l’exercice 1, implanter dans un fichier
mAnagrammes.cpp
les fonctions dont vous trouverez la documentation dans mAnagrammes.hpp et les tests dans mAnagrammes-test.cpp.
Partie IV : compilation séparée#
Prudence
Nous verrons la compilation séparée en Semaine 10. Si vous abordez cette partie du projet avant cela, passez pour le moment directement à aux parties V et suivantes
Exercice 4
En vous inspirant du TP de la Semaine 10, nettoyez les fichiers
mCalculPoints.cpp
,Dictionnaire.cpp
,mAnagrammes.cpp
pour en faire des bibliothèques, avec leurs fichiers d’entêtes et de tests respectifs. Veillez à compiler et vérifier la bonne exécution des tests.Consultez le programme ExempleInterface.cpp. Quelles bibliothèques utilise-t-il?
Compilez ce programme avec ces bibliothèques et exécutez le.
Indication
Indication: compilation automatisée
Compiler à la main des programmes devient vite fastidieux. Nous vous
avons fourni un fichier Makefile qui permet d’automatiser la
procédure avec la commande make
. Essayez la commande suivante pour
faire un peu de nettoyage :
make clean
Puis:
make ExempleInterface
Vous pouvez consulter le Makefile pour voir comment est configurée
la compilation pour le programme IllustrationInterface
. Par la
suite, vous pourrez, si vous le souhaitez, adapter le Makefile
pour
vos propres programmes.
Partie V : COMPRENDRE le trio Spécification-Test-Codage : L’écriture d’un test fiable#
Exercice 4
Un plateau est affiché sur une grille de hauteur \(h\) et largeur \(l\). Seuls sont affichés les \(h\) premiers mots du plateau, tronqués à leur \(l\) premières lettres, ainsi que le vrac.
Deux plateaux sont dits équivalents s’ils ont la même représentation pour le joueur; c’est-à-dire:
leur vrac est le même à permutation près
les \(l\) premiers mots sont identiques et dans le même ordre, en considérant les mots trop courts (deux lettres ou moins) ou trop long (l+1 lettres ou plus) comme s’ils étaient vides.
Il sera utile par la suite de déterminer si deux plateaux sont équivalents ou non. Cet exercice va vous guider pour spécifier, tester puis implanter ce test d’équivalence.
Consultez le programme IllustrationInterface.cpp. Quelles bibliothèques utilise-t-il?
Compilez ce programme avec ces bibliothèques et exécutez le.
Comparez l’affichage écran de ce fichier avec le code des tests dans le fichier mEquivalence-test.cpp.
Complétez mEquivalence-test.cpp avec un un test enrichi pour la fonction equivautA.
Implantez la fonction
equivautA
dans le fichier mEquivalence.cpp, jusqu’à ce qu’elle passe les deux tests.
Partie VI : CODER en réutilisant#
Exercice 11
Utilisez toutes les biliothèques précédentes pour coder votre jeu de JARNAC en utilisant la vue utilisateur fournie. Vous pourrez par exemple implanter dans controleurChoixAction.cpp un contrôleur tel que spécifié controleurChoixAction.hpp, puis combiner le tout. Il vous faudra aussi compléter le modèle.
Partie VII : CODER librement#
Exercice 12
Complétez votre code pour proposer les extensions du jeu (autre interface utilisateur, IA, etc. )