public BalloonsPopCommand(int poppingRow, int poppingColumn, IPrinter printer, RankList rankList, IBalloonsField gameBoard)
 {
     this.poppingRow    = poppingRow;
     this.poppingColumn = poppingColumn;
     this.printer       = printer;
     this.rankList      = rankList;
     this.gameBoard     = gameBoard;
 }
Ejemplo n.º 2
0
        public static void PopBalloons(IBalloonsField matrix, int row, int col)
        {
            byte searchedTarget = matrix[row, col];

            matrix[row, col] = 0;
            CheckLeft(matrix, row, col, searchedTarget);
            CheckRight(matrix, row, col, searchedTarget);
            CheckUp(matrix, row, col, searchedTarget);
            CheckDown(matrix, row, col, searchedTarget);
        }
Ejemplo n.º 3
0
        public void PrintField(IBalloonsField gameBoard)
        {
            StringBuilder sb      = new StringBuilder();
            var           columns = gameBoard.Size()[1];
            var           rows    = gameBoard.Size()[0];

            sb.Append("    ");

            for (byte column = 0; column < columns; column++)
            {
                sb.Append(column + " ");
            }

            sb.Append("\n   ");

            for (byte column = 0; column < (columns * 2) + 1; column++)
            {
                sb.Append("-");
            }

            sb.AppendLine();

            for (byte i = 0; i < rows; i++)
            {
                sb.Append(i + " | ");
                for (byte j = 0; j < columns; j++)
                {
                    if (gameBoard[i, j] == 0)
                    {
                        sb.Append("  ");
                        continue;
                    }

                    sb.Append(gameBoard[i, j] + " ");
                }
                sb.Append("| ");
                sb.AppendLine();
            }

            sb.Append("    ");

            for (byte column = 0; column < (columns * 2) + 1; column++)
            {
                sb.Append("-");
            }

            sb.AppendLine();
            Console.Write(sb.ToString());
        }
Ejemplo n.º 4
0
        private static void CheckDown(IBalloonsField matrix, int row, int column, int searchedItem)
        {
            int newRow    = row - 1;
            int newColumn = column;

            try
            {
                if (matrix[newRow, newColumn] == searchedItem)
                {
                    matrix[newRow, newColumn] = 0;
                    CheckDown(matrix, newRow, newColumn, searchedItem);
                }
            }
            catch (IndexOutOfRangeException) { }
        }
        private void GameOver(RankList rankList, IBalloonsField matrix)
        {
            int currentMoves = rankList.MovesCount;

            this.printer.PrintMessage(String.Format("Gratz ! You completed it in {0} moves.", currentMoves));
            if (rankList.IsCurrentPlayerAdded(currentMoves))
            {
                printer.PrintRankList(rankList.RankListDictionary);
            }
            else
            {
                this.printer.PrintMessage("I am sorry you are not skillful enough for TopFive chart!");
            }

            matrix = new BalloonsField(5, 10);
            rankList.MovesCount = 0;
        }
Ejemplo n.º 6
0
 public static bool IsBalloonPopped(IBalloonsField matrix, int row, int col)
 {
     return(matrix[row, col] == 0);
 }
Ejemplo n.º 7
0
 public CommandFactory(IPrinter printer, RankList rankList, IBalloonsField gameBoard)
 {
     this.printer   = printer;
     this.rankList  = rankList;
     this.gameBoard = gameBoard;
 }