728x90
처음으로 만들어본 어플 결과물이다.
이번에 만든 로또번호 생성기를 통해 매주 로또에 도전해 볼 예정이다.
□ 작성한 코드
package com.jeong.lotto
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.jeong.lotto.ui.theme.LottoTheme
import kotlin.random.Random
fun Color.Companion.random() : Color {
val red = Random.nextInt(256)
val green = Random.nextInt(256)
val blue = Random.nextInt(256)
return Color(red, green, blue)
}
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LottoTheme {
//데이터
//상수
val buttonTitle = "로또번호 생성"
var generatedCount by remember { mutableStateOf(0)}
var number01 by remember { mutableStateOf(0)}
var number02 by remember { mutableStateOf(0)}
var number03 by remember { mutableStateOf(0)}
var number04 by remember { mutableStateOf(0)}
var number05 by remember { mutableStateOf(0)}
var number06 by remember { mutableStateOf(0)}
var number07 by remember { mutableStateOf(0)}
val lottoNumberRange = (1..45)
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Column(horizontalAlignment = Alignment.CenterHorizontally){
Row(
modifier = Modifier
.fillMaxWidth()
.padding(all=10.dp)
.padding(vertical=40.dp),
horizontalArrangement = Arrangement.SpaceBetween
){
LottoBall(number01)
LottoBall(number02)
LottoBall(number03)
LottoBall(number04)
LottoBall(number05)
LottoBall(number06)
LottoBall(number07)
}
Spacer(modifier = Modifier.height(150.dp))
Text("생성된 횟수 : $generatedCount", fontSize = 30.sp)
Spacer(modifier = Modifier.height(30.dp))
Button(onClick ={
number01 = lottoNumberRange.random()
number02 = lottoNumberRange.random()
number03 = lottoNumberRange.random()
number04 = lottoNumberRange.random()
number05 = lottoNumberRange.random()
number06 = lottoNumberRange.random()
number07 = lottoNumberRange.random()
generatedCount = generatedCount+1
}){
Text(buttonTitle, fontSize = 30.sp)
}
}
}
}
}
}
}
@Composable
fun LottoBall(number : Int){
Box(
modifier = Modifier
.size(50.dp)
.clip(CircleShape)
.background(Color.random()),
contentAlignment = Alignment.Center
){
Text(
number.toString(),
fontSize = 20.sp,
color = Color.White
)
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
LottoTheme {
Greeting("Android")
}
}
728x90
'[여러가지 시도] > 코틀린 결과물' 카테고리의 다른 글
[결과물_앱] 챗봇앱 (0) | 2022.11.12 |
---|---|
[결과물_앱] 계산기 (0) | 2022.10.31 |
[결과물_앱] 타이머 (0) | 2022.10.29 |