diff --git a/Marokanar.sln b/Marokanar.sln index a55ff74..a78784d 100644 --- a/Marokanar.sln +++ b/Marokanar.sln @@ -1,8 +1,16 @@  Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Marokanar", "Marokanar\Marokanar.csproj", "{FF53D393-2D40-4E0B-8BD8-D2D2FFE6912C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FF53D393-2D40-4E0B-8BD8-D2D2FFE6912C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF53D393-2D40-4E0B-8BD8-D2D2FFE6912C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF53D393-2D40-4E0B-8BD8-D2D2FFE6912C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF53D393-2D40-4E0B-8BD8-D2D2FFE6912C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection EndGlobal diff --git a/Marokanar/Canards/Canaradormi.cs b/Marokanar/Canards/Canaradormi.cs new file mode 100644 index 0000000..2d1eac0 --- /dev/null +++ b/Marokanar/Canards/Canaradormi.cs @@ -0,0 +1,23 @@ +namespace Marokanar.Canards; + +public class Canaradormi : CanardAdulte +{ + public Canaradormi(string nom, int argent, Skate skate) : base(nom, argent, 0, skate) + { + } + + public override void Move() + { + this.Position = Skate.Speed; + } + + public override string Quack(ICanard canard) + { + return "QUACK!"; + } + + public override string Quack() + { + return "QUACK!"; + } +} \ No newline at end of file diff --git a/Marokanar/Canards/Canarcdc.cs b/Marokanar/Canards/Canarcdc.cs new file mode 100644 index 0000000..beb11ac --- /dev/null +++ b/Marokanar/Canards/Canarcdc.cs @@ -0,0 +1,25 @@ +namespace Marokanar.Canards; + +public class Canarcdc : CanardAdulte +{ + public Canarcdc(string nom, int argent, Skate skate) : base(nom, argent, 0, skate) + { + + } + + public override void Move() + { + Position = Skate.Speed - 2; + } + + public override string Quack() + { + return "quack..."; + } + + public override string Quack(ICanard canard) + { + return "Quack"; + } + +} \ No newline at end of file diff --git a/Marokanar/Canards/CanardAdulte.cs b/Marokanar/Canards/CanardAdulte.cs new file mode 100644 index 0000000..d189604 --- /dev/null +++ b/Marokanar/Canards/CanardAdulte.cs @@ -0,0 +1,41 @@ +namespace Marokanar.Canards; + +public abstract class CanardAdulte : ICanard +{ + public string Nom { get; set; } + public int Argent { get; } + public int Position { get; set; } + public Skate Skate { get; set; } + + public CanardAdulte(string name, int argent, int position, Skate skate) + { + Nom = name; + Argent = argent; + Position = position; + Skate = skate; + } + + public abstract string Quack(); + public abstract string Quack(ICanard canard); + public abstract void Move(); + public bool Parier(int montant) + { + if (Argent < montant) + { + return false; + } + + return true; + } + public virtual string RecupererPari(int montantGagne) + { + if (montantGagne == 0) + { + return "Mince..."; + } + else + { + return "Youpi!"; + } + } +} \ No newline at end of file diff --git a/Marokanar/Canards/Caneton.cs b/Marokanar/Canards/Caneton.cs new file mode 100644 index 0000000..20fe241 --- /dev/null +++ b/Marokanar/Canards/Caneton.cs @@ -0,0 +1,14 @@ +namespace Marokanar.Canards; + +public class Caneton : ICanard +{ + public string Quack() + { + return "Quack!"; + } + + public string Quack(ICanard canard) + { + return "quack"; + } +} \ No newline at end of file diff --git a/Marokanar/Canards/ICanard.cs b/Marokanar/Canards/ICanard.cs new file mode 100644 index 0000000..74a291d --- /dev/null +++ b/Marokanar/Canards/ICanard.cs @@ -0,0 +1,7 @@ +namespace Marokanar.Canards; + +public interface ICanard +{ + public string Quack(); + public string Quack(ICanard canard); +} \ No newline at end of file diff --git a/Marokanar/Canards/VieuxCrouton.cs b/Marokanar/Canards/VieuxCrouton.cs new file mode 100644 index 0000000..256fe58 --- /dev/null +++ b/Marokanar/Canards/VieuxCrouton.cs @@ -0,0 +1,45 @@ +namespace Marokanar.Canards; + +public class VieuxCrouton : CanardAdulte +{ + public VieuxCrouton(string nom, int argent, Skate skate) : base(nom, argent, 0, skate) + { + + } + + public override void Move() + { + Position += Skate.Speed / 2; + } + + public override string Quack() + { + return ""; + } + + public override string Quack(ICanard canard) + { + if (canard.Quack() == "") + { + return "Quack."; + } + else + { + return ""; + } + } + + public override string RecupererPari(int montant) + { + if (montant == 0) + { + return "C’est un complot !"; + } + else + { + return "Youpi!"; + } + } + + +} \ No newline at end of file diff --git a/Marokanar/Marokanar.csproj b/Marokanar/Marokanar.csproj new file mode 100644 index 0000000..2f4fc77 --- /dev/null +++ b/Marokanar/Marokanar.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + + diff --git a/Marokanar/Program.cs b/Marokanar/Program.cs new file mode 100644 index 0000000..e5dff12 --- /dev/null +++ b/Marokanar/Program.cs @@ -0,0 +1,3 @@ +// See https://aka.ms/new-console-template for more information + +Console.WriteLine("Hello, World!"); \ No newline at end of file diff --git a/Marokanar/Skate.cs b/Marokanar/Skate.cs new file mode 100644 index 0000000..b6073a3 --- /dev/null +++ b/Marokanar/Skate.cs @@ -0,0 +1,21 @@ +namespace Marokanar; + +public class Skate +{ + public int Speed { get; set; } + + public Skate(int speed) + { + Speed = speed; + } + + public Skate(Skate s) + { + Speed = s.Speed; + } + + public static Skate operator +(Skate skate1, Skate skate2) + { + return new Skate(skate1.Speed + skate2.Speed); + } +} \ No newline at end of file