Андроид-приложение, 21-я неделя
Обновлено 18 октября 2023 года.
Я застрял на той же лабораторной работе. Но это не проблема.
По ходу выполнения делаю заметки.
Атомарная смена состояния
Вот способ переключить состояние игры:
if (userGuess.equals(currentWord, ignoreCase = true)) { val updatedScore = _uiState.value.score.plus(SCORE_INCREASE) updateGameState(updatedScore) }
Для обновления комплексного состояния можно использовать отправку сообщения, как абстракцию программирования. В данном случае подобную роль играет вызов функции.
Как копируется объект в котлине
(Если вы пришли сюда из поисковой системы, то учтите, что я не знаю, как правильно это делается в котлине.)
Вот как это делается в лабораторной работе (та же ссылка, что и предыдущая):
_uiState.update { currentState -> currentState.copy( isGuessedWordWrong = false, ... ) }
Комплексное состояние
data class GameUiState( val currentScrambledWord: String = "", val currentWordCount: Int = 1, val score: Int = 0, val isGuessedWordWrong: Boolean = false, )
Источник данного кода — любая из двух ссылок выше.