Skip to content
Snippets Groups Projects
Select Git revision
  • 88183583451a59b923a8d8fd5a51cd1828fab71d
  • master default protected
  • 61-upgrade-framework-and-dependencies
  • 44-improve-app-metadata
  • Release_0.10.0_57 protected
  • Release_0.9.2_56 protected
  • Release_0.9.1_55 protected
  • Release_0.9.0_54 protected
  • Release_0.8.0_53 protected
  • Release_0.7.0_52 protected
  • Release_0.6.0_51 protected
  • Release_0.5.3_50 protected
  • Release_0.5.2_49 protected
  • Release_0.5.1_48 protected
  • Release_0.5.0_47 protected
  • Release_0.4.1_46 protected
  • Release_0.4.0_45 protected
  • Release_0.3.1_44 protected
  • Release_0.3.0_43 protected
  • Release_0.2.1_42 protected
  • Release_0.2.0_41 protected
  • Release_0.1.19_40 protected
  • Release_0.1.18_39 protected
  • Release_0.1.17_38 protected
24 results

indicator_top.dart

Blame
  • 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();