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