From a35c97e6b864cf5745a4e2f12f09fad81a5e51e8 Mon Sep 17 00:00:00 2001 From: 62160052 <62160052@go.buu.ac.th> Date: Tue, 6 Sep 2022 15:00:51 +0700 Subject: [PATCH] Populate ViewModel --- .../unscramble/ui/game/GameViewModel.kt | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt b/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt index 1fc176c..dcde4b3 100644 --- a/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt +++ b/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt @@ -10,12 +10,16 @@ class GameViewModel: ViewModel() { private var _currentWordCount = 0 val currentWordCount: Int get() = _currentWordCount - private var _currentScrambledWord = "test" + + private lateinit var _currentScrambledWord: String val currentScrambledWord: String get() = _currentScrambledWord + private var wordsList: MutableList<String> = mutableListOf() + private lateinit var currentWord: String init { Log.d("GameFragment", "GameViewModel created!") + getNextWord() } override fun onCleared() { @@ -23,4 +27,27 @@ class GameViewModel: ViewModel() { Log.d("GameFragment", "GameViewModel destroyed!") } + fun getNextWord() { + currentWord = allWordsList.random() + val tempWord = currentWord.toCharArray() + tempWord.shuffle() + while (String(tempWord).equals(currentWord, false)) { + tempWord.shuffle() + } + if (wordsList.contains(currentWord)) { + getNextWord() + } else { + _currentScrambledWord = String(tempWord) + ++_currentWordCount + wordsList.add(currentWord) + } + } + + fun nextWord(): Boolean { + return if (currentWordCount < MAX_NO_OF_WORDS) { + getNextWord() + true + } else false + } + } \ No newline at end of file -- GitLab