From 60462ac4a36a6a39cd221f8eedcb05f558168415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Tue, 7 Jun 2022 16:57:12 +0200 Subject: [PATCH] Improve gameplay, add moves count limit --- android/gradle.properties | 4 ++-- lib/layout/game.dart | 7 ++++++- lib/layout/parameters.dart | 4 ++-- lib/provider/data.dart | 14 ++++++++++++++ lib/utils/board_utils.dart | 5 ++++- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index d9abd55..6638812 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.12 -app.versionCode=12 +app.versionName=0.0.13 +app.versionCode=13 diff --git a/lib/layout/game.dart b/lib/layout/game.dart index 558cde4..1fd8e22 100644 --- a/lib/layout/game.dart +++ b/lib/layout/game.dart @@ -41,6 +41,11 @@ class Game { progressIndicator += ' (+' + myProvider.progressDelta.toString() + ')'; } + Color maxMovesCountColor = Colors.grey; + if (myProvider.movesCount > myProvider.maxMovesCount) { + maxMovesCountColor = Colors.red; + } + return Table( children: [ TableRow( @@ -60,7 +65,7 @@ class Game { style: TextStyle( fontSize: 15, fontWeight: FontWeight.w600, - color: Colors.grey, + color: maxMovesCountColor, ), ), ] diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart index c901d7b..30b9665 100644 --- a/lib/layout/parameters.dart +++ b/lib/layout/parameters.dart @@ -13,8 +13,8 @@ class Parameters { mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ - // Parameters.buildParameterSelector(myProvider, 'level'), - // SizedBox(height: 5), + Parameters.buildParameterSelector(myProvider, 'level'), + SizedBox(height: 5), Parameters.buildParameterSelector(myProvider, 'size'), SizedBox(height: 5), Parameters.buildParameterSelector(myProvider, 'colors'), diff --git a/lib/provider/data.dart b/lib/provider/data.dart index 07bbb17..2417899 100644 --- a/lib/provider/data.dart +++ b/lib/provider/data.dart @@ -142,6 +142,20 @@ class Data extends ChangeNotifier { return getColorsCountFromParameter(_parameterColorsDefault); } + int getMovesCountLimitDeltaFromLevelParameter(String parameterLevel) { + switch(parameterLevel) { + case 'easy': { return 5; } + break; + case 'medium': { return 3; } + break; + case 'hard': { return 1; } + break; + case 'nightmare': { return -1; } + break; + } + return getMovesCountLimitDeltaFromLevelParameter(_parameterLevelDefault); + } + int get boardSize => _boardSize; void updateBoardSize(int boardSize) { _boardSize = boardSize; diff --git a/lib/utils/board_utils.dart b/lib/utils/board_utils.dart index 3f1ef2f..029cbed 100644 --- a/lib/utils/board_utils.dart +++ b/lib/utils/board_utils.dart @@ -50,7 +50,10 @@ class BoardUtils { int boardSize = myProvider.boardSize; int colorsCount = myProvider.colorsCount; - return (30 * (boardSize * colorsCount) / (17 * 6)).round(); + int baseMaxMovesCount = (30 * (boardSize * colorsCount) / (17 * 6)).round(); + int deltaFromLevel = myProvider.getMovesCountLimitDeltaFromLevelParameter(myProvider.parameterLevel); + + return baseMaxMovesCount + deltaFromLevel; } static fillBoardFromFirstCell(Data myProvider, int value) { -- GitLab