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

Complete first game "word from images"

parent 17a5e96e
No related branches found
No related tags found
1 merge request!27Resolve "Complete first game "word from images""
Pipeline #1073 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.23 app.versionName=0.1.0
app.versionCode=23 app.versionCode=24
...@@ -8,19 +8,19 @@ import '../utils/get_image_from_word.dart'; ...@@ -8,19 +8,19 @@ import '../utils/get_image_from_word.dart';
class GamePickWordPage extends StatelessWidget { class GamePickWordPage extends StatelessWidget {
int _count = 4; int _count = 4;
Future<void> startGame(BuildContext context, Data myProvider) async { Future<void> startGame(Data myProvider) async {
myProvider.updateQuestionsCount = 0; myProvider.updateQuestionsCount = 0;
myProvider.updateGoodAnswers = 0; myProvider.updateGoodAnswers = 0;
myProvider.updateWrongAnswers = 0; myProvider.updateWrongAnswers = 0;
await nextWord(context, myProvider); await nextWord(myProvider);
} }
Future<void> nextWord(BuildContext context, Data myProvider) async { Future<void> nextWord(Data myProvider) async {
await pickData(context, myProvider); await pickData(myProvider);
myProvider.updateQuestionsCount = myProvider.questionsCount + 1; myProvider.updateQuestionsCount = myProvider.questionsCount + 1;
} }
Future<void> pickData(BuildContext context, Data myProvider) async { Future<void> pickData(Data myProvider) async {
List words; List words;
List images; List images;
RandomPickWord randomPickWord; RandomPickWord randomPickWord;
...@@ -56,33 +56,43 @@ class GamePickWordPage extends StatelessWidget { ...@@ -56,33 +56,43 @@ class GamePickWordPage extends StatelessWidget {
} }
} }
Future<void> checkWord(BuildContext context, Data myProvider, word) async { Future<void> checkWord(Data myProvider, word) async {
if (myProvider.word == word) { if (myProvider.word == word) {
myProvider.updateGoodAnswers = myProvider.goodAnswers + 1; myProvider.updateGoodAnswers = myProvider.goodAnswers + 1;
nextWord(context, myProvider); nextWord(myProvider);
} else { } else {
myProvider.updateWrongAnswers = myProvider.wrongAnswers + 1; myProvider.updateWrongAnswers = myProvider.wrongAnswers + 1;
} }
} }
Container _buildScoreContainer(BuildContext context, Data myProvider) { Container _buildScoreContainer(Data myProvider) {
String score = '' TextStyle style = TextStyle(
+ '❓ ' + myProvider.questionsCount.toString() fontSize: 30,
+ ' - ' fontWeight: FontWeight.w600,
+ '☺️ ' + myProvider.goodAnswers.toString() color: Colors.black,
+ ' - ' );
+ '😟 ' + myProvider.wrongAnswers.toString()
;
return Container( return Container(
padding: EdgeInsets.all(5), padding: EdgeInsets.all(5),
child: Text( child: Row(
score, mainAxisSize: MainAxisSize.min,
style: TextStyle( mainAxisAlignment: MainAxisAlignment.center,
fontSize: 20, children: [
fontWeight: FontWeight.w400, Text(
color: Colors.black, '❓ ' + myProvider.questionsCount.toString(),
style: style,
),
SizedBox(width: 30),
Text(
'☺️ ' + myProvider.goodAnswers.toString(),
style: style,
), ),
SizedBox(width: 30),
Text(
'😟 ' + myProvider.wrongAnswers.toString(),
style: style,
),
],
), ),
); );
} }
...@@ -133,7 +143,7 @@ class GamePickWordPage extends StatelessWidget { ...@@ -133,7 +143,7 @@ class GamePickWordPage extends StatelessWidget {
); );
} }
Container _buildTextContainer(BuildContext context, Data myProvider, String word, Color color) { Container _buildTextContainer(Data myProvider, String word, Color color) {
return Container( return Container(
child: RaisedButton( child: RaisedButton(
color: Colors.green, color: Colors.green,
...@@ -146,12 +156,12 @@ class GamePickWordPage extends StatelessWidget { ...@@ -146,12 +156,12 @@ class GamePickWordPage extends StatelessWidget {
color: color, color: color,
), ),
), ),
onPressed: () { checkWord(context, myProvider, word); }, onPressed: () { checkWord(myProvider, word); },
), ),
); );
} }
Column _buildTextItemsBlock(BuildContext context, Data myProvider, String word, List otherWords) { Column _buildTextItemsBlock(Data myProvider, String word, List otherWords) {
Color color = Colors.white; Color color = Colors.white;
if ((word == null) || (otherWords.length != (_count - 1))) { if ((word == null) || (otherWords.length != (_count - 1))) {
...@@ -175,9 +185,9 @@ class GamePickWordPage extends StatelessWidget { ...@@ -175,9 +185,9 @@ class GamePickWordPage extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
_buildTextContainer(context, myProvider, words[0], color), _buildTextContainer(myProvider, words[0], color),
SizedBox(width: 10), SizedBox(width: 10),
_buildTextContainer(context, myProvider, words[1], color), _buildTextContainer(myProvider, words[1], color),
], ],
), ),
SizedBox(height: 10), SizedBox(height: 10),
...@@ -185,33 +195,34 @@ class GamePickWordPage extends StatelessWidget { ...@@ -185,33 +195,34 @@ class GamePickWordPage extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
_buildTextContainer(context, myProvider, words[2], color), _buildTextContainer(myProvider, words[2], color),
SizedBox(width: 10), SizedBox(width: 10),
_buildTextContainer(context, myProvider, words[3], color), _buildTextContainer(myProvider, words[3], color),
], ],
) )
], ],
); );
} }
Row _buildStartGameButton(BuildContext context, Data myProvider) { Row _buildStartGameButton(Data myProvider) {
return Row( return Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Container( Container(
child: RaisedButton( child: RaisedButton(
color: Colors.orange, color: Colors.green,
padding: EdgeInsets.all(35), padding: EdgeInsets.all(35),
child: Text( child: Text(
"🔀", "▶️",
style: TextStyle( style: TextStyle(
fontSize: 60, fontSize: 60,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Colors.black, color: Colors.black,
), ),
), ),
onPressed: () => startGame(context, myProvider), onPressed: () => startGame(myProvider),
), ),
) )
], ],
...@@ -225,6 +236,12 @@ class GamePickWordPage extends StatelessWidget { ...@@ -225,6 +236,12 @@ class GamePickWordPage extends StatelessWidget {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
elevation: 0, elevation: 0,
actions: <Widget>[
IconButton(
icon: const Icon(Icons.loop),
onPressed: () => startGame(_myProvider),
),
],
), ),
backgroundColor: Colors.blue, backgroundColor: Colors.blue,
body: Center( body: Center(
...@@ -234,12 +251,12 @@ class GamePickWordPage extends StatelessWidget { ...@@ -234,12 +251,12 @@ class GamePickWordPage extends StatelessWidget {
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: <Widget>[ children: <Widget>[
_buildImageItemsBlock(_myProvider.images), _buildImageItemsBlock(_myProvider.images),
SizedBox(height: 5), SizedBox(height: 2),
_buildScoreContainer(context, _myProvider),
((_myProvider.word == null) || (_myProvider.word == '')) ? ((_myProvider.word == null) || (_myProvider.word == '')) ?
_buildStartGameButton(context, _myProvider) : _buildStartGameButton(_myProvider) :
SizedBox(height: 5), _buildScoreContainer(_myProvider),
_buildTextItemsBlock(context, _myProvider, _myProvider.word, _myProvider.otherWords), SizedBox(height: 2),
_buildTextItemsBlock(_myProvider, _myProvider.word, _myProvider.otherWords),
], ],
), ),
), ),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment