import 'package:flutter_custom_toolbox/flutter_toolbox.dart'; import 'package:sudoku/config/default_game_settings.dart'; class GameSettings { final String level; final String size; GameSettings({ required this.level, required this.size, }); static String getLevelValueFromUnsafe(String level) { if (DefaultGameSettings.allowedLevelValues.contains(level)) { return level; } return DefaultGameSettings.defaultLevelValue; } static String getSizeValueFromUnsafe(String size) { if (DefaultGameSettings.allowedSizeValues.contains(size)) { return size; } return DefaultGameSettings.defaultSizeValue; } factory GameSettings.createDefault() { return GameSettings( level: DefaultGameSettings.defaultLevelValue, size: DefaultGameSettings.defaultSizeValue, ); } void dump() { printlog('$GameSettings:'); printlog(' ${DefaultGameSettings.parameterCodeLevel}: $level'); printlog(' ${DefaultGameSettings.parameterCodeSize}: $size'); printlog(''); } @override String toString() { return '$GameSettings(${toJson()})'; } Map<String, dynamic>? toJson() { return <String, dynamic>{ DefaultGameSettings.parameterCodeLevel: level, DefaultGameSettings.parameterCodeSize: size, }; } }