728x90
로또 번호 추천 앱 만들기 #01 - Random Function 활용하기(Kotlin)
포스트 난이도: HOO_Middle
<난이도 참고 포스트>
https://whoishoo.tistory.com/notice/161
#Read Me
코틀린 기반으로 로또 번호를 추첨해주는 애플리케이션을 시리즈 포스트를 통해 살펴보려고 한다.
첫 번째 포스트로 랜덤 함수를 활용하여 기본적인 랜덤 숫자를 나타내 주는 앱을 만들어보았다.
버튼 클릭으로 7개의 숫자가 랜덤으로 생성되지만 중복된 숫자가 나올 수도 있다.
아래 코드 블럭에서 코틀린과 XML 코드를 살펴볼 수 있다.
코드 라이센스라이선스 규정은 HOOAI 공통 라이선스 규정을 따른다.
# MainActivity.kt
package com.example.hooaitest
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
class MainActivity : AppCompatActivity() {
/*
Activity 활성화 기본 코드
고정값, 반복 사용
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 랜덤 버튼 선언, 생성
val rollButton: Button = findViewById(R.id.randomNumbers)
rollButton.setOnClickListener {
lotteryNumbers()
}
}
/*
랜덤 숫자 설정
같은 숫자 나올 수 있음.
*/
private fun lotteryNumbers() {
// Create new Dice object with 6 sides and roll it
val lotteryNum = lotteryRandomNumber1(45)
val rollNum1 = lotteryNum.roll()
val lotteryNum2 = lotteryRandomNumber2(45)
val rollNum2 = lotteryNum2.roll()
val lotteryNum3 = lotteryRandomNumber3(45)
val rollNum3 = lotteryNum3.roll()
val lotteryNum4 = lotteryRandomNumber4(45)
val rollNum4 = lotteryNum4.roll()
val lotteryNum5 = lotteryRandomNumber5(45)
val rollNum5 = lotteryNum5.roll()
val lotteryNum6 = lotteryRandomNumber6(45)
val rollNum6 = lotteryNum6.roll()
val lotteryNum7 = lotteryRandomNumber7(45)
val rollNum7 = lotteryNum7.roll()
val hyphen = "-"
// Update the screen with the dice roll
val resultTextView: TextView = findViewById(R.id.textView)
resultTextView.text = (rollNum1.toString() + hyphen + rollNum2.toString() + hyphen + rollNum3.toString()
+ hyphen + rollNum4.toString() + hyphen + rollNum5.toString() + hyphen + rollNum6.toString()
+ hyphen + rollNum7.toString())
}
}
/*
랜덤 숫자 클래스 선언
*/
class lotteryRandomNumber1 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
class lotteryRandomNumber2 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
class lotteryRandomNumber3 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
class lotteryRandomNumber4 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
class lotteryRandomNumber5 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
class lotteryRandomNumber6 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
class lotteryRandomNumber7 (private val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
# activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAlignment="center"
tools:context=".MainActivity"
android:background="#C277D3">
<TextView
android:id="@+id/textView"
android:layout_width="340dp"
android:layout_height="190dp"
android:text="\nClick the Button \n\n then you can get \n\n lucky numbers."
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="25sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.492"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.195" />
<Button
android:id="@+id/randomNumbers"
android:layout_width="150dp"
android:layout_height="70dp"
android:text="Random Lottery Number"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="0.275" />
</androidx.constraintlayout.widget.ConstraintLayout>
# In conculsion, 3줄 요약
1. 시리즈 포스트를 통해 로또 추첨 애플리케이션 예제를 만들어 본다.
2. 랜덤 함수를 활용한 초기 단계의 예제 코드이다.
3. 현재 예제 코드에서 중복된 숫자가 나올 수 있는 문제가 있다.
728x90
'Android App > App Examples' 카테고리의 다른 글
[App Examples] 파이어베이스를 활용한 커뮤니케이션 앱 (0) | 2022.05.23 |
---|---|
[App Examples] 앱 배경 화면 이미지 넣는 방법 예제 코드: android:background="@drawable/" (0) | 2021.07.19 |
[App Examples] 앱 페이지 연결과 이동하는 방법: 버튼을 활용한 페이지 연결, 이동 (0) | 2021.07.11 |
댓글