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

Merge branch '13-swap-tiles-on-drop' into 'master'

Resolve "Swap tiles on drop"

Closes #13

See merge request !9
parents d05e3716 f0367b63
No related branches found
No related tags found
1 merge request!9Resolve "Swap tiles on drop"
Pipeline #1236 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.6
app.versionCode=6
app.versionName=0.0.7
app.versionCode=7
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../provider/data.dart';
class Tile {
final Image image;
......@@ -35,7 +38,7 @@ class Tile {
);
}
Container widget() {
Container widget(Data myProvider) {
return Container(
child: DragTarget<List<int>>(
builder: (
......@@ -70,6 +73,10 @@ class Tile {
},
onAccept: (List<int> data) {
print(data.toString());
myProvider.swapTiles(
[this.currentCol, this.currentRow],
data
);
},
)
);
......
import 'package:flutter/foundation.dart';
import '../entities/tile.dart';
class Data extends ChangeNotifier {
// application data
......@@ -38,6 +40,17 @@ class Data extends ChangeNotifier {
notifyListeners();
}
void swapTiles(List<int> tile1, List<int> tile2) {
int indexTile1 = _tiles.indexWhere((tile) => ((tile.currentCol == tile1[0]) && (tile.currentRow == tile1[1])));
int indexTile2 = _tiles.indexWhere((tile) => ((tile.currentCol == tile2[0]) && (tile.currentRow == tile2[1])));
Tile swap = _tiles[indexTile1];
_tiles[indexTile1] = _tiles[indexTile2];
_tiles[indexTile2] = swap;
notifyListeners();
}
void resetGame() {
_image = '';
notifyListeners();
......
......@@ -117,14 +117,14 @@ class Home extends StatelessWidget {
y += height;
}
tiles.shuffle();
return tiles;
}
Container _buildTilesetWidget(Data myProvider) {
List tiles = myProvider.tiles;
tiles.shuffle();
int tileIndex = 0;
Table tileset = Table(
......@@ -139,7 +139,7 @@ class Home extends StatelessWidget {
for (var row = 0; row < _linesCount; row++)
TableRow(children: [
for (var col = 0; col < _columnsCount; col++)
Column(children: [tiles[tileIndex++].widget()]),
Column(children: [tiles[tileIndex++].widget(myProvider)]),
]),
]
);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment