가위바위보를 만들기 위해선 세 가지의 조건이 있어야한다.
1. 사용자의 선택을 저장
2. 컴퓨터의 선택을 저장
3. 승자가 누군지 확인하기
1. 사용자의 선택을 저장
다음의 조건을 충족시키기 위하여 다음의 코드를 작성하였다.
fun main() {
var computerChoice = ""
var userChoice = ""
println("Rock, Paper or Scissors? Enter your choice!!")
userChoice = readln()
}
2. 컴퓨터의 선택을 저장
다음과 같이 random함수를 이용하여 1일경우 Rock, 2일경우 Paper, 3일경우 Sissors로 정의되게 하였다
val randomNumber = (1..3).random()
if(randomNumber == 1) {
computerChoice = "Rock"
}else if (randomNumber == 2) {
computerChoice = "Paper"
}else if (randomNumber == 3) {
computerChoice = "Scissors"
}
println(computerChoice)
when으로 대체해보기
다음과 같이 IDE내에서 when으로 사용되기를 추천한다

다음과 같이 when으로 표현이 가능하다
when(randomNumber){
1 -> {
computerChoice = "Rock"
}
2 -> {
computerChoice = "Paper"
}
3 -> {
computerChoice = "Scissors"
}
}
println(computerChoice)
3. 승자가 누군지 확인하기
그리고 다음과 같이 when과 if을 이용하여 승자를 판별할 수가 있다
val winner = when {
userChoice == computerChoice -> "Tie"
userChoice == "Rock" && computerChoice == "Scissors" -> "User"
userChoice == "Paper" && computerChoice == "Rock" -> "User"
userChoice == "Scissors" && computerChoice == "Paper" -> "User"
else -> "Computer"
}
if (winner == "Tie") {
println("It's a tie")
}
else if (winner == "User"){
println("User Won!")
}
else {
println("Computer Won!")
}

다음과 같은 식으로 표현할 수 있다
fun main() {
var computerChoice = ""
var userChoice = ""
println("Rock, Paper or Scissors? Enter your choice!!")
userChoice = readln()
val randomNumber = (1..3).random()
when(randomNumber){
1 -> {
computerChoice = "Rock"
}
2 -> {
computerChoice = "Paper"
}
3 -> {
computerChoice = "Scissors"
}
}
println("Computer : " + computerChoice)
val winner = when {
userChoice == computerChoice -> "Tie"
userChoice == "Rock" && computerChoice == "Scissors" -> "User"
userChoice == "Paper" && computerChoice == "Rock" -> "User"
userChoice == "Scissors" && computerChoice == "Paper" -> "User"
else -> "Computer"
}
if (winner == "Tie") {
println("It's a tie")
}
else {
println(winner+"Won!")
}
}
이렇게 기본적인 기능을 제작했다
하지만 입력에 대한 검증과, 이를 반복적으로 실행할 수 있는 기능 또한 추가하고자 한다
while loops
while내에 조건이 true면 그 안의 코드를 지속적으로 실행시키는 것을 말한다

다음과 같이 간단하게 구현할 수 있다
var count = 0
while(count <3) {
println("count : $count")
count++
}
break
다음과 같이 break를 이용하여 loop 중간에 나갈수도 있다
var userInput = readln()
while (userInput == "1"){
println("While loop executed")
break
}
Throw exceptions
다음을 이용하여 error를 만들 수 있다


이렇게 위에서 나온 모든걸 합쳐서 만든 최종 게임은 다음과 같다.
fun main() {
var userInput = "1"
while (userInput == "1") {
println("Rock, Paper or Scissors? Enter your choice!!")
var computerChoice = ""
var userChoice = ""
userChoice = readln()
userChoice.lowercase() // 유효성검사를 위한 소문자 변환
if (userChoice !="rock" && userChoice!="paper"&& userChoice!="scissors"){
throw IllegalArgumentException()
}
val randomNumber = (1..3).random()
when (randomNumber) {
1 -> {
computerChoice = "rock"
}
2 -> {
computerChoice = "paper"
}
3 -> {
computerChoice = "scissors"
}
}
println("Computer : $computerChoice")
val winner = when {
userChoice == computerChoice -> "Tie"
userChoice == "rock" && computerChoice == "scissors" -> "User"
userChoice == "paper" && computerChoice == "rock" -> "User"
userChoice == "scissors" && computerChoice == "paper" -> "User"
else -> "Computer"
}
if (winner == "Tie") {
println("It's a tie")
} else {
println("$winner Won!")
}
println("If you enter number 1, the game will continue, " +
"and press another number, the game will stop")
userInput = readln()
}
}
'공부일지 > Kotlin' 카테고리의 다른 글
| [Kotlin] 4일차(2) - 간단한 은행 프로그램 (1) | 2025.08.01 |
|---|---|
| [Kotlin] 4일차(1) - 리스트와 객체 (0) | 2025.07.31 |
| [Kotlin] 3일차 - 함수, 객체 (1) | 2025.07.31 |
| [Kotlin] 2일차 - 코틀린의 기초 (2) | 2025.07.25 |
| [Kotlin] 1일차 - 모든 것 설정하기 (0) | 2025.07.24 |