// This is our game board, it prints all pieces positions public static void CurrentBoard(List <Player> allPlayersInGame) { var gb = UpdateGameBoard.PiecesOnGameBoardUpdate(allPlayersInGame); Console.WriteLine("\n[".Red() + gb[0] + "]".Red() + " [" + gb[1] + "][" + gb[2] + "][" + gb[3] + "] " + "[".Blue() + gb[4] + "]\n".Blue() + " [" + gb[5] + "]" + "[".Blue() + gb[6] + "]".Blue() + "[" + gb[7] + "]\n" + " [" + gb[8] + "]" + "[".Blue() + gb[9] + "]".Blue() + "[" + gb[10] + "]\n" + " [" + gb[11] + "]" + "[".Blue() + gb[12] + "]".Blue() + "[" + gb[13] + "]\n" + "[" + gb[14] + "][" + gb[15] + "][" + gb[16] + "][" + gb[17] + "][" + gb[18] + "]" + "[".Blue() + gb[19] + "]".Blue() + "[" + gb[20] + "][" + gb[21] + "][" + gb[22] + "][" + gb[23] + "][" + gb[24] + "]\n" + "[" + gb[25] + "]" + "[".Red() + gb[26] + "]".Red() + "[".Red() + gb[27] + "]".Red() + "[".Red() + gb[28] + "]".Red() + "[".Red() + gb[29] + "]".Red() + "[".Black() + gb[30] + "]".Black() + "[".Yellow() + gb[31] + "]".Yellow() + "[".Yellow() + gb[32] + "]".Yellow() + "[".Yellow() + gb[33] + "]".Yellow() + "[".Yellow() + gb[34] + "]".Yellow() + "[" + gb[35] + "]\n" + "[" + gb[36] + "][" + gb[37] + "][" + gb[38] + "][" + gb[39] + "][" + gb[40] + "]" + "[".Green() + gb[41] + "]".Green() + "[" + gb[42] + "][" + gb[43] + "][" + gb[44] + "][" + gb[45] + "][" + gb[46] + "]\n" + " [" + gb[47] + "]" + "[".Green() + gb[48] + "]".Green() + "[" + gb[49] + "]\n" + " [" + gb[50] + "]" + "[".Green() + gb[51] + "]".Green() + "[" + gb[52] + "]\n" + " [" + gb[53] + "]" + "[".Green() + gb[54] + "]".Green() + "[" + gb[55] + "]\n" + "[".Green() + gb[56] + "]".Green() + " [" + gb[57] + "][" + gb[58] + "][" + gb[59] + "] " + "[".Yellow() + gb[60] + "]\n".Yellow() + "\n"); }
public void RunGame(List <Player> players) { while (true) // loops rounds { Dice rollDice = new Dice(); Move move = new Move(); int diceValue = 0; // View Current Board Console.Clear(); Square.CurrentBoard(players); // checks player turn Player currentPlayer = UpdateGameBoard.GetPlayerTurn(players); List <Piece> currentPlayerPieces = UpdateGameBoard.GetPlayerPieces(currentPlayer); Console.WriteLine("[1] Rolldice"); int pieceId = 0; do { int.TryParse(Console.ReadLine(), out pieceId); if (pieceId == 1) { // Roll Dice diceValue = rollDice.RollDice(); Console.WriteLine("\nYou rolled: {0}", diceValue); Thread.Sleep(500); } else { Console.Write("Please enter 1 to roll:"); } } while (pieceId != 1); List <Piece> updatedPositions = new List <Piece>(); // Check if dicevalue is 6 if (diceValue == 6) { foreach (var piece in currentPlayerPieces) { updatedPositions = move.MoveFromNestOrBoard(currentPlayerPieces, diceValue, players); break; } } // If Dicevalue != 6 else { List <Piece> piecesOnBoard = new List <Piece>(); for (int i = 0; i < currentPlayerPieces.Count; i++) { if (currentPlayerPieces[i].Position != currentPlayer.PlayerBoard[0] && currentPlayerPieces[i].Position != 30) { piecesOnBoard.Add(currentPlayerPieces[i]); } } if (piecesOnBoard.Count != 0) { Console.WriteLine($"\nWhich piece do you want to move?"); for (int i = 0; i < currentPlayerPieces.Count; i++) { if (currentPlayerPieces[i].Position != currentPlayer.PlayerBoard[0] && currentPlayerPieces[i].Position != 30) { Console.WriteLine($"[{i + 1}] Piece {i + 1}"); } } bool isRunning = true; do { int.TryParse(Console.ReadLine(), out pieceId); for (int i = 0; i < piecesOnBoard.Count; i++) { try { if (piecesOnBoard[i].Id == currentPlayerPieces[pieceId - 1].Id) { updatedPositions = move.MovePiece(piecesOnBoard[i], diceValue, currentPlayer.PlayerBoard, players); isRunning = false; break; } } catch (Exception) { // If id doesnt exist, try again break; } } } while (isRunning); } } UpdateGameBoard.UpdatePlayerTurn(updatedPositions, players, diceValue); } }