상세 컨텐츠

본문 제목

[안드로이드 코틀린] 야구 게임 만드는 방법 part2 - 랜덤 숫자 생성

안드로이드

by aries574 2022. 8. 30. 10:18

본문


이번 시간에는 야구 게임 랜덤 숫자 생성하는 방법을 알아보겠습니다. 

이전 포스팅은 아래 링크를 들어가시면 됩니다.

2022.08.29 - [안드로이드] - [안드로이드 코틀린] 야구 게임 만드는 방법 part1 - 화면 구성

 

[안드로이드 코틀린] 야구 게임 만드는 방법 part1 - 화면 구성

이번 시간에는 야구 게임 화면 구성하는 방법을 알아보겠습니다. 야구 게임 규칙을 알려드리겠습니다. 1. 시작 버튼을 누르면 랜덤한 숫자 3개가 만들어집니다. 2. 사용자는 3개의 숫자를 입력하

aries574.tistory.com


목차

1. 실행 화면
2. 메인 코드 MainActivity.kt


1. 실행 화면

 

 

 


2. 메인 코드 MainActivity.kt

- 설명 -

 1. randomNumber() 

   랜덤 숫자 생성 함수

 2. val set: HashSet<Int> = HashSet()

   중복 방지 위해서 HashSet에 담는다. 

 3. Random.nextInt(8) + 1

   1 ~ 9 까지 랜덤 숫자 생성

 4. list.shuffle()

   랜덤 숫자 위치 섞기

class MainActivity : AppCompatActivity() {

    lateinit var requestText: EditText //입력 텍스트
    lateinit var responseText: TextView //정답 체크
    lateinit var resultText: TextView //결과 모음
    lateinit var lifeCountText: TextView // 기회 횟수

    //랜덤 숫자 배열
    val comNumbers: Array<Int?> = arrayOfNulls<Int>(3)

    //사용자 입력 배열
    val userNumbers: Array<Int?> = arrayOfNulls<Int>(3)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //입력된 숫자가 보여지는 텍스트
        requestText = findViewById(R.id.request_text)

        //정답이 맞는지 보여주는 텍스트
        responseText = findViewById(R.id.response_text)

        //기회 횟수
        lifeCountText = findViewById(R.id.life_count_text)

        //결과 모음
        resultText = findViewById(R.id.result_text)

        //버튼
        val startBtn: Button = findViewById(R.id.start_btn)
        val answerBtn: Button = findViewById(R.id.answer_btn)
        val resetBtn: Button = findViewById(R.id.reset_btn)

        //시작 버튼
        startBtn.setOnClickListener {

            //랜덤 숫자 생성
            randomNumber()
        }

        //정답 버튼
        answerBtn.setOnClickListener {

        }

        //초기화 버튼
        resetBtn.setOnClickListener {

        }

    }//onCreate

    //랜덤 숫자 생성
    private fun randomNumber() {

        //중복 방지 위한 HashSet
        val set: HashSet<Int> = HashSet()

        //set 담는 List
        val list: ArrayList<Int> = ArrayList()

        //숫자 3개 담을 때까지 반복
        while (set.size < 3){

            //랜덤 숫자 1 ~ 9 생성
            val randomValue = Random.nextInt(8) + 1

            //담기
            set.add(randomValue)
        }

        //list 담기
        list.addAll(set)

        //순서 섞기
        list.shuffle()

        //배열에 숫자 담기
        for((index, number: Int) in list.withIndex()){

            comNumbers[index] = number
        }

        //정답 체크 텍스트에 보여주기
        responseText.text = "${comNumbers[0]}, ${comNumbers[1]}, ${comNumbers[2]} "
    }
}

2022.08.26 - [안드로이드] - [안드로이드 코틀린] 텍스트뷰 TextView 클릭 시 효과(ripple)주는 방법

 

[안드로이드 코틀린] 텍스트뷰 TextView 클릭 시 효과(ripple)주는 방법

이번 시간에는 클릭 시에 효과를 주는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 테마 themes.xml 3. 효과 drawable 4. 메인 화면 activity_main.xml 5. 메인 코드 MainActivity.kt 1. 실행 화..

aries574.tistory.com

2022.08.25 - [안드로이드] - [안드로이드 코틀린] 동적 메뉴(ActionMode) 만드는 방법

 

[안드로이드 코틀린] 동적 메뉴(ActionMode) 만드는 방법

이번 시간에는 메뉴를 원할 때만 보여주는 동적 메뉴 만드는 방법을 알아보겠습니다. 메뉴 폴더 만드는 방법과 파일 만드는 방법은 이전 포스팅을 보시면 됩니다. 2022.08.23 - [안드로이드] - [안드

aries574.tistory.com

2022.08.24 - [안드로이드] - [안드로이드 코틀린 ] 컨텍스트메뉴(ContextMenu) 바탕화면 변경하는 방법

 

[안드로이드 코틀린 ] 컨텍스트메뉴(ContextMenu) 바탕화면 변경하는 방법

이번 시간에는 PC에서 마우스 오른쪽 누르면 나오는 메뉴 ContextMenu를 통해 바탕화면 변경하는 방법을 알아보겠습니다. 메뉴 폴더 만드는 방법과 파일 만드는 방법은 이전 포스팅에 이어서 하니

aries574.tistory.com

반응형

관련글 더보기

댓글 영역