Skip to content
Snippets Groups Projects
Select Git revision
  • 61d60618baf24e57b80e22d3da862036d2e12d17
  • master default protected
  • 58-upgrade-framework-and-dependencies
  • 49-fix-end-game
  • 40-improve-app-metadata
  • 12-improve-layout
  • 4-add-animations
  • Release_0.9.0_46 protected
  • Release_0.8.2_45 protected
  • Release_0.8.1_44 protected
  • Release_0.8.0_43 protected
  • Release_0.7.0_42 protected
  • Release_0.6.0_41 protected
  • Release_0.5.0_40 protected
  • Release_0.4.2_39 protected
  • Release_0.4.1_38 protected
  • Release_0.4.0_37 protected
  • Release_0.3.1_36 protected
  • Release_0.3.0_35 protected
  • Release_0.2.1_34 protected
  • Release_0.2.0_33 protected
  • Release_0.1.2_32 protected
  • Release_0.1.1_31 protected
  • Release_0.1.0_30 protected
  • Release_0.0.29_29 protected
  • Release_0.0.28_28 protected
  • Release_0.0.27_27 protected
27 results

button_delete_saved_game.dart

Blame
  • random_pick_word.dart 2.35 KiB
    import 'dart:async';
    import 'dart:convert';
    import "dart:math";
    
    import 'package:flutter/services.dart';
    
    class RandomPickWord {
      static Set<String> wordList = <String>{};
      static Set<String> dictionary = <String>{};
    
      static String _lang = '';
      static int _length = 5;
      static String _level = '';
    
      RandomPickWord();
    
      String _word = '';
      String get word => _word;
    
      init(String lang, int length, String level) async {
        if (lang != _lang || length != _length || level != _level || wordList.isEmpty || dictionary.isEmpty) {
          _lang = lang;
          _length = length;
          _level = level;
    
          dictionary.clear();
          wordList.clear();
    
          String wordBaseFilename = 'words-' + length.toString() + '-' + lang;
    
          // Get full dictionary (eligible words)
          print('Reload dictionary / ' + lang + ' / ' + length.toString());
          try {
            String wordsFile = wordBaseFilename + '-' + 'dictionary';
            var data = await rootBundle.loadString('assets/files/' + wordsFile + '.txt');
            LineSplitter.split(data).forEach((line) {
              if (line.length == length) {
                dictionary.add(line.toUpperCase());
              }
            });
          } catch (e) {
            throw "Failed loading dictionary database";
          }
    
          // Get guessable words list (will pick random word from)
          print('Reload words list  / ' + lang + ' / ' + length.toString() + ' / ' + level);
          try {
            String wordsFile = wordBaseFilename + '-' + level;
            var data = await rootBundle.loadString('assets/files/' + wordsFile + '.txt');
            LineSplitter.split(data).forEach((line) {
              if (line.length == length) {
                wordList.add(line.toUpperCase());
              }
            });
          } catch (e) {
            throw "Failed loading words database";
          }
        }
    
        print('Words in dictionary: ' + dictionary.length.toString());
        print('Words in words list: ' + wordList.length.toString());
    
        _word = '';
        await wordFromLocalFile();
      }
    
      Future<void> wordFromLocalFile() async {
        // Check we have enough words
        if (wordList.length < 1) {
          print('Not enough words in list.');