1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
| using System;
using System.Collections.Generic;
using System.Linq;
namespace Test_aleatoire
{
public class Entite
{
protected string nom;
protected bool estMort = false;
protected int pointsDeVie;
protected int degatsMin;
protected int degatsMax;
protected Random random = new Random();
public Entite(string nom)
{
this.nom = nom;
}
public void Attaquer(Entite uneEntite)
{
int degats = random.Next(degatsMin, degatsMax);
uneEntite.PerdrePointsDeVie(degats);
Console.WriteLine(this.nom + "(" + this.pointsDeVie + ")" + " attaque: " + uneEntite.nom);
Console.WriteLine(uneEntite.nom + " a perdu " + degats + " points de vie");
Console.WriteLine("Il reste " + uneEntite.pointsDeVie + " point de vie à " + uneEntite.nom);
if (uneEntite.estMort)
{
Console.WriteLine(uneEntite.nom + " est mort !");
pointsDeVie += 15;
}
}
protected void PerdrePointsDeVie(int pointsDeVie)
{
this.pointsDeVie -= pointsDeVie;
if (this.pointsDeVie <= 0)
{
this.pointsDeVie = 0;
estMort = true;
}
}
public bool EstMort()
{
return this.estMort;
}
}
public class Monstre
{
string nom;
string pointsDeVie;
string degatsMin;
string degatsMax;
public Monstre(string nom, string pointsDeVie, string degatsMin, string degatsMax)
{
this.nom = nom;
this.pointsDeVie = pointsDeVie;
this.degatsMin = degatsMin;
this.degatsMax = degatsMax;
}
public string Nom { get => nom; set => nom = value; }
public string PointsDeVie { get => pointsDeVie; set => pointsDeVie = value; }
public string DegatsMin { get => degatsMin; set => degatsMin = value; }
public string DegatsMax { get => degatsMax; set => degatsMax = value; }
public override string ToString()
{
return "Nom: " + nom + " Points de Vie: " + pointsDeVie + " Degats Min: " + degatsMin + " Degats Max: " + degatsMax;
}
}
public abstract class Personnage : Entite
{
private int niveau;
private int experience;
public Personnage(string nom) : base(nom)
{
this.nom = nom;
niveau = 1;
experience = 0;
}
public void GagnerExperience(int experience)
{
this.experience += experience;
while (this.experience >= ExperienceRequise())
{
niveau += 1;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Bravo : Vous avez atteint le niveau " + niveau + " !");
pointsDeVie += 100;
degatsMin += 25;
degatsMax += 35;
}
}
public double ExperienceRequise()
{
return Math.Round(4 * (Math.Pow(niveau, 3) / 5));
}
public string Caracteristiques()
{
return this.nom + "\n" + "Niveau: " + niveau + "\n" + "Points d'expérience: (" + experience + "/" + ExperienceRequise() + "\n" + "Dégats: [" + degatsMin + ";" + degatsMax + "]" + "\n" + "Points de vie: " + pointsDeVie;
}
}
class Program
{
static void Main(string[] args)
{
Menu();
}
static void Jouer(Personnage monPerso)
{
List<Monstre> monstre = new List<Monstre>();
monstre.Add(new Monstre("Ours", "70", "15", "20"));
monstre.Add(new Monstre("Loup", "50", "10", "15"));
monstre.Add(new Monstre("Lynx", "60", "20", "25"));
monstre.Add(new Monstre("Castor mutant", "80", "30", "35"));
monstre.Add(new Monstre("Ecureuil ninja", "100", "25", "30"));
var random = new Random();
int monstreAlea = random.Next(monstre.Count);
//Console.WriteLine(monstre[monstreAlea]);
Monstre creature = (monstre[monstreAlea]);
Console.WriteLine(creature);
bool victoire = true;
bool suivant = false;
while (!creature.EstMort())
{
//tour du monstre
Console.ForegroundColor = ConsoleColor.Red;
monPerso.Attaquer(creature);
Console.WriteLine();
Console.ReadKey(true);
if (monPerso.EstMort())
{
victoire = false;
break;
}
//tour du personnage
if (!creature.EstMort())
{
Console.ForegroundColor = ConsoleColor.Green;
creature.Attaquer(monPerso);
Console.WriteLine();
Console.ReadKey(true);
}
}
if (victoire)
{
monPerso.GagnerExperience(5);
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine();
Console.WriteLine(monPerso.Caracteristiques());
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine();
while (!suivant)
{
Console.WriteLine("Combat suivant ? (O/N");
string saisie = Console.ReadLine().ToUpper();
if (saisie == "O")
{
suivant = true;
Jouer(monPerso);
}
else if (saisie == "N")
{
Environment.Exit(0);
}
}
}
else
{
Console.ForegroundColor = ConsoleColor.DarkRed;
Console.WriteLine();
Console.WriteLine("C'est perdu !!!");
Console.ReadKey();
}
}
static void Menu()
{
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Le jeu");
Console.WriteLine();
Console.WriteLine("Choisis ta classe: ");
Console.WriteLine("1: Guerrier");
Console.WriteLine("2: Archer");
Console.WriteLine("3: Voleur");
Console.WriteLine("4: Quitter");
Console.WriteLine();
switch (Console.ReadLine())
{
case "1":
Console.WriteLine("Vous avez choisis Guerrier !");
Console.WriteLine();
Jouer(new Guerrier("OlafMegabaff"));
break;
case "2":
Console.WriteLine("Vous avez choisis Archer !");
Console.WriteLine();
Jouer(new Archer("Legolas"));
break;
case "3":
Console.WriteLine("Vous avez choisis Voleur !");
Console.WriteLine();
Jouer(new Voleur("Renshaw"));
break;
case "4":
break;
}
}
}
} |
Partager