Merge branch 'master' of https://codefirst.iut.uca.fr/git/jeremy.mouyon/sae201_qwirkle
continuous-integration/drone/push Build is passing Details

test_old_branch
Jérémy Mouyon 11 months ago
commit 73c67a2313

@ -2,11 +2,11 @@
{ {
public class AddPlayerNotifiedEventArgs : EventArgs public class AddPlayerNotifiedEventArgs : EventArgs
{ {
public string returnedNotified { get; private set; } public string ReturnedNotified { get; private set; }
public AddPlayerNotifiedEventArgs(string returnedNotified) public AddPlayerNotifiedEventArgs(string returnedNotified)
{ {
this.returnedNotified = returnedNotified; ReturnedNotified = returnedNotified;
} }
} }
} }

@ -4,11 +4,11 @@ namespace QwirkleClassLibrary.Events
{ {
public class EndOfGameNotifiedEventArgs public class EndOfGameNotifiedEventArgs
{ {
public Player player { get; private set; } public Player Player { get; private set; }
public EndOfGameNotifiedEventArgs(Player player) public EndOfGameNotifiedEventArgs(Player player)
{ {
this.player = player; this.Player = player;
} }
} }
} }

@ -4,11 +4,11 @@ namespace QwirkleClassLibrary.Events
{ {
public class NextPlayerNotifiedEventArgs : EventArgs public class NextPlayerNotifiedEventArgs : EventArgs
{ {
public Player player { get; private set; } public Player Player { get; private set; }
public NextPlayerNotifiedEventArgs(Player player) public NextPlayerNotifiedEventArgs(Player player)
{ {
this.player = player; this.Player = player;
} }
} }
} }

@ -4,14 +4,14 @@ namespace QwirkleClassLibrary.Events
{ {
public class PlaceTileNotifiedEventArgs : EventArgs 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) public PlaceTileNotifiedEventArgs(Tile tile, string reason)
{ {
this.tile = tile; this.Tile = tile;
this.reason = reason; this.Reason = reason;
} }
} }
} }

@ -10,27 +10,26 @@ namespace QwirkleClassLibrary.Players
{ {
public class Leaderboard public class Leaderboard
{ {
public ReadOnlyCollection<Score> LB => leaderb.AsReadOnly(); public ReadOnlyCollection<Score> Lb => leaderboard.AsReadOnly();
private readonly List<Score> leaderb = new(); private readonly List<Score> leaderboard = new();
public Leaderboard() { }
public int IsPlayerIn(Player player) 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 i;
} }
} }
return -1; return -1;
} }
public void AddScoreInLead(ReadOnlyDictionary<Player, int> ScoreBoard)
public void AddScoreInLead(ReadOnlyDictionary<Player, int> scoreBoard)
{ {
DateTime now = DateTime.Today; DateTime now = DateTime.Today;
bool first = true; 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<Player, int> pair in sb) foreach (KeyValuePair<Player, int> pair in sb)
{ {
@ -39,14 +38,14 @@ namespace QwirkleClassLibrary.Players
if (i != -1) if (i != -1)
{ {
leaderb[i].Date = now; leaderboard[i].Date = now;
if (first) if (first)
{ {
leaderb[i].Victories++; leaderboard[i].Victories++;
} }
leaderb[i].Points = pair.Value; leaderboard[i].Points = pair.Value;
} }
else else
@ -57,7 +56,7 @@ namespace QwirkleClassLibrary.Players
v = 1; v = 1;
} }
Score score = new Score(pair.Key.NameTag, now, pair.Value, v); Score score = new Score(pair.Key.NameTag, now, pair.Value, v);
leaderb.Add(score); leaderboard.Add(score);
} }
first = false; first = false;

@ -14,7 +14,7 @@ namespace QwirkleConsoleApp
{ {
ForegroundColor = ConsoleColor.Yellow; ForegroundColor = ConsoleColor.Yellow;
WriteLine(); WriteLine();
WriteLine(args.returnedNotified); WriteLine(args.ReturnedNotified);
WriteLine(); WriteLine();
ResetColor(); ResetColor();
} }
@ -23,7 +23,7 @@ namespace QwirkleConsoleApp
{ {
ForegroundColor = ConsoleColor.Yellow; ForegroundColor = ConsoleColor.Yellow;
WriteLine(); WriteLine();
WriteLine(args.player.NameTag + "'s turn"); WriteLine(args.Player.NameTag + "'s turn");
WriteLine(); WriteLine();
ResetColor(); ResetColor();
} }
@ -32,7 +32,7 @@ namespace QwirkleConsoleApp
{ {
ForegroundColor = ConsoleColor.Magenta; ForegroundColor = ConsoleColor.Magenta;
WriteLine(); WriteLine();
WriteLine("The tile [" + args.tile.ToString() + "] " + args.reason); WriteLine("The tile [" + args.Tile.ToString() + "] " + args.Reason);
WriteLine(); WriteLine();
ResetColor(); ResetColor();
} }
@ -41,7 +41,7 @@ namespace QwirkleConsoleApp
{ {
ForegroundColor = ConsoleColor.Red; ForegroundColor = ConsoleColor.Red;
WriteLine(); 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(); WriteLine();
ResetColor(); ResetColor();

@ -263,9 +263,9 @@ static void ShowLeaderboard(Leaderboard leaderboard)
WriteLine(" --------------------- THE LEADERBOARD : ---------------------"); WriteLine(" --------------------- THE LEADERBOARD : ---------------------");
WriteLine("Position : | PlayerTag : | Last Date : | Points : | Victories :"); WriteLine("Position : | PlayerTag : | Last Date : | Points : | Victories :");
for (int i=0; i<leaderboard.LB.Count; i++) for (int i=0; i<leaderboard.Lb.Count; i++)
{ {
WriteLine("[" + (i+1) + "] " + leaderboard.LB[i].ToString()); WriteLine("[" + (i+1) + "] " + leaderboard.Lb[i].ToString());
} }
WriteLine(); WriteLine();

@ -60,7 +60,7 @@ public class TestLeaderboard
leaderboard.AddScoreInLead(game.ScoreBoard); leaderboard.AddScoreInLead(game.ScoreBoard);
Assert.Equal(2, leaderboard.LB[0].Victories); Assert.Equal(2, leaderboard.Lb[0].Victories);
} }

@ -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)* * 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](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 !
Loading…
Cancel
Save