Skip to content
Snippets Groups Projects
Select Git revision
  • 6066750b0069a2842f81fcae72adc367e24ea723
  • master default protected
  • 30-upgrade-framework-and-dependencies
  • 13-improve-app-metadata
  • 2-display-midi-input
  • Release_0.8.0_25 protected
  • Release_0.7.2_24 protected
  • Release_0.7.1_23 protected
  • Release_0.7.0_22 protected
  • Release_0.6.0_21 protected
  • Release_0.5.0_20 protected
  • Release_0.4.0_19 protected
  • Release_0.3.2_18 protected
  • Release_0.3.1_17 protected
  • Release_0.3.0_16 protected
  • Release_0.2.1_15 protected
  • Release_0.2.0_14 protected
  • Release_0.1.1_13 protected
  • Release_0.1.0_12 protected
  • Release_0.0.11_11 protected
  • Release_0.0.10_10 protected
  • Release_0.0.9_9 protected
  • Release_0.0.8_8 protected
  • Release_0.0.7_7 protected
  • Release_0.0.6_6 protected
25 results

home.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;