Skip to content
Snippets Groups Projects
Select Git revision
  • de524c147dbd2dc3481c5f6a0d5a0f0b13ec61a5
  • master default protected
  • 61-upgrade-framework-and-dependencies
  • 44-improve-app-metadata
  • Release_0.10.0_57 protected
  • Release_0.9.2_56 protected
  • Release_0.9.1_55 protected
  • Release_0.9.0_54 protected
  • Release_0.8.0_53 protected
  • Release_0.7.0_52 protected
  • Release_0.6.0_51 protected
  • Release_0.5.3_50 protected
  • Release_0.5.2_49 protected
  • Release_0.5.1_48 protected
  • Release_0.5.0_47 protected
  • Release_0.4.1_46 protected
  • Release_0.4.0_45 protected
  • Release_0.3.1_44 protected
  • Release_0.3.0_43 protected
  • Release_0.2.1_42 protected
  • Release_0.2.0_41 protected
  • Release_0.1.19_40 protected
  • Release_0.1.18_39 protected
  • Release_0.1.17_38 protected
24 results

board_utils.dart

Blame
  • board_utils.dart 6.76 KiB
    import '../entities/cell.dart';
    import '../provider/data.dart';
    
    class BoardUtils {
    
      static printGrid(List cells) {
        final String IS_MINED = 'X';
        final String IS_SAFE = '.';
    
        final String MINE_FOUND = '#';
        final String WRONG_MARKED_CELL = '0';
        final String EXPLORED_SAFE_CELL = '.';
        final String UNKNOWN_STATE = ' ';
    
        print('');
        String line = '--';
        for (var i = 0; i < cells[0].length; i++) {
          line += '-';
        }
        print(line + '  ' + line);
        for (var rowIndex = 0; rowIndex < cells.length; rowIndex++) {
          String currentLine = '';
          String solvedLine = '';
          for (var colIndex = 0; colIndex < cells[rowIndex].length; colIndex++) {
            solvedLine += cells[rowIndex][colIndex].isMined ? IS_MINED : IS_SAFE;
    
            String cellString = UNKNOWN_STATE;
            if (cells[rowIndex][colIndex].isExplored) {
              cellString = EXPLORED_SAFE_CELL;
            }
            if (cells[rowIndex][colIndex].isMarked) {
              if (cells[rowIndex][colIndex].isMined) {
                cellString = MINE_FOUND;
              } else {
                cellString = WRONG_MARKED_CELL;
              }
            }
            currentLine += cellString;
          }
          print('|' + currentLine + '|  |' + solvedLine + '|');
        }
        print(line + '  ' + line);
        print('');
      }
    
      static List createEmptyBoard(int sizeHorizontal, int sizeVertical) {
        int index = 0;
        List cells = [];
        for (var rowIndex = 0; rowIndex < sizeVertical; rowIndex++) {
          List row = [];
          for (var colIndex = 0; colIndex < sizeHorizontal; colIndex++) {
            row.add(Cell(false));
          }
          cells.add(row);
        }
    
        return cells;
      }
    
      static int getMinesCount(int sizeHorizontal, int sizeVertical, String level) {
        int minesCountRatio = 0;
        switch(level) {
          case 'easy': {
            minesCountRatio = 5;
          }
          break;
          case 'medium': {
            minesCountRatio = 10;
          }
          break;