Skip to content
Snippets Groups Projects
Commit 60462ac4 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Improve gameplay, add moves count limit

parent 488287c9
No related branches found
No related tags found
1 merge request!5Resolve "Improve gameplay, add moves count limit"
Pipeline #2779 passed
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
......@@ -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,
),
),
]
......
......@@ -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'),
......
......@@ -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;
......
......@@ -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) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment