숫자 맞추기
import kotlin.system.exitProcess
fun main(args: Array<String>) {
println("***************************************")
println("************숫자 맞추기 게임***************")
while(true) {
print("도전할 횟수를 입력해주세요 >> ")
val play:Int = readLine()?.toInt()!!
println("게임을 시작합니다.")
val number:Int = ((Math.random() * 100) + 1).toInt()
var i:Int = 0
var ref:Boolean = false
while (i < play) {
print("숫자를 입력해주세요. >> ")
val input:Int = readLine()?.toInt()!!
if(number == input) {
println("정답입니다!")
ref = true
exitProcess(1)
} else if (number > input) {
println("입력된 숫자가 너무 작습니다")
} else if (number < input) {
println("입력된 숫자가 너무 큽니다")
} else {
println("잘못된 입력입니다.")
}
i++
}
if (!ref) {
print("다시 시도하시겠습니까? [Y]es 또는 [N]o >> ")
val regame: String? = readLine()!!
if (regame == "N" || regame == "n") {
println("게임을 종료합니다.")
break
} else {
println("게임을 다시 시작합니다...")
}
}
}
}
가위 바위 보
처음 작성한 코드
import java.util.*
import kotlin.system.exitProcess
fun getRandom(arr:Array<String>) : String {
val random = Random().nextInt(arr.size)
return arr[random]
}
fun main(args: Array<String>) {
var win:Int = 0
var lose:Int = 0
var tie:Int = 0
var res:String = ""
while (true) {
val rockScissorPaper: Array<String> = arrayOf("가위", "바위", "보")
var computer:String = getRandom(rockScissorPaper)
println("************** 가위, 바위, 보 **************")
println("***게임을 종료하려면 종료를 입력하고 엔터를 누르세요***")
print("가위, 바위, 보 중에서 입력 >> ")
val userInput = readLine()
if (userInput == "종료") exitProcess(0)
when (computer == "가위") {
userInput == "바위" -> res = "승리"
userInput == "보" -> res = "패배"
userInput == "가위" -> res = "무승부"
}
when (computer == "바위") {
userInput == "보" -> res = "승리"
userInput == "가위" -> res = "패배"
userInput == "바위" -> res = "무승부"
}
when (computer == "보") {
userInput == "가위" -> res = "승리"
userInput == "바위" -> res = "패배"
userInput == "보" -> res = "무승부"
}
if (res == "승리") win += 1
if (res == "패배") lose += 1
if (res == "무승부") tie += 1
println("상대방이 낸 것은 $computer 입니다.")
println("결과는 ${win}승 ${lose}패 ${tie}무 입니다.")
}
}
두번째로 작성한 코드
fun main(args: Array<String>) {
var userNum:Int
var comNum:Int
var win:Int
var lose:Int
var draw:Int
var result:Int
win = 0.also { draw = it }.also { lose = it }
println("가위 바위 보 게임입니다")
while(true) {
println("start game....")
comNum = (Math.random() * 3).toInt()
print("가위(0), 바위(1), 보(2) 입력 >>> ")
userNum = readLine()!!.toInt()
result = (comNum - userNum + 2) % 3
var resultMsg = ""
when (result) {
1 -> {
resultMsg = "You Win"
win++
}
0 -> {
resultMsg = "You Lose"
lose++
}
2 -> {
resultMsg = "DRAW"
draw++
}
}
var userChar = if (userNum == 0) "가위" else if (userNum == 1) "바위" else "보"
var comChar = if (comNum == 0) "가위" else if (comNum == 1) "바위" else "보"
println("${resultMsg} 당신은 ${userChar}이고 상대방은 ${comChar}입니다.")
println("${win}승 ${draw}무 ${lose}패 입니다.")
print("한 판 더 하시겠습니까? (Y/N) >> ")
val msg:String = readLine()!!
if (msg == "N" || msg == "n") {
println("게임이 종료되었습니다")
break
}
println("게임을 다시 시작합니다...")
}
}