YSHUSH

미니게임(Random Number 찾기) 본문

Coding/Kotlin

미니게임(Random Number 찾기)

코딩; 2022. 1. 24. 18:02

 

Random number 찾기 미니 게임을 만들어본다. 

범위는 1부터 100까지, 만약 Random number가 50일 경우

35를 입력하면 너무 작습니다, 65를 입력하면 너무 큽니다가 출력된다.

기회는 10번! 맞추면 축하합니다 10번 다 틀리면 다시 도전!

게임이 끝나면 다시 게임할 것인지 물어보기로 하자

 

 

변수정의

var randNum:Int
var userNum:Int
var clear:Boolean
var w:Int

Math.radom 함수 사용해서 랜덤값 뽑기

double형이기 때문에 X100을 해주고 인트로 형변환 해준다.

// random (1 ~ 100) 0 ~ 99
randNum = (Math.random() * 100).toInt() + 1
println("randNum: $randNum")

입력값을 받기 위해서 readline 사용

print("number = ")
userNum = readLine()?.toInt()!!

랜덤 숫자 찾기 + message

// finding
var str:String = if(userNum > randNum){
    "너무 큽니다"
}else if(userNum < randNum){
    "너무 작습니다"
}else{
    "빙고"
}

지금까지 썼던 부분을 while 루프로 감싸준다(Math.random, 변수 정의 빼고)

기회가 10번이므로 10!

while(w < 10){        
    .
    .
    .
    w++
    }

맞췄을 때 메세지 출력 부분을 작성한다

while루프 안쪽에 작성

if(str == "빙고"){
    clear = true
    break
}else{
    println(str)
}

결과

지금까지 썼던 부분을 while로 감싸고 초기화, 결과 부분과 재도전 부분을 작성한다.

while(true){
    // init
    clear = false
    w = 0
    .
    .
    .
    // result
    val resultMsg:String = if(clear){
        "축하합니다. 클리어 하셨습니다"
    }else{
        "아쉽습니다. ${randNum}번이었습니다. 다시 도전하세요"
    }
    println(resultMsg)

    print("한판 더(y/n)? = ")
    val replay: String? = readLine()

    if(replay == "N" || replay == "n"){
        println("안녕히 가세요")
        break
    }
    println("다시 시작합니다")
    }

 

 

최종

fun main(args: Array<String>) {

    var randNum:Int
    var userNum:Int
    var clear:Boolean
    var w:Int

    while(true){
        // init
        clear = false
        w = 0

        // random (1 ~ 100) 0 ~ 99
        randNum = (Math.random() * 100).toInt() + 1
        println("randNum: $randNum")

        // loop
        while(w < 10){
            // user input
            print("number = ")
            userNum = readLine()?.toInt()!!

            // finding
            var str:String = if(userNum > randNum){
                "너무 큽니다"
            }else if(userNum < randNum){
                "너무 작습니다"
            }else{
                "빙고"
            }

            // message
            if(str == "빙고"){
                clear = true
                break
            }else{
                println(str)
            }
            w++
        }

        // result
        val resultMsg:String = if(clear){
            "축하합니다. 클리어 하셨습니다"
        }else{
            "아쉽습니다. ${randNum}번이었습니다. 다시 도전하세요"
        }
        println(resultMsg)

        print("한판 더(y/n)? = ")
        val replay: String? = readLine()

        if(replay == "N" || replay == "n"){
            println("안녕히 가세요")
            break
        }
        println("다시 시작합니다")
    }
}

'Coding > Kotlin' 카테고리의 다른 글

함수  (0) 2022.01.25
Exception  (0) 2022.01.25
제어문(if, for, switch, while)  (0) 2022.01.24
배열  (0) 2022.01.24
변수와 상수  (0) 2022.01.24