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

Merge branch '27-complete-first-game-word-from-images' into 'master'

Resolve "Complete first game "word from images""

Closes #27

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