Apprentissage des principes de la programmation orientée objet.
Encapsulation, héritage, abstraction et polymorphisme.
Exemple d’héritage:
namespace Heritage
{
class Program
{
static void Main(string[] args)
{
CharacterClass newCharacter = new CharacterClass();
}
}
}
namespace Heritage
{
public abstract class Entity
{
protected int strength;
protected int dexterity;
protected int willpower;
protected int healthPoints;
protected string name;
protected string classType;
}
}
namespace Heritage
{
public class Character : Entity
{
private int level;
private int experience;
public Character()
{
classType = ClassName();
level = 1;
experience = 0;
name = CharacterName();
strength = CharacterStrength();
dexterity = CharacterDexterity();
willpower = CharacterWillpower();
healthPoints = 5;
//Console.WriteLine(Stats());
}
public static string CharacterName()
{
var random = new Random();
var firstName = new List<string> { "Gordon", "John", "Kaneda", "François"};
var lastName = new List<string> { "Freeman", "Carter", "Shotaro", "Deschamps"};
int index1 = random.Next(firstName.Count);
int index2 = random.Next(lastName.Count);
string name = firstName[index1] + " " + lastName[index2];
return name;
}
public static int CharacterStrength()
{
var random = new Random();
int strength = random.Next(1, 4);
return strength;
}
public static int CharacterDexterity()
{
var random = new Random();
int dexterity = random.Next(1, 4);
return dexterity;
}
public static int CharacterWillpower()
{
var random = new Random();
int willpower = random.Next(1, 4);
return willpower;
}
private string ClassName()
{
var random = new Random();
var classes = new List<string> { "Wizard", "Thief", "Fighter" };
int index = random.Next(classes.Count);
string classType = classes[index];
return classType;
}
public string Stats()
{
return $"Name: {name}\n" +
$"Class: {classType}\n" +
$"Level: {level}\n" +
$"XP: {experience}\n" +
$"STR: {strength}\n" +
$"DEX: {dexterity}\n" +
$"WIL: {willpower}\n" +
$"HP: {healthPoints}\n";
}
}
}
namespace Heritage
{
public class CharacterClass : Character
{
public CharacterClass()
{
switch (classType)
{
case "Wizard":
willpower += 5;
break;
case "Thief":
dexterity += 4;
healthPoints += 1;
break;
case "Fighter":
strength += 3;
healthPoints += 3;
break;
}
Console.WriteLine(Stats());
}
}
}
Laisser un commentaire