Select Git revision
parameters_layout.dart
-
Benoît Harrault authoredBenoît Harrault authored
game_pick_image.dart 8.19 KiB
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../provider/data.dart';
import '../utils/random_pick_data.dart';
class GamePickImagePage extends StatelessWidget {
int _countWords = 4;
int _countImages = 1;
Future<void> startGame(Data myProvider, String lang) async {
await resetGame(myProvider);
myProvider.updateLang = lang;
await nextWord(myProvider);
}
Future<void> resetGame(Data myProvider) async {
myProvider.updateLang = '';
myProvider.updateQuestionsCount = 0;
myProvider.updateGoodAnswers = 0;
myProvider.updateWrongAnswers = 0;
myProvider.updateWord = null;
myProvider.updateImages = null;
}
Future<void> nextWord(Data myProvider) async {
await pickData(myProvider);
myProvider.updateQuestionsCount = myProvider.questionsCount + 1;
}
Future<void> pickData(Data myProvider) async {
List words;
RandomPickData randomPickData;
Map word;
int attempts = 0;
do {
randomPickData = RandomPickData();
await randomPickData.init(myProvider.lang, _countWords, _countImages);
if (randomPickData.words != null) {
words = randomPickData.words;
word = words.take(1).toList()[0];
}
attempts++;
} while (attempts < 3);
if ((words != null) && (words.length == _countWords)) {
myProvider.updateWord = word;
myProvider.updateImages = words;
}
}
Future<void> checkWord(Data myProvider, word) async {
if (myProvider.word['key'] == word['key']) {
myProvider.updateGoodAnswers = myProvider.goodAnswers + 1;
nextWord(myProvider);
} else {
myProvider.updateWrongAnswers = myProvider.wrongAnswers + 1;
}
}
Container _buildScoreItemContainer(String text, Color blockColor) {
Color backgroundColor = blockColor;
// Darken block color to get border color
double amount = 0.2;
final hsl = HSLColor.fromColor(blockColor);
final hslDark = hsl.withLightness((hsl.lightness - amount).clamp(0.0, 1.0));
Color borderColor = hslDark.toColor();