Vous êtes sur la page 1sur 2

INF1005C PROGRAMMATION PROCÉDURALE - Automne 2010

Travail dirigé No. 4

Fonctions

L'objectif du TD4 est de permettre à l'étudiant de comprendre l’importance de l’utilisation de


fonctions. À la fin de celui ci l’étudiant sera capable de créer des fonctions et de les utiliser
correctement.

Remise du travail: 23h30 le jour de la deuxième séance de laboratoire.

Directives particulières
● Affichez toujours un message d’invite avant chaque saisie.
● Vous n’avez pas à valider les entrées.
● Inutile de chercher à afficher les caractères accentués.
● Vous pouvez déclarer toutes les variables désirées.
● Utilisez le type string pour les chaînes de caractères.

Un programme de base vous est fourni pour ce programme. Vous devez compléter ce
programme à l’aide de fonctions décrites ci-dessous. Vous ne devez pas changer la structure des
instructions contenue dans la fonction main(). Vous devez uniquement compléter les appels de
fonctions et rédiger ces fonctions.

Le travail consiste à réaliser un petit jeu très simple dans lequel un personnage peut gagner
des points de vie en combattant des adversaires.

1. Compléter la fonction demanderNom() qui demande à l’usager le nom qu’il souhaite


donner à son personnage. La fonction s’assure que le nom n’est pas vide et dans un tel
cas demande à l’usager d’entrer un nouveau nom. Vous devez ajouter les instructions
manquantes à la fonction correspondante déjà incluse dans le programme.

2. Compléter la fonction afficherMenu(string nom) qui affiche le menu des actions


possibles (celles contenues dans le switch-case de la fonction main()). Le nom du
personnage est affiché au dessus du menu (par exemple “Bienvenue Bob, choisis une
action : ...”). Vous devez ajouter les instructions manquantes à la fonction correspondante
déjà incluse dans le programme.

3. Rédiger la fonction “afficherInfos(...)”. Celle-ci prend en argument les


informations sur le joueur (nom, vie, force) et les affiche. Vous pouvez afficher ces
informations comme vous le souhaitez. La fonction n’a pas de valeur de retour.
INF1005C PROGRAMMATION PROCÉDURALE - Automne 2010

4. Rédiger la fonction entrainer() qui permet au personnage de gagner de la force.


Celle-ci prend en argument la force courante ainsi que la force maximale autorisée et
augmente la force d’une valeur aléatoire. Pour générer cette valeur vous pouvez utiliser la
fonction genererNombre() qui retourne un nombre aléatoire compris entre 0 et max.
Le personnage ne peut pas gagner plus de 10% de force à chaque appel. Il faut aussi
s’assurer que la nouvelle force ne dépasse pas la force maximale autorisée. La fonction
n’a pas de valeur de retour.

5. Rédiger la fonction combattreUnMonstre() qui permet au personnage de gagner des


points de vie s’il gagne le combat ou d’en perdre dans le cas contraire. Les monstres sont
représentés par un tableau d’entiers contenant leurs forces. Il faut passer ce tableau
comme argument à la fonction et utiliser la fonction genererNombre() pour choisir
aléatoirement un monstre dans celui-ci. Le combat consiste au départ à calculer la
différence entre la force du monstre et celle du personnage. Si la différence est positive,
le monstre est plus fort que le personnage, elle est alors soustraite de la force du
personnage. Si la différence est négative, le personnage est plus fort que le monstre, elle
est alors ajoutée à la force du personnage et la force du monstre devient 0. Par exemple si
le monstre a une force de 130 et le personnage a une force de 120, celui-ci perdra 10
points de vie. Par contre, si le personnage à une force de 130 et le monstre a une force de
115, le personnage gagnera 15 points de vie et la force du monstre tombera à 0 dans le
tableau. Il faut signaler au joueur que le monstre est déjà vaincu si le monstre choisi au
départ a une force de 0. Le nombre de points à enlever ou à ajouter sera retourné par la
fonction, et le nouveau total de points de vie est calculé dans la fonction main() (en ne
dépassant pas le maximum). Si le héros possède 0 point de vie (ou moins), un message
indique que la partie est finie et on doit sortir du switch case.

6. Rédiger la fonction decorerNom() qui prend en paramètre le nom du héros et


demandera à l’usager un ajout au nom . L’affichage sera le suivant :

“Le nom courant est Bob, entrer la decoration pour celui ci : “


“L’eponge”
“Le nouveau nom est Bob L’eponge.”

La fonction n’a pas de valeur de retour.

7. Rédiger la fonction entrerCode(), qui demande à l’usager d’entrer un code, vérifie


son exactitude et s’il est correct la vie du personnage est réinitialisée au maximum. Par
exemple, vous pouvez exiger le code VIVEINF1005C pour mettre la vie du personnage
au maximum. La fonction retournera une valeur indiquant son succès ou non. En cas
d’échec un message sera affiché par la fonction main().

8. Rédiger la fonction ecrireInfos(...) qui ouvre le fichier “InfosJeu.txt” et qui y


inscrit les informations concernant le personnage courant (nom, vie, force).

Vous aimerez peut-être aussi