Select Git revision
screen.dart
-
Benoît Harrault authoredBenoît Harrault authored
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(