Select Git revision
-
Benoît Harrault authoredBenoît Harrault authored
data.dart 7.36 KiB
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Data extends ChangeNotifier {
// Configuration available parameters
List _availableParameters = ['level', 'size', 'colors', 'skin'];
List get availableParameters => _availableParameters;
// Configuration available values
List _availableLevelValues = ['easy', 'medium', 'hard', 'nightmare'];
List _availableSizeValues = ['small', 'medium', 'large', 'extra'];
List _availableColorsValues = ['5', '6', '7', '8'];
List _availableSkinValues = ['default', 'retro', 'numbers', 'symbols'];
List get availableLevelValues => _availableLevelValues;
List get availableSizeValues => _availableSizeValues;
List get availableColorsValues => _availableColorsValues;
List get availableSkinValues => _availableSkinValues;
// Application default configuration
String _parameterLevel = '';
String _parameterLevelDefault = 'medium';
String _parameterSize = '';
String _parameterSizeDefault = 'medium';
String _parameterColors = '';
String _parameterColorsDefault = '6';
String _parameterSkin = '';
String _parameterSkinDefault = 'default';
// Application current configuration
String get parameterLevel => _parameterLevel;
String get parameterSize => _parameterSize;
String get parameterColors => _parameterColors;
String get parameterSkin => _parameterSkin;
// Game data
bool _gameIsRunning = false;
bool _animationInProgress = false;
bool _gameWon = false;
int _boardSize = 0;
int _colorsCount = 0;
int _movesCount = 0;
int _maxMovesCount = 0;
List _cells = [];
int _progress = 0;
int _progressTotal = 0;
int _progressDelta = 0;
void updateParameterLevel(String parameterLevel) {
_parameterLevel = parameterLevel;
notifyListeners();
}
void updateParameterSize(String parameterSize) {
_parameterSize = parameterSize;
updateBoardSize(getBoardSizeFromParameter(parameterSize));
notifyListeners();
}
void updateParameterColors(String parameterColors) {
_parameterColors = parameterColors;
updateColorsCount(getColorsCountFromParameter(parameterColors));
notifyListeners();
}
void updateParameterSkin(String parameterSkin) {
_parameterSkin = parameterSkin;
notifyListeners();
}