From 06b1921b1869af4616824ce8a2293324e7176e99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Fri, 16 Apr 2021 12:25:39 +0200 Subject: [PATCH] Setup words list --- assets/files/words-fr.json | 99 +++++++++++++++++++++++++++++++++ lib/utils/random_pick_word.dart | 31 +++++++++++ pubspec.yaml | 2 + 3 files changed, 132 insertions(+) create mode 100644 assets/files/words-fr.json create mode 100644 lib/utils/random_pick_word.dart diff --git a/assets/files/words-fr.json b/assets/files/words-fr.json new file mode 100644 index 0000000..9fad557 --- /dev/null +++ b/assets/files/words-fr.json @@ -0,0 +1,99 @@ +{ + "words": [ + "ANACONDA", + "AUTRUCHE", + "BARRACUDA", + "BOUQUETIN", + "COCCINELLE", + "CROCODILE", + "DROMADAIRE", + "ELEPHANT", + "ESCARGOT", + "FOURMILIER", + "GRENOUILLE", + "HIPPOCAMPE", + "HIPPOPOTAME", + "KANGOUROU", + "LIBELLULE", + "PERROQUET", + "PIPISTRELLE", + "RHINOCEROS", + "SAUTERELLE", + "TARENTULE", + + "AUBERGINE", + "BETTERAVE", + "CITROUILLE", + "CONCOMBRE", + "FRAMBOISE", + "GROSEILLE", + "MANDARINE", + "MIRABELLE", + "MYRTILLE", + "PAMPLEMOUSSE", + + "ROUGE", + "BLEU", + "VERT", + "JAUNE", + "VIOLET", + "ORANGE", + "MARRON", + "NOIR", + "BLANC", + "TURQUOISE", + "BEIGE", + "ROSE", + + "PIVOINE", + "TULIPE", + "JONQUILLE", + "CACTUS", + + "GYMNASTIQUE", + "FOOTBALL", + "HANDBALL", + "COURSE", + "CYCLISME", + "RANDONNEE", + + "FROMAGE", + "PIZZA", + "SAUCISSON", + "JAMBON", + "SALAMI", + "PAELLA", + "PATES", + "SALADE", + "SOUPE", + "CHOCOLAT", + "OEUF", + "CREME", + "LAIT", + "CORNICHON", + "FLAN", + "TARTE", + "PUREE", + "SAUMON", + "SANDWICH", + + "VOITURE", + "MOTO", + "VELO", + "TRAIN", + "BATEAU", + "AVION", + "HELICOPTERE", + "AUTOBUS", + "CAR", + "TRAINEAU", + "FUSEE", + "VOILIER", + "PAQUEBOT", + "METRO", + "SOUS-MARIN", + "CAMION", + "TRACTEUR", + "KAYAK" + ] +} diff --git a/lib/utils/random_pick_word.dart b/lib/utils/random_pick_word.dart new file mode 100644 index 0000000..34078c8 --- /dev/null +++ b/lib/utils/random_pick_word.dart @@ -0,0 +1,31 @@ +import 'dart:async'; +import 'dart:convert'; +import 'package:flutter/services.dart'; +import 'dart:math' show Random; + +class RandomPickWord { + RandomPickWord(); + + String _word; + final random = Random(); + + init() async { + await wordFromLocalFile(); + } + + Future<void> wordFromLocalFile() async { + String jsonString; + try { + jsonString = await rootBundle.loadString('assets/files/words-fr.json'); + final jsonResponse = await json.decode(jsonString); + var wordList = jsonResponse[jsonResponse.keys.toList().join()]; + int randomWordIndex = random.nextInt(wordList.length); + String word = wordList[random.nextInt(wordList.length)]; + _word = word ?? 'UNEXPECTED ERROR'; + } catch (e) { + _word = 'UNEXPECTED ERROR'; + } + } + + String get word => _word; +} diff --git a/pubspec.yaml b/pubspec.yaml index d839050..ed5d18a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,3 +17,5 @@ dev_dependencies: flutter: uses-material-design: true + assets: + - assets/files/ -- GitLab