Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • android/org.benoitharrault.sudoku
1 result
Select Git revision
Show changes
Commits on Source (2)
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,13 +45,18 @@ class Game {
child: Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
for (var lineIndex = 0; lineIndex < linesCount; lineIndex++)
TableRow(
children: [
for (var value = 0; value <= maxValue; value++)
for (
var value = lineIndex * itemsCountPerLine;
value < (lineIndex + 1) * itemsCountPerLine;
value++
)
Column(
children: [
Cell(
isUpdatableCellSelected ? value : 0,
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,12 +49,10 @@ class Parameters {
}
static Column buildParameterSelector(Data myProvider, String parameterCode) {
static Table buildParameterSelector(Data myProvider, String parameterCode) {
List availableValues = myProvider.getParameterAvailableValues(parameterCode);
return Column(
children: [
Table(
return Table(
defaultColumnWidth: IntrinsicColumnWidth(),
children: [
TableRow(
......@@ -63,9 +66,6 @@ class Parameters {
],
),
],
),
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);
......