Select Git revision
button_game_start_new.dart
-
Benoît Harrault authoredBenoît Harrault authored
game_pick_word.dart 6.87 KiB
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../provider/data.dart';
import '../utils/random_pick_word.dart';
import '../utils/get_image_from_word.dart';
class GamePickWordPage extends StatelessWidget {
int _count = 4;
Future<void> startGame(BuildContext context, Data myProvider) async {
myProvider.updateQuestionsCount = 0;
myProvider.updateGoodAnswers = 0;
myProvider.updateWrongAnswers = 0;
await nextWord(context, myProvider);
}
Future<void> nextWord(BuildContext context, Data myProvider) async {
await pickData(context, myProvider);
myProvider.updateQuestionsCount = myProvider.questionsCount + 1;
}
Future<void> pickData(BuildContext context, Data myProvider) async {
List words;
List images;
RandomPickWord randomPickWord;
RandomPickImage randomPickImage;
String word;
int attempts = 0;
do {
randomPickWord = RandomPickWord();
await randomPickWord.init(_count);
if (randomPickWord.words != null) {
words = randomPickWord.words;
word = words.take(1).toList()[0];
randomPickImage = RandomPickImage();
await randomPickImage.init(word, _count);
if (randomPickImage.images != null) {
images = randomPickImage.images;
break;
}
}
attempts++;
} while (attempts < 3);
if (
((words != null) && (words.length == _count))
&&
((images != null) && (images.length == _count))
) {
myProvider.updateWord = word;
myProvider.updateOtherWords = words.skip(1).toList();
myProvider.updateImages = images;
}
}
Future<void> checkWord(BuildContext context, Data myProvider, word) async {
if (myProvider.word == word) {
myProvider.updateGoodAnswers = myProvider.goodAnswers + 1;
nextWord(context, myProvider);
} else {
myProvider.updateWrongAnswers = myProvider.wrongAnswers + 1;
}
}
Container _buildScoreContainer(BuildContext context, Data myProvider) {
String score = ''
+ '❓ ' + myProvider.questionsCount.toString()