타닥타닥 개발자의 일상

kotiln으로 랜덤번호 맞추는 게임 만들기 Math.random() / while문 / if문 / break 사용하기 본문

코딩 기록/Kotlin

kotiln으로 랜덤번호 맞추는 게임 만들기 Math.random() / while문 / if문 / break 사용하기

NomadHaven 2022. 1. 24. 18:08

게임 규칙:

 

컴퓨터가 무작위로 고른 랜덤번호 10번 안에 맞추기

랜덤 번호의 범위: 1~100
   

ex)     

만약 랜덤 번호가 76일시,

    입력 : 45  ->너무 작습니다.
    입력 : 80  ->너무 큽니다

    입력 : 76  ->정답입니다.
            :
     기회 10번 소진후
         

다시 도전
     replay? -> yes/no

*/

import java.util.*
import kotlin.random.Random

fun main(args: Array<String>) {

    var randNum:Int  //랜덤번호
    var userNum:Int //사용자가 고른 번호
    var clear: Boolean 
    var w:Int //for문에 사용할 변수


    while(true){ //true인동안 계속 반복. while문 시작!

    //init()
    clear = false //boolean문은 false로 초기화
    w = 0  //w는 0으로 초기화


    //random(1~100)  random은 return되는 값이 double값이다. ->100 곱하면 0~99 이라서+1.
    
    randNum = (Math.random()*100).toInt()+1
    println("randNum: $randNum") //랜덤번호 확인용

    //loop
    while(w <10){ //while문 속 while문 시작!
    //user input
    print("number = ")
    userNum = readLine()?.toInt()!! //userNum 입력받음.

    //finding
    var str: String = if(userNum>randNum){ //str이라는 String 변수는 조건별로 바뀐다다.
        "너무 큽니다."
    }else if(userNum<randNum){
        "너무 작습니다."
    }
    else{
        "빙고"
    }
    //message
    if(str =="빙고"){
        clear = true //str이 빙고가 되면 clear는  true로 초기화
        break //while문 속 while문 탈출
    }else{
        println(str) //그렇지 않다면 str은 여전히 "너무 큽니다" 혹은 "너무 작습니다."
    }
        w++ //w는 증가하고 다시 while문 속 while문 반복
    }

    //result

    val resultMsg:String = if(clear == true){ //while문속 while문이 끝난 뒤 resultMsg는 조건별로 달라짐
        "축하합니다. 클리어하셨습니다."
    }else{
        "아쉽습니다. ${randNum}번이었습니다. 다시 도전하세요."
    }

    println(resultMsg) //조건에 맞는 reslutMsg출력

    println("한번 더 도전하시겠습니까? (y/n)") 
    val replay: String?=readLine() //reply는 문자열 자료형이자 입력받는 값

    if(replay=="N"||replay=="n"){
        println("안녕히가세요.") //입력값 N또는 n일시 while문 탈출
        break
    }
        println("다시 시작합니다.") //아니면 다시 반복. while(true)로 시작돼서 계속 반복된다.
    }
}
Comments