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