Vous êtes sur la page 1sur 9

TP2 | Introduction à la programmation | A2023

TRAVAIL PRATIQUE 2

TABLE DES MATIÈRES


PRÉCISIONS SUR CE TP ......................................................................................................................................................... 2

Travail à faire individuellement. .............................................................................................................................................. 2

OBJECTIFS ............................................................................................................................................................................ 2

Contexte du travail à réaliser ............................................................................................................................................... 2

FICHIERS DE DÉPART ............................................................................................................................................................ 3

Fichier de départ « inventaire_depart.txt » ............................................................................................................................. 3


Lecture du fichier ................................................................................................................................................................ 3
Écriture dans un nouveau fichier ........................................................................................................................................ 3

Fichier final « inventaire_NOM_PRENOM.txt" ........................................................................................................................ 3

Projet visual studio de départ .............................................................................................................................................. 4

Séquence d’exécution du programme (en ordre) ................................................................................................................. 4

ÉTAPES (voir séquence.txt) ...................................................................................................................................................... 4

REMISE ................................................................................................................................................................................ 6

Date et heure de remise .......................................................................................................................................................... 6

Remise de votre travail ............................................................................................................................................................ 6

Retard et pénalités .................................................................................................................................................................. 6

GRILLE DE CORRECTION ....................................................................................................................................................... 6

ANNEXE I – RÈGLES DU JEU ET AUTRES INFORMATIONS ...................................................................................................... 8

Coffre .................................................................................................................................................................................. 8
Inventaire ............................................................................................................................................................................ 8
Nom de l’outil ..................................................................................................................................................................... 8
Durabilité ............................................................................................................................................................................ 9
Force de dommage. ............................................................................................................................................................ 9

1
TP2 | Introduction à la programmation | A2023

PRÉCISIONS SUR CE TP
Cours / Professeur Travail Pondération Session
420-04A-FX Introduction à la programmation
TP2 10% A2022
Patrick Dufour

Travail à faire individuellement.

OBJECTIFS
Créer un petit programme en utilisant les éléments vus en classe semaine jusqu’à la semaine 7.
Notamment :
✓ Variables, affections, écriture, lecture, opérateurs arithmétiques
✓ Manipulation de chaînes
✓ Instructions SI, POUR
✓ Vecteurs (tableaux)
✓ Lecture et écriture dans un fichier texte

CONTEXTE DU TRAVAIL À RÉALISER


Imaginons un petit programme en C# (console) qui reproduit une
action bien connue et inspirée du célèbre jeu Minecraft : l’ouverture
d’un coffre et la récupération de son contenu. Dans notre cas, nous
appellerons simplement notre petit programme
« Simulation Minecraft en Console ».
Évidemment, on se concentre que sur une petite partie du jeu, mais
on vous demande de bien la coder et de fournir une belle interface,
aussi claire que possible, à l’utilisateur.
Que vous ayez déjà joué ou non à Minecraft, ce n’est pas grave du tout. Cependant, assurez-vous de
bien lire l’annexe 1 pour comprendre les termes utilisés ce qu’on attend de vous en programmation
C#.

2
TP2 | Introduction à la programmation | A2023

FICHIERS DE DÉPART

Fichier de départ « inventaire_depart.txt »


C’est le coffre de départ, représenté sous forme d’un fichier texte. On vous fournit
un exemple de départ qui contient : 9 items (avec leur donnée de DURABILIRÉ et
FORCE DE DOMMAGE). Ces items pourraient être différents d’un coffre à l’autre,
votre programme ne peut pas le savoir à l’avance, il doit donc s’adapter.
Cependant, vous pouvez tenir pour acquis (et votre programme) qu’il y aura
toujours 9 items dans un coffre. Vous devrez copier ce fichier
(inventaire_depart.txt) dans votre dossier C:\data\420-04A-FX\TP2 avant de
commencer votre programme.

Lecture du fichier
Tel que vu dans les exemples du cours, vous devrez vous créer un dossier sur votre ordinateur afin que
votre chemin d’accès fonctionne dans votre programme. Votre chemin d’accès complet pour lire votre
inventaire devrait donc ressembler à ceci :
C:\data\420-04A-FX \TP2\inventaire_depart.txt. N’oubliez pas d’utiliser le caractère @ en avant de
votre string pour éviter de devoir doubler toutes les barres obliques \\

Écriture dans un nouveau fichier

Fichier final « inventaire_NOM_PRENOM.txt"


À la fin du programme, celui demander à l’utilisateur d’enregistrer l’inventaire (donc d’écrire dans un
NOUVEAU fichier .txt). Votre programme devra alors créer un nouveau fichier dans le même dossier
(C:\data\420-04A-FX\TP2) et le nommer exactement ainsi : « inventaire_NOM_PRENOM.txt ». Votre
nom et prénom ne doivent pas contenir de caractères spéciaux (Exemple : inventaire_Smith_John.txt)

Attention, ce fichier doit être de même structure que le fichier de départ (exactement 3 lignes, avec 8
délimiteurs (;), 9 items en tout, etc.). Autrement dit, je devrais être capable de remplacer le fichier de
départ par celui que vous aurez créé à la fin de l’exécution de votre programme et être en mesure
d’utiliser le programme normalement et de charger votre nouveau fichier normalement.

3
TP2 | Introduction à la programmation | A2023

PROJET VISUAL STUDIO DE DÉPART


Vous devez créer un projet de départ nommé TP2_NOM_PRENOM. Je vous donne la séquence
d’exécution (sequence.txt) à réaliser par votre programme. Vous devez copier/coller cette séquence
dans le MAIN de votre projet (ce sont des commentaires) et compléter le code pour chaque partie du
programme identifiée par les commentaires. Plus bas, vous avez des instructions précises sur chaque
section à réaliser ainsi que les points associés. Attention, chacune des étapes de la séquence est
responsable de réaliser une tâche dans le programme, vous devez donc coder les choses aux bons
endroits.

SÉQUENCE D’EXÉCUTION DU PROGRAMME (EN ORDRE)


Cette séquence doit être respectée : c’est l’ordre dans laquelle le programme se réalise. Pour chaque
étape, on vous donne les points associés à la correction. Chaque étape est à coder à l’endroit indiqué
en commentaires dans la séquence.txt que je vous fournis.

ÉTAPES (voir séquence.txt)


1. (2 points) Création de l’en-tête du programme. Présentation, visuel, etc.
Dans cette partie, c’est une question de bien présenter votre programme en mode console. Utiliser
du texte, des caractères, des lignes, comme vous voulez, mais ça doit être beau et clair.

2. (16 points) Lecture du fichier inventaire_depart.txt et chargement des données dans votre
programme (variables vecteurs)
Ici, vous devez en C# ouvrir le fichier .txt, le lire, récupérer ses données dans vos variables et le
fermer. La récupération des données consiste à vous créer 3 vecteurs, représentant les 3 lignes du
fichier. Le programme doit lire chaque ligne avec la fonction ReadLine() à partir du StreamReader
et la décomposer correctement tel que vu en classe et affecter les données à vos vecteurs.

Attention, certaines données doivent être calculées (nombres), alors vous sans doute des
opérations de conversion à réaliser.

3. (8 points) Affichage de l'inventaire une fois chargé dans votre programme


Une fois chargé dans vos variables, le programme doit afficher l’information. Autrement dit, on doit
afficher le contenu des vecteurs, regroupant les informations ensembles aux bons endroits.
4
TP2 | Introduction à la programmation | A2023

4. (8 points) Calcul et affichage de la FORCE DE DOMMAGE TOTALE COMBINÉE de tous les items
Par exemple, soit l’inventaire ci-dessous. La force de dommage total serait alors de 15 (5+ 4 + 6)
Pioche ; Hache ; Pelle
60;45;80
5;4;6
5. (8 points) Recherche et affichage des items ayant une durabilité inférieure à 50%
Pour chaque item trouvé, afficher son nom ainsi que sa durabilité. Rappel : la durabilité est
toujours entre 0 et 100.

6. (8 points) Déterminer si un item en particulier est présent dans l’inventaire

Le programme demande à l’utilisateur le nom d’un item et effectue une recherche dans
l’inventaire. Si l’item est présent (au moins 1 fois), le programme affiche un seul message « Item
trouvé », sinon « Item introuvable »

7. (25 points) Modification des durabilités et forces de chaque item par l'utilisateur.
Votre programme doit permettre à l’utilisateur de modifier les durabilités et forces et ce pour
chaque item. On ne doit pas pouvoir modifier les noms d’items. L’interface doit être claire et
permettre de voir quel item on est en train d’être modifié et ses valeurs actuelles avant de le
modifier.

7.1. Contraintes à respecter


Certaines contraintes sont à respecter et votre code doit permettre de les gérer. Vous ne serez
pas pénalisé pour d’autres situations imprévues dans l’énoncé. Voici les contraintes ciblées :

✓ Lors de la modification, la durabilité d’un item doit être comprise entre 0 et 100,
inclusivement. Si l’utilisateur n’entre pas une donnée valide, alors le programme ne modifie
rien, le signaler clairement à l’utilisateur et passe à autre chose.

✓ La force de dommage d’un item doit être comprise entre 0 et 10 inclusivement. Si


l’utilisateur n’entre pas une donnée valide, alors le programme ne modifie rien, le signaler
clairement à l’utilisateur et passe à autre chose.

8. (10 points) Enregistrement des modifications dans UN NOUVEAU FICHIER


Votre programme doit permettre d’enregistrer (ouvrir, écrire, fermer) ce nouvel inventaire dans un
nouveau fichier « inventaire_NOM_PRENOM.txt »

5
TP2 | Introduction à la programmation | A2023

✓ Attention, ce fichier doit être organisé exactement sous la même structure que le fichier de
départ inventaire_depart.txt, sans quoi il ne sera pas valide si on décide de le recharger
dans le programme.

o Donc même nombre de ligne, même nombre de délimiteurs, etc.

REMISE
Date et heure de remise
• Voir LÉA / TRAVAUX pour tous les détails de remise pour ce travail

Remise de votre travail


• Le travail est à remettre au même endroit que l’énoncé, sur LÉA.
• Vous devez nommer votre travail ainsi :
o « TPX_NOM-PRENOM.zip » lorsque vous êtes seul
o « TPX_NOM1-PRENOM1-NOM2-PRENOM2.zip » lorsque vous êtes plusieurs.

Retard et pénalités
• Retard : -10% par tranche de 24 heures après la date et heure de remise maximale.
• VOUS ÊTES RESPONSABLE DE VÉRIFIER SI VOTRE ARCHIVE ZIP EST VALIDE, en testant sur votre
bureau l’extraction de celle-ci et ensuite l’ouverture de votre projet. Une remise d’une archive
.ZIP incomplet ou non fonctionnel est considéré comme un travail non remis et entraîne
la note 0.

GRILLE DE CORRECTION
À titre de référence, voici les principaux critères d’évaluation. Cette grille pourrait être modifiée lors de
la correction au besoin.

Éléments % Points
Voir chaque élément demandé dans la SÉQUENCE D’EXÉCUTION DU 85%
PROGRAMME
Qualité du code : 5%

6
TP2 | Introduction à la programmation | A2023

Indentation du code, lisibilité, organisation logique, espacements entre les


différentes parties de code, etc.
Commentaires dans le code : 10%
Le code est régulièrement commenté (à chaque création de variables, à chaque
exécution du IF/ELSE, FOR, etc.) et les commentaires sont courts et pertinents.
Pénalités possibles
• Retard ou remise ne respectant pas les indications de l’énoncé
• Problèmes d’exécution ou d’ouverture du travail
• Non-respect des critères de remises (Zip, nom des répertoires, etc.)
• Français (-1% par fautes dans une interface, -0,25% dans tout document
de conception ou documentation)
Total 100 %

7
TP2 | Introduction à la programmation | A2023

ANNEXE I – RÈGLES DU JEU ET AUTRES INFORMATIONS


Coffre
Un coffre, c’est une représentation des items dans un fichier texte.
Un coffre contient exactement 9 items, et ses items seront
toujours des noms d’outils (ligne 1) associés d’une durabilité (ligne
2) et d’une force de dommage (ligne 3).
Le coffre de départ ne peut pas contenir autre chose que des
outils, alors vous n’avez pas à tenir compte de d’autres situations.
Votre programme peut tenir pour acquis qu’il a exactement 9
items dans un coffre. Cependant, les noms/durabilités/forces
peuvent varier d’un coffre à l’autre. Autrement dit, votre
programme devrait pouvoir permettre de toutes les étapes
demandées et ce peu importe le contenu du fichier texte bien
structuré en entrée.

Inventaire
C’est la représentation structurée du contenu du coffre, mais une fois chargée dans votre
programme sous forme de 3 variables vecteurs. Les valeurs numériques doivent pouvoir être
calculées, donc vos vecteurs auront des types en conséquence. Chaque ligne du fichier texte est
représentée par un vecteur. Le fichier à 3 lignes.

Nom de l’outil
C’est une chaîne qui représente le nom de l’outil. Cette donnée
représente la ligne #1 du fichier texte.

8
TP2 | Introduction à la programmation | A2023

Durabilité
C’est un entier (de 0 à 100) qui représente la durabilité d’un outil. La
durabilité d’un outil est sa capacité de durer lorsqu’on s’en sert pour
miner des blocs. Cette donnée représente la ligne #2 du fichier texte.

Force de dommage.
C’est un entier (de 0 à 10) qui représente la force de dommage d’un
outil. La force de dommage d’un outil est la force avec laquelle l’outil
va miner un bloc qui possède une certaine durabilité. Chaque coup
sur le bloc retranche sur celui-ci la force de dommage de l’outil.
Cette donnée représente la ligne #3 du fichier texte.

Vous aimerez peut-être aussi