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; }
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); }
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()); }
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; }
public static bool IsBalloonPopped(IBalloonsField matrix, int row, int col) { return(matrix[row, col] == 0); }
public CommandFactory(IPrinter printer, RankList rankList, IBalloonsField gameBoard) { this.printer = printer; this.rankList = rankList; this.gameBoard = gameBoard; }