import 'package:flutter/material.dart'; import '../layout/board.dart'; import '../provider/data.dart'; import '../utils/game_utils.dart'; class Game { static Container buildGameWidget(Data myProvider) { return Container( child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ Board.buildGameBoard(myProvider), SizedBox(height: 2), (myProvider.gameWin || myProvider.gameFail) ? Game.buildEndGameMessage(myProvider) : Board.buildToggleFlagModeLayout(myProvider) ], ), ); } static FlatButton buildRestartGameButton(Data myProvider) { return FlatButton( child: Container( child: Image( image: AssetImage('assets/icons/button_back.png'), fit: BoxFit.fill, ), ), onPressed: () => GameUtils.resetGame(myProvider), ); } static Container buildEndGameMessage(Data myProvider) { Image decorationImage = Image( image: AssetImage( myProvider.gameWin ? 'assets/icons/game_win.png' : myProvider.gameFail ? 'assets/icons/game_fail.png' : '' ), fit: BoxFit.fill, ); return Container( margin: EdgeInsets.all(2), padding: EdgeInsets.all(2), child: Table( defaultColumnWidth: IntrinsicColumnWidth(), children: [ TableRow( children: [ Column(children: [ decorationImage ]), Column(children: [ myProvider.animationInProgress ? decorationImage : buildRestartGameButton(myProvider) ]), Column(children: [ decorationImage ]), ], ), ] ) ); } }