Пример #1
0
        // 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");
        }
Пример #2
0
        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);
            }
        }