Андроид-приложение, 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,
)

Источник данного кода — любая из двух ссылок выше.