Select Git revision
game_page.dart
-
Benoît Harrault authoredBenoît Harrault authored
game.dart 13.41 KiB
import 'dart:math';
import 'package:sudoku/config/default_global_settings.dart';
import 'package:sudoku/cubit/game_cubit.dart';
import 'package:sudoku/data/game_data.dart';
import 'package:sudoku/models/game/board.dart';
import 'package:sudoku/models/game/cell.dart';
import 'package:sudoku/models/game/cell_location.dart';
import 'package:sudoku/models/game/types.dart';
import 'package:sudoku/models/settings/settings_game.dart';
import 'package:sudoku/models/settings/settings_global.dart';
import 'package:sudoku/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,
this.boardAnimated = const [],
// Base data
required this.board,
required this.solvedBoard,
required this.blockSizeHorizontal,
required this.blockSizeVertical,
required this.boardSize,
// Game data
this.shuffledCellValues = const [],
this.boardConflicts = const [],
this.selectedCell,
this.showConflicts = false,
this.givenTipsCount = 0,
this.buttonTipsCountdown = 0,
});
// Settings
final GameSettings gameSettings;
final GlobalSettings globalSettings;
// State
bool isRunning;
bool isStarted;
bool isFinished;
bool animationInProgress;
AnimatedBoard boardAnimated;
// Base data
final Board board;
final Board solvedBoard;
final int blockSizeHorizontal;
final int blockSizeVertical;
final int boardSize;
// Game data
List<int> shuffledCellValues;
ConflictsCount boardConflicts;
Cell? selectedCell;
bool showConflicts;
int givenTipsCount;
int buttonTipsCountdown;
factory Game.createEmpty() {
return Game(