Nat Strangerweather
02/24/2022, 4:37 PMNat Strangerweather
02/24/2022, 4:37 PM@Composable
fun GameBoard() {
val viewModel: MainViewModel = viewModel()
val boardLetters = viewModel.shakeLetterBag().sliceArray(0..48)
Column(
horizontalAlignment = Alignment.Start,
verticalArrangement = Arrangement.Center,
) {
LazyVerticalGrid(
cells = GridCells.Fixed(7),
verticalArrangement = <http://Arrangement.Top|Arrangement.Top>
) {
items(boardLetters) { data ->
Piece(data)
}
}
}
}
Nat Strangerweather
02/24/2022, 4:38 PM@Composable
fun HomePage() {
Scaffold(
floatingActionButton = {
FloatingActionButton(onClick = {
}) {
Icon(imageVector = Icons.Filled.Refresh, contentDescription = "refresh icon")
}
}
) {
Column(
Modifier
.fillMaxSize()
.padding(10.dp)
) {
ScoreBoard()
WordBoard()
GameBoard()
Button()
}
}
}
Nat Strangerweather
02/24/2022, 4:38 PMChris Fillmore
02/24/2022, 4:51 PMboardLetters
should be some state in your view model, like this:
class MainViewModel : ViewModel() {
...
var boardLetters by mutableStateOf(/* initial value */)
}
Your composable will recompose based on your game’s state. So as boardLetters
gets updated, the UI will redraw. So, in order to completely reset your game, all you need to do is set boardLetters
back to its initial value.Chris Fillmore
02/24/2022, 4:54 PMButton(onClick = {
mainViewModel.boardLetters = /* initial value */
}) {
Text("Reset game")
}
Nat Strangerweather
02/24/2022, 4:56 PM