Skip to content
Snippets Groups Projects
Select Git revision
  • b0681b6626c45a61a7664b295a98e4889beaf460
  • master default protected
  • 56-upgrade-framework-and-dependencies
  • 39-improve-app-metadata
  • 28-add-high-scores
  • 32-add-block-size-limit-parameter
  • 29-use-real-board-painter-to-draw-parameters-items
  • Release_0.9.0_47 protected
  • Release_0.8.2_46 protected
  • Release_0.8.1_45 protected
  • Release_0.8.0_44 protected
  • Release_0.7.0_43 protected
  • Release_0.6.0_42 protected
  • Release_0.5.0_41 protected
  • Release_0.4.2_40 protected
  • Release_0.4.1_39 protected
  • Release_0.4.0_38 protected
  • Release_0.3.1_37 protected
  • Release_0.3.0_36 protected
  • Release_0.2.1_35 protected
  • Release_0.2.0_34 protected
  • Release_0.1.1_33 protected
  • Release_0.1.0_32 protected
  • Release_0.0.31_31 protected
  • Release_0.0.30_30 protected
  • Release_0.0.29_29 protected
  • Release_0.0.28_28 protected
27 results

default_global_settings.dart

Blame
  • game_pick_word.dart 4.66 KiB
    import 'package:flutter/material.dart';
    
    import 'package:wordguessing/models/word.dart';
    import 'package:wordguessing/provider/data.dart';
    import 'package:wordguessing/ui/games/abstract_game.dart';
    import 'package:wordguessing/utils/random_pick_words.dart';
    
    class GamePickWordPage extends GameAbstract {
      const GamePickWordPage({super.key});
    
      @override
      Future<void> pickData(Data myProvider) async {
        final RandomPickWords randomPickWords = RandomPickWords();
        Word word;
    
        int attempts = 0;
        do {
          await randomPickWords.init(myProvider.lang, countWords);
    
          final List<Word> words = randomPickWords.words;
    
          word = words.take(1).toList()[0];
    
          if ((words.length >= countWords) && !myProvider.isRecentlyPicked(word.key)) {
            myProvider.updateWord(word);
            myProvider.updateOtherWords(words.skip(1).toList());
            myProvider.updateImages([word]);
          }
    
          attempts++;
        } while (myProvider.word != word && attempts < 10);
      }
    
      Widget buildImageContainer(String image) {
        const double imageSize = 130;
    
        String imageAsset = 'assets/placeholder.png';
        if (image != '') {
          imageAsset = 'assets/images/$image';
        }
    
        return Container(
          margin: const EdgeInsets.all(2),
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(8),
            border: Border.all(
              color: Colors.blue.shade200,
              width: 8,
            ),
          ),
          child: Image(
            image: AssetImage(imageAsset),
            width: imageSize,
            height: imageSize,
            fit: BoxFit.fill,
          ),
        );
      }
    
      Widget buildImageItemsBlock(Word? currentWord) {
        return Column(
          mainAxisSize: MainAxisSize.min,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Row(
              mainAxisSize: MainAxisSize.min,
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                buildImageContainer(currentWord?.images[0] ?? ''),
                buildImageContainer(currentWord?.images[1] ?? ''),