Skip to content
Snippets Groups Projects
Select Git revision
  • dec28acec3cd0a4b0cbd95b6025ec84a3dc9b73a
  • master default protected
  • 46-upgrade-framework-and-dependencies
  • 29-add-difficulty-level-parameter
  • 23-improve-app-metadata
  • 3-fix-layout-on-orientation-change
  • Release_1.9.0_41 protected
  • Release_1.8.2_40 protected
  • Release_1.8.1_39 protected
  • Release_1.8.0_38 protected
  • Release_1.7.0_37 protected
  • Release_1.6.0_36 protected
  • Release_1.5.0_35 protected
  • Release_1.4.2_34 protected
  • Release_1.4.1_33 protected
  • Release_1.4.0_32 protected
  • Release_1.3.0_31 protected
  • Release_1.2.1_30 protected
  • Release_1.2.0_29 protected
  • Release_1.1.1_28 protected
  • Release_1.1.0_27 protected
  • Release_1.0.25_26 protected
  • Release_1.0.24_25 protected
  • Release_1.0.23_24 protected
  • Release_1.0.22_23 protected
  • Release_1.0.21_22 protected
26 results

pubspec.yaml

Blame
  • game.dart 3.53 KiB
    import 'package:flutter/material.dart';
    
    import '../layout/board.dart';
    import '../provider/data.dart';
    import '../utils/board_utils.dart';
    import '../utils/game_utils.dart';
    
    class Game {
    
      static Container buildGameWidget(Data myProvider) {
        bool gameIsFinished = myProvider.gameWin || myProvider.gameFail;
    
        return Container(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              SizedBox(height: 8),
              Game.buildTopIndicatorWidget(myProvider),
              SizedBox(height: 2),
              Expanded(
                child: Board.buildGameBoard(myProvider),
              ),
              SizedBox(height: 2),
              Container(
                child: gameIsFinished
                  ? Game.buildEndGameMessage(myProvider)
                  : Board.buildToggleFlagModeLayout(myProvider),
              ),
              SizedBox(height: 8),
            ],
          ),
        );
      }
    
      static Widget buildTopIndicatorWidget(Data myProvider) {
        int flaggedCellsCount = BoardUtils.countFlaggedCells(myProvider.cells);
        int minesCount = myProvider.minesCount;
        double blockSize = 40;
    
        Image flagIconBlock = Image(
          image: AssetImage('assets/skins/' + myProvider.parameterSkin + '_tile_flag.png'),
          fit: BoxFit.fill,
          height: blockSize,
          width: blockSize,
        );
        Image mineIconBlock = Image(
          image: AssetImage('assets/skins/' + myProvider.parameterSkin + '_tile_mine.png'),
          fit: BoxFit.fill,
          height: blockSize,
          width: blockSize,
        );
        Text markedMinesCountBlock = Text(
          flaggedCellsCount.toString(),
          style: TextStyle(
            fontSize: blockSize,
            fontWeight: FontWeight.bold,
            color: Colors.black
          ),
        );
        Text placedMinesCountBlock = Text(
          minesCount.toString(),
          style: TextStyle(
            fontSize: blockSize,
            fontWeight: FontWeight.bold,
            color: Colors.black
          ),
        );
    
        return Column(