Select Git revision
pubspec.lock
game.dart 7.34 KiB
import 'package:minehunter/config/default_game_settings.dart';
import 'package:minehunter/models/game/cell.dart';
import 'package:minehunter/models/settings/settings_game.dart';
import 'package:minehunter/models/settings/settings_global.dart';
import 'package:minehunter/models/types.dart';
import 'package:minehunter/utils/tools.dart';
class Game {
Game({
// Settings
required this.gameSettings,
required this.globalSettings,
// State
this.isRunning = false,
this.isStarted = false,
this.isFinished = false,
this.animationInProgress = false,
// Base data
required this.board,
required this.sizeHorizontal,
required this.sizeVertical,
this.isBoardMined = false,
// Game data
this.minesCount = 0,
this.reportMode = false,
this.gameWin = false,
this.gameFail = false,
});
// Settings
final GameSettings gameSettings;
final GlobalSettings globalSettings;
// State
bool isRunning;
bool isStarted;
bool isFinished;
bool animationInProgress;
// Base data
Board board;
final int sizeHorizontal;
final int sizeVertical;
bool isBoardMined;
// Game data
int minesCount;
bool reportMode;
bool gameWin;
bool gameFail;
factory Game.createEmpty() {
return Game(
// Settings
gameSettings: GameSettings.createDefault(),
globalSettings: GlobalSettings.createDefault(),
// Base data
board: [],
sizeHorizontal: 0,
sizeVertical: 0,
);
}
factory Game.createNew({
GameSettings? gameSettings,
GlobalSettings? globalSettings,
}) {