From 138a04cd54392bbba0cf71cdff77a171f5758259 Mon Sep 17 00:00:00 2001 From: "jeremy.mouyon" Date: Wed, 10 Apr 2024 21:10:42 +0200 Subject: [PATCH] edit of program cs and game cs : check number of player and stop while + add color + add while for next player and switch --- Qwirkle/QwirkleClassLibrary/Game.cs | 33 ++++------ Qwirkle/QwirkleConsoleApp/Program.cs | 94 ++++++++++++++++++++-------- 2 files changed, 82 insertions(+), 45 deletions(-) diff --git a/Qwirkle/QwirkleClassLibrary/Game.cs b/Qwirkle/QwirkleClassLibrary/Game.cs index f6b6983..4d32293 100644 --- a/Qwirkle/QwirkleClassLibrary/Game.cs +++ b/Qwirkle/QwirkleClassLibrary/Game.cs @@ -83,22 +83,6 @@ namespace QwirkleClassLibrary get { return players.Count; } } - // a passer en program cs - public string ShowTileOfPlayer(int posplayer) - { - List tiles = players[posplayer].Tiles.ToList(); - - string r = ("Tile of " + posplayer + " : "); - - StringBuilder stringBuilder = new StringBuilder(); // A UTILISER !!! - - foreach (Tile tile in tiles) - { - r = (r + " " + tile.NameColorTile()); - } - return r; - - } public Tile TileOfPlayerWithPos(int postile) { @@ -135,7 +119,7 @@ namespace QwirkleClassLibrary int posPlayerNextPlay = GetPlayingPlayerPosition() + 1; - if (posPlayerNextPlay >= GetNbPlayers) + if (posPlayerNextPlay > GetNbPlayers) { posPlayerNextPlay = 0; } @@ -152,9 +136,18 @@ namespace QwirkleClassLibrary public bool PlaceTileGame(Tile tile, int x, int y) { - bool r = board.AddTileInCell(x, y, tile); - players[GetPlayingPlayerPosition()].RemoveTilePlayer(tile); - return r; + bool checkremove=false; + bool checkaddcell = board.AddTileInCell(x, y, tile); + if (checkaddcell == true) + { + checkremove = players[GetPlayingPlayerPosition()].RemoveTilePlayer(tile); + } + + if (checkaddcell == checkremove) + { + return checkaddcell; + } + return false; } } diff --git a/Qwirkle/QwirkleConsoleApp/Program.cs b/Qwirkle/QwirkleConsoleApp/Program.cs index cca092d..a52aa12 100644 --- a/Qwirkle/QwirkleConsoleApp/Program.cs +++ b/Qwirkle/QwirkleConsoleApp/Program.cs @@ -1,5 +1,7 @@ using QwirkleClassLibrary; +using System.Net.Quic; using System.Text; +using System.Transactions; using static System.Console; @@ -20,21 +22,35 @@ static void addPlayer(Game game) } } - } while (enterline != "quit"); + } while (game.PlayerList.Count<4 && enterline !="quit"); } static void MainMenu(Game game) { game.TilsBagPlayer(); - String TagPlayerPlay; - TagPlayerPlay = game.NextPlayer(); + Console.ForegroundColor = ConsoleColor.Green; + Write("The loading of the game is well done! Good game :p\n"); + Console.ResetColor(); + + do + { + String TagPlayerPlay; + TagPlayerPlay = game.NextPlayer(); + + Write(" --------------------- GAME ! ------------------------ \n"); - Write(" --------------------- GAME ! ------------------------ \n"); + Write(TagPlayerPlay + " you have main now ! \n"); - Write(TagPlayerPlay + " you have main now ! \n"); + MenuSwitch(game); + + } while (game.GetPlayingPlayerPosition() != 3); // cette boucle permet juste de faire un tour, quand le score fonctionnera il faudra la faire arreter quand la partie sera finis :) + +} +static void ShowTiles(Game game) +{ Write("\n --------------------- YOUR TILES ------------------------ \n"); @@ -42,33 +58,50 @@ static void MainMenu(Game game) StringBuilder stringBuilder = new StringBuilder(); - for(int i = 0; i < game.PlayerList[pos].Tiles.Count(); i++) + for (int i = 0; i < game.PlayerList[pos].Tiles.Count(); i++) { stringBuilder.AppendLine(game.PlayerList[pos].Tiles[i].ToString()); } Write(stringBuilder); - Write("\n --------------------- CHOICES ------------------------ \n"); - - Write("[1] Place your tiles \n"); - Write("[2] Swap your tiles \n"); +} - int enter = Convert.ToInt32(ReadLine()); +static void MenuSwitch(Game game) +{ - switch (enter) + int enter = 0; + do { - case 1: - CaseOneAddTile(game); - break; - case 2: - break; - } + ShowTiles(game); + + Write("\n --------------------- CHOICES ------------------------ \n"); + + Write("[1] Place your tiles \n"); + Write("[2] Swap your tiles \n"); + Write("[3] Skip \n"); + + enter = Convert.ToInt32(ReadLine()); + + switch (enter) + { + case 1: + CaseOneAddTile(game); + break; + case 2: + break; + case 3: + return; + + } + } while (enter != 3); + + } static void CaseOneAddTile(Game game) { - Tile tile = null; + Tile? tile = null; Write("Enter no tile : "); int no = Convert.ToInt32(ReadLine()); @@ -86,7 +119,7 @@ static void CaseOneAddTile(Game game) } else { - Write("no no no \n"); + Write("ERROR : Cell already use \n"); } } else @@ -96,22 +129,33 @@ static void CaseOneAddTile(Game game) } -static void testJeremy() +static void MainGame() { Game game = new Game(); + + Console.BackgroundColor = ConsoleColor.DarkGreen; + Write("WELCOME IN QWIRKLE GAME ! \n For start the game please enter 2 / 4 players ;) \n \n"); + Console.ResetColor(); addPlayer(game); game.StartGame(); - if (game.GameRunning == true) + while (game.GameRunning == false) { - MainMenu(game); - } + game = new Game(); + Console.ForegroundColor= ConsoleColor.Red; + Write("ERROR : Please enter minimun 2 valid player ! \n"); + Console.ResetColor(); + addPlayer(game); + + game.StartGame(); + } + MainMenu(game); } -testJeremy(); +MainGame();