🧪 TP2 – Mini-système d’inventaire
🎯 Objectif du TP2
Bâtir, en console C#, une gestion de l'inventaire du personnage
Inventaire
-
👤 Un personnage avec minimum :
- un nom
- une force (force = poids maximal transportable)
-
🛠️ Une liste d’équipement (description, prix, poids, effet)
-
🎒 Un sac à dos de taille fixe contenant des indices vers la liste d’équipement
-
📜 Un menu interactif qui permet :
- d’acheter des items
- d’ajouter des items au sac
- tout en respectant la bourse et la limite de poids
🔹 Progression
Partie 1 – Inventaire
- Initialiser le personnage
- Définir les constantes et la liste d’équipement
- Implémenter les petites fonctions (getters)
- Gérer le sac à dos
- Implémenter l’achat
- Construire le menu d’équipement
Bonus – facultatif
- Amélioration de l’affichage (facultatif)
Étape 1 — Personnage
1️⃣ Déclarer les variables globales
static string gNomPersonnage = "";
static int gForce = 10;
static int gBourse = 20;
2️⃣ Dans Main
Appeler la fonction InitialiserPersonnage()
:
static void Main(string[] args)
{
InitialiserPersonnage();
}
3️⃣ Fonction InitialiserPersonnage
Crée la fonction InitialiserPersonnage
:
static void InitialiserPersonnage()
{
// Ici on a le choix :
// 1. On peut réutiliser notre code fait au TP1
// 2. ou initialiser simplement les variables 'gNomPersonnage' et 'gForce'
}
4️⃣ Fonction Tests
Crée une fonction Tests
que tu utiliseras pour vérifier chaque nouvelle fonction que tu créeras.
static void Tests()
{
Console.WriteLine($"Nom : {gNomPersonnage}");
Console.WriteLine($"Force : {gForce}");
Console.WriteLine($"Bourse : {gBourse} po");
}
Appelle-la aussi dans Main
:
static void Main(string[] args)
{
InitialiserPersonnage();
Tests();
}
✅ Résultat attendu
Ton programme affiche le personnage généré avec son nom, sa force et sa bourse de départ.
Étape 2 — Définir les constantes et la liste d’équipement
1️⃣ Constantes
On commence par définir des constantes pour représenter :
- Valeurs invalides (quand un prix ou un poids n’existe pas)
- Colonnes de la liste d’équipement (pour extraire description, prix, poids, effet)
const int INVALIDE = -1; // prix ou poids invalide
const string DESC_INVALIDE = "INVALIDE"; // description invalide
const int EQUIP_DESC = 0; // Exemple : "Épée"
const int EQUIP_PRIX = 1; // Exemple : 5 po
const int EQUIP_POIDS = 2; // Exemple : 2,5 Kg
const int EQUIP_EFFET = 3; // Exemple : "Attaque +3", "Points de vie +5"
2️⃣ Liste d’équipement
On crée un tableau de chaînes de caractères (string[]
).
Chaque item est représenté par une ligne avec le format suivant :
"Nom;Prix;Poids;Effet"
Exemple enrichi avec des emojis Windows 🎉 :
// 👇 Liste d'équipement enrichie + emojis Windows
static string[] gListeEquipement = {
"🗡️ Épée;5; 6,5 ;Attaque +3",
"🧪 Potion de vie;4; 0,5 ;Points de vie +5",
"🥖 Ration;2;4,2;Points de vie +4",
"