Format code et ajout de l'interface repository #3

Merged
mcmuzzle merged 1 commits from dev into main 2025-03-12 16:04:25 +00:00
9 changed files with 78 additions and 10 deletions

10
.editorconfig Normal file
View File

@@ -0,0 +1,10 @@
# top-most EditorConfig file
root = true
[*.cs]
indent_style = space
indent_size = 4
charset = utf-8
[Src/HexagonalLib/**]
generated_code = true

View File

@@ -1,18 +1,14 @@
namespace Giants.Application; namespace Giants.Application;
using Giants.Core.Interfaces;
using Giants.Infrastructure;
/// <summary> /// <summary>
/// Une application Giants permettant l'instanciations des services, utilisé pour une console /// Une application Giants permettant l'instanciations des services, utilisé pour une console
/// ou autre archi sans injections de dependances /// ou autre archi sans injections de dependances
/// /// </summary> /// </summary>
public class GiantApplication public class GiantApplication
{ {
/// <summary> Constructeur de base </summary> /// <summary> Constructeur de base </summary>
public GiantApplication() public GiantApplication()
{ {
IHexagonalGrid grid = new HexagonalGridImpl();
} }
} }

View File

@@ -0,0 +1,31 @@
using Giants.Core.Interfaces;
using Giants.Core;
using Giants.Infrastructure;
namespace Giants.Application;
/// <summary>
/// Implementation temporaire du repository de match
/// </summary>
public class MatchRepositoryMock : IMatchRepository
{
private readonly IHexagonalGrid _gridLayout;
/// <summary>
/// constructeur
/// </summary>
public MatchRepositoryMock()
{
_gridLayout = new HexagonalGridImpl();
}
/// <inheritdoc/>
public Match? GetMatch(int matchId)
{
Match result = new Match(_gridLayout);
// Ajout des données statiques
return result;
}
}

View File

@@ -1,10 +1,13 @@
using System.Security.Cryptography.X509Certificates;
using Giants.Core.Interfaces; using Giants.Core.Interfaces;
namespace Giants.Core; namespace Giants.Core;
/// <summary> /// <summary>
/// Il s'agit d'une instance d'une partie de Giants, c'est la racine de toutes les entitées de l'instance /// Il s'agit d'une instance d'une partie de Giants, c'est la racine de toutes les entitées de l'instance
/// /// </summary> /// l'objectif de cette classe est de pouvoir etre copiée tres rapidement avec la plus petite utilisation mémoire
/// Il faut également que la comparaison soit rapide et intelligente pour les besoins de l'IA
/// </summary>
public class Match public class Match
{ {
#region données statiques #region données statiques
@@ -20,4 +23,18 @@ public class Match
{ {
_grid = grid; _grid = grid;
} }
/// <summary> Permet de comparer des Match, cette methode est critique pour l'ia pour reduire son parcour d'arbre </summary>
/// <param name="obj"></param>
/// <returns></returns> <summary>
public override bool Equals(object? obj)
{
return base.Equals(obj);
}
/// <inheritdoc/>
public override int GetHashCode()
{
return base.GetHashCode();
}
} }

View File

@@ -5,5 +5,5 @@ namespace Giants.Core.Interfaces;
/// </summary> /// </summary>
public interface IHexagonalGrid public interface IHexagonalGrid
{ {
} }

View File

@@ -0,0 +1,14 @@
namespace Giants.Core.Interfaces;
/// <summary>
/// Interface de tout fournisseur de match, ils sont responsable d'instancier les match a partir d'un ID ou d'en créer des nouveaux
/// </summary>
public interface IMatchRepository
{
/// <summary>
/// Récupérer un match a patir de son ID,
/// </summary>
/// <param name="matchId">L'id unique du match a récupérer</param>
/// <returns>le match s'il existe ou null dans le cas contraire</returns>
Match? GetMatch(int matchId);
}

View File

@@ -1,4 +1,4 @@
namespace Giants.Core; namespace Giants.Core;
/// <summary> /// <summary>
/// Represente l'organisation d'un plateau, il ne contient aucune informations liées a une partie mais il permet /// Represente l'organisation d'un plateau, il ne contient aucune informations liées a une partie mais il permet

View File

@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<RootNamespace>HexagonalLib</RootNamespace> <RootNamespace>HexagonalLib</RootNamespace>
<TargetFrameworks>net472;net48;netcoreapp3.1</TargetFrameworks> <TargetFrameworks>net8.0</TargetFrameworks>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Title>HexagonalLib</Title> <Title>HexagonalLib</Title>
<Authors>Ivan Murashka</Authors> <Authors>Ivan Murashka</Authors>

View File

@@ -1,4 +1,4 @@
namespace Giants.Core.Tests; namespace Giants.Core.Tests;
using Giants.Application; using Giants.Application;