feat: Finish Julie's TP (maybe some error because it was so easy)

This commit is contained in:
Louis Gallet 2024-03-14 16:25:24 +01:00
parent 542de4ec5b
commit c2d43c58b4
Signed by: lgallet
GPG Key ID: 84D3DF1528A84511
10 changed files with 197 additions and 0 deletions

View File

@ -1,8 +1,16 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 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 Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
EndGlobalSection 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 EndGlobal

View File

@ -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!";
}
}

View File

@ -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";
}
}

View File

@ -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!";
}
}
}

View File

@ -0,0 +1,14 @@
namespace Marokanar.Canards;
public class Caneton : ICanard
{
public string Quack()
{
return "Quack!";
}
public string Quack(ICanard canard)
{
return "quack";
}
}

View File

@ -0,0 +1,7 @@
namespace Marokanar.Canards;
public interface ICanard
{
public string Quack();
public string Quack(ICanard canard);
}

View File

@ -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 "Cest un complot !";
}
else
{
return "Youpi!";
}
}
}

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

3
Marokanar/Program.cs Normal file
View File

@ -0,0 +1,3 @@
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

21
Marokanar/Skate.cs Normal file
View File

@ -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);
}
}