Skip to content
Snippets Groups Projects
Select Git revision
  • a9103e419b325797b1c09a956df80e5740642ea4
  • master default protected
  • 38-upgrade-framework-and-dependencies
  • 20-improve-app-metadata
  • Release_0.8.0_32 protected
  • Release_0.7.2_31 protected
  • Release_0.7.1_30 protected
  • Release_0.7.0_29 protected
  • Release_0.6.0_28 protected
  • Release_0.5.0_27 protected
  • Release_0.4.0_26 protected
  • Release_0.3.2_25 protected
  • Release_0.3.1_24 protected
  • Release_0.3.0_23 protected
  • Release_0.2.1_22 protected
  • Release_0.2.0_21 protected
  • Release_0.1.2_20 protected
  • Release_0.1.1_19 protected
  • Release_0.1.0_18 protected
  • Release_0.0.17_17 protected
  • Release_0.0.16_16 protected
  • Release_0.0.15_15 protected
  • Release_0.0.14_14 protected
  • Release_0.0.13_13 protected
24 results

screen.dart

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(