From 9cfb22166d9199781cc50807f595124db75da3e8 Mon Sep 17 00:00:00 2001 From: "jules.lascret" Date: Sat, 18 May 2024 15:40:03 +0200 Subject: [PATCH 1/6] Corrected some stuff for the class diagram --- .../Events/AddPlayerNotifiedEventArgs.cs | 4 +-- .../Events/EndOfGameNotifiedEventArgs.cs | 4 +-- .../Events/NextPlayerNotifiedEventArgs.cs | 4 +-- .../Events/PlaceTileNotifiedEventArgs.cs | 8 +++--- .../Players/Leaderboard.cs | 25 +++++++++---------- .../QwirkleConsoleApp/NotificationClass.cs | 8 +++--- Qwirkle/QwirkleConsoleApp/Program.cs | 4 +-- 7 files changed, 28 insertions(+), 29 deletions(-) diff --git a/Qwirkle/QwirkleClassLibrary/Events/AddPlayerNotifiedEventArgs.cs b/Qwirkle/QwirkleClassLibrary/Events/AddPlayerNotifiedEventArgs.cs index 5969f87..da92a31 100644 --- a/Qwirkle/QwirkleClassLibrary/Events/AddPlayerNotifiedEventArgs.cs +++ b/Qwirkle/QwirkleClassLibrary/Events/AddPlayerNotifiedEventArgs.cs @@ -2,11 +2,11 @@ { public class AddPlayerNotifiedEventArgs : EventArgs { - public string returnedNotified { get; private set; } + public string ReturnedNotified { get; private set; } public AddPlayerNotifiedEventArgs(string returnedNotified) { - this.returnedNotified = returnedNotified; + ReturnedNotified = returnedNotified; } } } \ No newline at end of file diff --git a/Qwirkle/QwirkleClassLibrary/Events/EndOfGameNotifiedEventArgs.cs b/Qwirkle/QwirkleClassLibrary/Events/EndOfGameNotifiedEventArgs.cs index b36f906..b691baa 100644 --- a/Qwirkle/QwirkleClassLibrary/Events/EndOfGameNotifiedEventArgs.cs +++ b/Qwirkle/QwirkleClassLibrary/Events/EndOfGameNotifiedEventArgs.cs @@ -4,11 +4,11 @@ namespace QwirkleClassLibrary.Events { public class EndOfGameNotifiedEventArgs { - public Player player { get; private set; } + public Player Player { get; private set; } public EndOfGameNotifiedEventArgs(Player player) { - this.player = player; + this.Player = player; } } } \ No newline at end of file diff --git a/Qwirkle/QwirkleClassLibrary/Events/NextPlayerNotifiedEventArgs.cs b/Qwirkle/QwirkleClassLibrary/Events/NextPlayerNotifiedEventArgs.cs index 967ca26..06207b0 100644 --- a/Qwirkle/QwirkleClassLibrary/Events/NextPlayerNotifiedEventArgs.cs +++ b/Qwirkle/QwirkleClassLibrary/Events/NextPlayerNotifiedEventArgs.cs @@ -4,11 +4,11 @@ namespace QwirkleClassLibrary.Events { public class NextPlayerNotifiedEventArgs : EventArgs { - public Player player { get; private set; } + public Player Player { get; private set; } public NextPlayerNotifiedEventArgs(Player player) { - this.player = player; + this.Player = player; } } } \ No newline at end of file diff --git a/Qwirkle/QwirkleClassLibrary/Events/PlaceTileNotifiedEventArgs.cs b/Qwirkle/QwirkleClassLibrary/Events/PlaceTileNotifiedEventArgs.cs index 9608417..c79ce62 100644 --- a/Qwirkle/QwirkleClassLibrary/Events/PlaceTileNotifiedEventArgs.cs +++ b/Qwirkle/QwirkleClassLibrary/Events/PlaceTileNotifiedEventArgs.cs @@ -4,14 +4,14 @@ namespace QwirkleClassLibrary.Events { public class PlaceTileNotifiedEventArgs : EventArgs { - public Tile tile { get; private set; } + public Tile Tile { get; private set; } - public string reason { get; private set; } + public string Reason { get; private set; } public PlaceTileNotifiedEventArgs(Tile tile, string reason) { - this.tile = tile; - this.reason = reason; + this.Tile = tile; + this.Reason = reason; } } } \ No newline at end of file diff --git a/Qwirkle/QwirkleClassLibrary/Players/Leaderboard.cs b/Qwirkle/QwirkleClassLibrary/Players/Leaderboard.cs index 2b7141d..4cd16db 100644 --- a/Qwirkle/QwirkleClassLibrary/Players/Leaderboard.cs +++ b/Qwirkle/QwirkleClassLibrary/Players/Leaderboard.cs @@ -10,27 +10,26 @@ namespace QwirkleClassLibrary.Players { public class Leaderboard { - public ReadOnlyCollection LB => leaderb.AsReadOnly(); - private readonly List leaderb = new(); - public Leaderboard() { } - - + public ReadOnlyCollection Lb => leaderboard.AsReadOnly(); + private readonly List leaderboard = new(); + public int IsPlayerIn(Player player) { - for (int i = 0; i < leaderb.Count; i++) + for (int i = 0; i < leaderboard.Count; i++) { - if (player.NameTag == leaderb[i].PlayerName) + if (player.NameTag == leaderboard[i].PlayerName) { return i; } } return -1; } - public void AddScoreInLead(ReadOnlyDictionary ScoreBoard) + + public void AddScoreInLead(ReadOnlyDictionary scoreBoard) { DateTime now = DateTime.Today; bool first = true; - var sb = ScoreBoard.OrderByDescending(x => x.Value).ThenBy(x => x.Key.NameTag); + var sb = scoreBoard.OrderByDescending(x => x.Value).ThenBy(x => x.Key.NameTag); foreach (KeyValuePair pair in sb) { @@ -39,14 +38,14 @@ namespace QwirkleClassLibrary.Players if (i != -1) { - leaderb[i].Date = now; + leaderboard[i].Date = now; if (first) { - leaderb[i].Victories++; + leaderboard[i].Victories++; } - leaderb[i].Points = pair.Value; + leaderboard[i].Points = pair.Value; } else @@ -57,7 +56,7 @@ namespace QwirkleClassLibrary.Players v = 1; } Score score = new Score(pair.Key.NameTag, now, pair.Value, v); - leaderb.Add(score); + leaderboard.Add(score); } first = false; diff --git a/Qwirkle/QwirkleConsoleApp/NotificationClass.cs b/Qwirkle/QwirkleConsoleApp/NotificationClass.cs index 4f05a50..5c6a130 100644 --- a/Qwirkle/QwirkleConsoleApp/NotificationClass.cs +++ b/Qwirkle/QwirkleConsoleApp/NotificationClass.cs @@ -14,7 +14,7 @@ namespace QwirkleConsoleApp { ForegroundColor = ConsoleColor.Yellow; WriteLine(); - WriteLine(args.returnedNotified); + WriteLine(args.ReturnedNotified); WriteLine(); ResetColor(); } @@ -23,7 +23,7 @@ namespace QwirkleConsoleApp { ForegroundColor = ConsoleColor.Yellow; WriteLine(); - WriteLine(args.player.NameTag + "'s turn"); + WriteLine(args.Player.NameTag + "'s turn"); WriteLine(); ResetColor(); } @@ -32,7 +32,7 @@ namespace QwirkleConsoleApp { ForegroundColor = ConsoleColor.Magenta; WriteLine(); - WriteLine("The tile [" + args.tile.ToString() + "] " + args.reason); + WriteLine("The tile [" + args.Tile.ToString() + "] " + args.Reason); WriteLine(); ResetColor(); } @@ -41,7 +41,7 @@ namespace QwirkleConsoleApp { ForegroundColor = ConsoleColor.Red; WriteLine(); - WriteLine("This end of game ! The last player is " + args.player.NameTag + " !"); + WriteLine("This end of game ! The last player is " + args.Player.NameTag + " !"); WriteLine(); ResetColor(); diff --git a/Qwirkle/QwirkleConsoleApp/Program.cs b/Qwirkle/QwirkleConsoleApp/Program.cs index c0bbcdc..d24d141 100644 --- a/Qwirkle/QwirkleConsoleApp/Program.cs +++ b/Qwirkle/QwirkleConsoleApp/Program.cs @@ -263,9 +263,9 @@ static void ShowLeaderboard(Leaderboard leaderboard) WriteLine(" --------------------- THE LEADERBOARD : ---------------------"); WriteLine("Position : | PlayerTag : | Last Date : | Points : | Victories :"); - for (int i=0; i Date: Sat, 18 May 2024 15:41:24 +0200 Subject: [PATCH 2/6] fixed small issue --- Qwirkle/TestBase/TestLeaderboard.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Qwirkle/TestBase/TestLeaderboard.cs b/Qwirkle/TestBase/TestLeaderboard.cs index 6c08ef6..d9e4dce 100644 --- a/Qwirkle/TestBase/TestLeaderboard.cs +++ b/Qwirkle/TestBase/TestLeaderboard.cs @@ -60,7 +60,7 @@ public class TestLeaderboard leaderboard.AddScoreInLead(game.ScoreBoard); - Assert.Equal(2, leaderboard.LB[0].Victories); + Assert.Equal(2, leaderboard.Lb[0].Victories); } From 3d019021605c301f78959679df9f6fa5bc975f09 Mon Sep 17 00:00:00 2001 From: Remy PORTET Date: Sat, 18 May 2024 15:41:47 +0200 Subject: [PATCH 3/6] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/README.md b/README.md index f51bbed..5e5253b 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,41 @@ Notré présentation est consutable sur ce [lien](https://codefirst.iut.uca.fr/g * Jérémy Mouyon *(chef de projet)* +## *Comment utiliser notre application ?* + +Tout d'abord, récupérez notre projet en tapant dans votre terminal : +```sh +git clone https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle.git +``` +Ensuite, lancez votre IDE préféré et exécutez le projet **QwirkleConsoleApp**. Cela vous permettra d'accéder à l'application qui se jouera dans un terminal. + +**Trois options se présentent à vous :** lancer une partie, afficher le leaderboard, ou bien quitter l'application. Suivez les instructions que vous voyez sur l'écran afin d'effectuer votre choix. Il est à noter que la partie "leaderboard", permettant d'afficher les meilleurs scores de joueurs enregistrés lors des différentes parties jouées sur l'application, n'est pas encore opérationnelle à ce stade du projet. + +### *Création d'une partie* + +Commencez par rentrer les pseudos des joueurs qui participeront au jeu. Un minimum de 2 joueurs est **requis** pour lancer la partie, mais vous pouvez aller jusqu'à 4 joueurs ! +Attention, veuillez prendre en compte que vous ne pouvez pas rentrer plusieurs fois le même pseudo pour différents joueurs. + +Après avoir complété cette étape, la partie sera crée. Sur la console, vous verrez alors affichées diverses informations telles que le plateau de jeu, et notamment le nom et les tuiles de la personne dont c'est le tour de jouer. + + +### *Jouer un tour* + +Le joueur peut, lors de son tour, effectuer différentes actions telles que : +1. Placer une tuile +2. Echanger ses tuile +3. Passer son tour + +####**Placer une tuile** + +Afin d'effectuer cette opération, vous devrez d'abord sélectionner la tuile de votre choix en indiquant son numéro, puis vous devez rentrer les coordonnées de la case dans laquelle vous vous voulez placer cette dernière. Si vous ne vous rappelez plus des règles du Qwirkle, vous pouvez les consulter ici : [règles](https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle/wiki/Pr%C3%A9sentation-du-jeu) +Après cela, vous pourrez continuer à placer d'autres tuiles, si vous le souhaitez, ou vous pourrez terminer votre tour. + +####**Echanger ses tuiles** + +Si vous souhaitez échanger des des tuiles de votre main, vous pouvez choisir de les échanger avec des tuiles de la pioche. Entrez simplement les numéros correspondants des tuiles que vous voulez échanger? +Attention, gardez à l'esprit que si vous choisissez cette option, vous ne pourrez pas jouer durant ce tour. + +### Et voilà ! + +Votre partie est lancée ! Amusez-vous bien avec ce jeu de Qwirkle ! \ No newline at end of file From 8f6a7d9c1f5ebc08080adbf2ac6933b296b55537 Mon Sep 17 00:00:00 2001 From: Remy PORTET Date: Sat, 18 May 2024 15:42:46 +0200 Subject: [PATCH 4/6] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5e5253b..be581e3 100644 --- a/README.md +++ b/README.md @@ -43,12 +43,12 @@ Le joueur peut, lors de son tour, effectuer différentes actions telles que : 2. Echanger ses tuile 3. Passer son tour -####**Placer une tuile** +###**Placer une tuile** -Afin d'effectuer cette opération, vous devrez d'abord sélectionner la tuile de votre choix en indiquant son numéro, puis vous devez rentrer les coordonnées de la case dans laquelle vous vous voulez placer cette dernière. Si vous ne vous rappelez plus des règles du Qwirkle, vous pouvez les consulter ici : [règles](https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle/wiki/Pr%C3%A9sentation-du-jeu) +Afin d'effectuer cette opération, vous devrez d'abord sélectionner la tuile de votre choix en indiquant son numéro, puis vous devez rentrer les coordonnées de la case dans laquelle vous vous voulez placer cette dernière. Si vous ne vous rappelez plus des règles du Qwirkle, vous pouvez les consulter [ici](https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle/wiki/Pr%C3%A9sentation-du-jeu). Après cela, vous pourrez continuer à placer d'autres tuiles, si vous le souhaitez, ou vous pourrez terminer votre tour. -####**Echanger ses tuiles** +###**Echanger ses tuiles** Si vous souhaitez échanger des des tuiles de votre main, vous pouvez choisir de les échanger avec des tuiles de la pioche. Entrez simplement les numéros correspondants des tuiles que vous voulez échanger? Attention, gardez à l'esprit que si vous choisissez cette option, vous ne pourrez pas jouer durant ce tour. From 45ee07149960b3ab86d938dc6e72657ecd1c027b Mon Sep 17 00:00:00 2001 From: Remy PORTET Date: Sat, 18 May 2024 15:46:05 +0200 Subject: [PATCH 5/6] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index be581e3..f5364cb 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,12 @@ git clone https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle.git ``` Ensuite, lancez votre IDE préféré et exécutez le projet **QwirkleConsoleApp**. Cela vous permettra d'accéder à l'application qui se jouera dans un terminal. -**Trois options se présentent à vous :** lancer une partie, afficher le leaderboard, ou bien quitter l'application. Suivez les instructions que vous voyez sur l'écran afin d'effectuer votre choix. Il est à noter que la partie "leaderboard", permettant d'afficher les meilleurs scores de joueurs enregistrés lors des différentes parties jouées sur l'application, n'est pas encore opérationnelle à ce stade du projet. +**Trois options se présentent à vous :** lancer une partie, afficher le leaderboard, ou bien quitter l'application. Suivez les instructions que vous voyez sur l'écran afin d'effectuer votre choix. Il est à noter que la partie "leaderboard", permettant d'afficher les meilleurs scores de joueurs enregistrés lors des différentes parties jouées sur l'application, *n'est pas encore opérationnelle à ce stade du projet*. ### *Création d'une partie* -Commencez par rentrer les pseudos des joueurs qui participeront au jeu. Un minimum de 2 joueurs est **requis** pour lancer la partie, mais vous pouvez aller jusqu'à 4 joueurs ! -Attention, veuillez prendre en compte que vous ne pouvez pas rentrer plusieurs fois le même pseudo pour différents joueurs. +Commencez par rentrer les pseudos des joueurs qui participeront au jeu. Un minimum de 2 joueurs est **requis** pour lancer la partie, mais vous pouvez aller **jusqu'à 4 joueurs !** +***Attention***, veuillez prendre en compte que vous ne pouvez pas rentrer plusieurs fois le même pseudo pour différents joueurs. Après avoir complété cette étape, la partie sera crée. Sur la console, vous verrez alors affichées diverses informations telles que le plateau de jeu, et notamment le nom et les tuiles de la personne dont c'est le tour de jouer. @@ -39,16 +39,16 @@ Après avoir complété cette étape, la partie sera crée. Sur la console, vou ### *Jouer un tour* Le joueur peut, lors de son tour, effectuer différentes actions telles que : -1. Placer une tuile -2. Echanger ses tuile -3. Passer son tour +**1. Placer une tuile** +**2. Echanger ses tuile** +**3. Passer son tour** -###**Placer une tuile** +**####Placer une tuile** Afin d'effectuer cette opération, vous devrez d'abord sélectionner la tuile de votre choix en indiquant son numéro, puis vous devez rentrer les coordonnées de la case dans laquelle vous vous voulez placer cette dernière. Si vous ne vous rappelez plus des règles du Qwirkle, vous pouvez les consulter [ici](https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle/wiki/Pr%C3%A9sentation-du-jeu). Après cela, vous pourrez continuer à placer d'autres tuiles, si vous le souhaitez, ou vous pourrez terminer votre tour. -###**Echanger ses tuiles** +**####Echanger ses tuiles** Si vous souhaitez échanger des des tuiles de votre main, vous pouvez choisir de les échanger avec des tuiles de la pioche. Entrez simplement les numéros correspondants des tuiles que vous voulez échanger? Attention, gardez à l'esprit que si vous choisissez cette option, vous ne pourrez pas jouer durant ce tour. From 3b536075d70f6fe4564495e9d1c09da75a70da4a Mon Sep 17 00:00:00 2001 From: Remy PORTET Date: Sat, 18 May 2024 15:46:54 +0200 Subject: [PATCH 6/6] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f5364cb..731b8d5 100644 --- a/README.md +++ b/README.md @@ -43,12 +43,12 @@ Le joueur peut, lors de son tour, effectuer différentes actions telles que : **2. Echanger ses tuile** **3. Passer son tour** -**####Placer une tuile** +#### **Placer une tuile** Afin d'effectuer cette opération, vous devrez d'abord sélectionner la tuile de votre choix en indiquant son numéro, puis vous devez rentrer les coordonnées de la case dans laquelle vous vous voulez placer cette dernière. Si vous ne vous rappelez plus des règles du Qwirkle, vous pouvez les consulter [ici](https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle/wiki/Pr%C3%A9sentation-du-jeu). Après cela, vous pourrez continuer à placer d'autres tuiles, si vous le souhaitez, ou vous pourrez terminer votre tour. -**####Echanger ses tuiles** +#### **Echanger ses tuiles** Si vous souhaitez échanger des des tuiles de votre main, vous pouvez choisir de les échanger avec des tuiles de la pioche. Entrez simplement les numéros correspondants des tuiles que vous voulez échanger? Attention, gardez à l'esprit que si vous choisissez cette option, vous ne pourrez pas jouer durant ce tour.