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

Merge branch '36-improve-flexibility-in-layout' into 'master'

Resolve "Improve flexibility in layout"

Closes #36

See merge request !30
parents dce73191 f46110ce
No related branches found
No related tags found
1 merge request!30Resolve "Improve flexibility in layout"
Pipeline #1692 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.27
app.versionCode=27
app.versionName=0.0.28
app.versionCode=28
Improve flexibility in layout
Amélioration de la flexibilité dans la mise en page
......@@ -81,6 +81,10 @@ class Cell {
}
Container widgetUpdateValue(Data myProvider) {
if (this.value < 0) {
return Container();
}
String imageAsset = 'assets/skins/empty.png';
if (this.value > 0) {
imageAsset = 'assets/skins/' + myProvider.skin + '_' + this.value.toString() + '.png';
......
......@@ -34,6 +34,10 @@ class Game {
bool isUpdatableCellSelected = isCellSelected ? !myProvider.cells[myProvider.currentCellRow][myProvider.currentCellCol].isFixed : false;
int maxValue = myProvider.blockSizeHorizontal * myProvider.blockSizeVertical;
int maxItemsPerLine = 10;
int linesCount = (maxValue / maxItemsPerLine).floor() + 1;
int itemsCountPerLine = min(maxItemsPerLine, maxValue + 1);
return Container(
margin: EdgeInsets.all(2),
padding: EdgeInsets.all(2),
......@@ -41,19 +45,24 @@ class Game {
child: Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
TableRow(
children: [
for (var value = 0; value <= maxValue; value++)
Column(
children: [
Cell(
isUpdatableCellSelected ? value : 0,
false
).widgetUpdateValue(myProvider)
]
),
]
),
for (var lineIndex = 0; lineIndex < linesCount; lineIndex++)
TableRow(
children: [
for (
var value = lineIndex * itemsCountPerLine;
value < (lineIndex + 1) * itemsCountPerLine;
value++
)
Column(
children: [
Cell(
isUpdatableCellSelected ? (value <= maxValue ? value : -1) : -1,
false
).widgetUpdateValue(myProvider)
]
),
]
),
]
),
);
......
......@@ -5,18 +5,22 @@ import '../utils/game_utils.dart';
class Parameters {
static const double _parameterButtonSize = 70;
static const double _startButtonSize = 150;
static const double _startButtonSize = 120;
static Container buildParametersSelector(Data myProvider) {
return Container(
padding: EdgeInsets.all(2),
margin: EdgeInsets.all(2),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Parameters.buildParameterSelector(myProvider, 'difficulty'),
SizedBox(height: 5),
Parameters.buildParameterSelector(myProvider, 'size'),
SizedBox(height: 5),
Parameters.buildParameterSelector(myProvider, 'skin'),
SizedBox(height: 5),
Parameters.buildStartGameButton(myProvider),
],
......@@ -31,6 +35,7 @@ class Parameters {
mainAxisAlignment: MainAxisAlignment.center,
children: [
FlatButton(
padding: EdgeInsets.all(2),
child: Image(
image: AssetImage('assets/icons/button_start.png'),
width: _startButtonSize,
......@@ -44,28 +49,23 @@ class Parameters {
}
static Column buildParameterSelector(Data myProvider, String parameterCode) {
static Table buildParameterSelector(Data myProvider, String parameterCode) {
List availableValues = myProvider.getParameterAvailableValues(parameterCode);
return Column(
return Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
Table(
defaultColumnWidth: IntrinsicColumnWidth(),
TableRow(
children: [
TableRow(
children: [
for (var index = 0; index < availableValues.length; index++)
Column(
children: [
_buildParameterButton(myProvider, parameterCode, availableValues[index])
]
),
],
),
for (var index = 0; index < availableValues.length; index++)
Column(
children: [
_buildParameterButton(myProvider, parameterCode, availableValues[index])
]
),
],
),
SizedBox(height: 20),
]
],
);
}
......@@ -77,6 +77,7 @@ class Parameters {
String imageAsset = 'assets/icons/' + parameterCode + '_' + parameterValue + '.png';
return FlatButton(
padding: EdgeInsets.all(2),
child: Container(
decoration: BoxDecoration(
color: Colors.white,
......@@ -88,8 +89,6 @@ class Parameters {
),
child: Image(
image: AssetImage(imageAsset),
width: _parameterButtonSize,
height: _parameterButtonSize,
fit: BoxFit.fill
),
),
......
......@@ -7,12 +7,13 @@ import '../provider/data.dart';
class BoardUtils {
static printGrid(List cells) {
String stringValues = '0123456789';
print('');
print('-------');
for (var rowIndex = 0; rowIndex < cells.length; rowIndex++) {
String row = '';
for (var colIndex = 0; colIndex < cells[rowIndex].length; colIndex++) {
row += cells[rowIndex][colIndex].value.toString();
row += stringValues[cells[rowIndex][colIndex].value];
}
print(row);
}
......@@ -62,11 +63,14 @@ class BoardUtils {
List cells = [];
int boardSize = int.parse(pow(grid.length, 1/2).toStringAsFixed(0));
String stringValues = '0123456789';
int index = 0;
for (var rowIndex = 0; rowIndex < boardSize; rowIndex++) {
List row = [];
for (var colIndex = 0; colIndex < boardSize; colIndex++) {
int value = int.parse(grid[index++]);
String stringValue = grid[index++];
int value = stringValues.indexOf(stringValue);
row.add(Cell(value, (value != 0)));
}
cells.add(row);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment