Tugas 9 PPB

 

 Tugas 9

Pemrograman Perangkat Bergerak

 

Nama : Ahmad Rafif Hikmatiar

NRP : 5025211247

Kelas : Pemrograman Perangkat Bergerak (D)

 

Desert Clicker



package com.example.dessertclickerapp

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.annotation.DrawableRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import com.example.dessertclickerapp.ui.theme.DessertClickerAppTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
DessertClickerAppTheme {
Surface(modifier = Modifier.fillMaxSize()) {
DessertClickerScreen()
}
}
}
}
}

data class Dessert(val name: String, @DrawableRes val imageRes: Int, val unlockAt: Int)

@Composable
fun DessertClickerScreen() {
val desserts = listOf(
Dessert("Cupcake", R.drawable.cupcake, 0),
Dessert("Donut", R.drawable.donut, 5),
Dessert("Eclair", R.drawable.eclair, 10),
)

var score by remember { mutableStateOf(0) }
var currentDessert by remember { mutableStateOf(desserts.first()) }

fun updateDessert() {
currentDessert = desserts.last { score >= it.unlockAt }
}

Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(text = currentDessert.name, style = MaterialTheme.typography.headlineMedium)

Spacer(modifier = Modifier.height(16.dp))

Image(
painter = painterResource(id = currentDessert.imageRes),
contentDescription = "Dessert Image",
modifier = Modifier
.size(200.dp)
.clickable {
score++
updateDessert()
}
)

Spacer(modifier = Modifier.height(16.dp))

Text(text = "Score: $score", style = MaterialTheme.typography.bodyLarge)
}
}


Comments

Popular posts from this blog

Tugas 2 PPB

Tugas 3 PPB