Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Javscript
- 코틀린
- SpringBoot
- 랜덤번호
- JavaScript
- array
- TextView
- stylesheet
- Hook
- button
- Linux
- 랜덤넘버
- 안드로이드
- 자바스크립트
- RecyclerView
- 스프링부트
- 오버라이딩
- Java
- Android
- fragment
- TypeScript
- 리액트
- scrollview
- JS
- npm
- nodejs
- GoogleMaps
- React
- 구글맵스
- Kotlin
Archives
- Today
- Total
타닥타닥 개발자의 일상
kotlin으로 while, if, random 이용해서 랜덤 가위바위보 게임 만들기 본문
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 }
// win = lose = draw =0
println("가위바위보 게임입니다.")
while (true) { //while문 시작!
println("start game >>>")
//random
comNum = (Math.random() * 3).toInt() //0~2 사이 값
//user input
print("가위(0) 바위(1) 보(2) = ")
userNum = readLine()!!.toInt() // user는 0~2 사이 정수를 입력한다.
result = (comNum - userNum + 2) % 3
var resultMsg = "" //resultMsg 초기화
when (result) {
1 -> {
resultMsg = "You win"
win++
}
0 -> {
resultMsg = "You lose"
lose++
}
2 -> {
resultMsg = "Draw"
draw++
}
}
var userChar = ""
var comChar = ""
//가위(0) 바위(1) 보(2)
userChar = if (userNum == 0) "가위" else if (userNum == 1) "바위" else "보"
comChar = if (userNum == 0) "가위" else if (userNum == 1) "바위" else "보"
println("${resultMsg}로 당신은 ${userChar}이고 컴퓨터는 ${comChar} 입니다.")
println("$win 승 $lose 패 $draw 무 입니다.")
println("try agin?(y/n)")
val msg = readLine() //다시 시작할지 말지 입력
if(msg == "n" || msg =="N"){ //대답 n혹은 N이면 while문 탈출
println("see ya")
break
}
println("restart!") //다시 while문 반복
}//while문 끝!
}
//win 0-2 , 1-0 , 2-1
if(userNum == 0 && comNum ==2){
result = 0
}else if(userNum == 1 && comNum ==0){
result =0
}else if(userNum == 2 && comNum ==1) {
result = 0
}
보통은 내가 가위- 컴퓨터가 보, 내가 가위 - 컴퓨터가 묵 같은 여러 세부적인 상황을 고려하여 위와 같이 코딩하지만,
{(컴퓨터 결과값 - 유저 결과 값)+2 }/3 의 나머지가 상황별로 같다는 것을 이용하여 문제를 해결했다.
가위(0) 바위(1) 보(2)
(3으로 나눈 나머지)
com user win
2 - 0 +2 =4 %3 ->1
0 - 1 +2 =1 ->1
1 - 2 +2 =1 ->1
lose
0 - 2 +2 =0 0
1 - 0 +2 =3 0
2 - 1 +2 =3 0
draw
0 - 0 +2 =2 2
1 - 1 +2 =2 2
2 - 2 +2 =2 2
'코딩 기록 > Kotlin' 카테고리의 다른 글
Comments