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 | 29 | 30 | 31 |
Tags
- 미니게임
- 게시판
- SQL
- git
- Spinner
- 버전일치
- snowpack
- React
- java
- 왕초보
- 오버라이드
- Spring
- sub query
- 안드로이드
- 함수
- FIle
- 쿠키
- 코틀린
- kotlin
- 숫자
- 스타일보험
- degit
- Android
- webpack
- 답글
- parcel
- 상속
- 시큐어코딩
- java#왕초보
- 스프링
Archives
- Today
- Total
YSHUSH
가위바위보 게임 본문
컴퓨터와 가위바위보 게임을 해보도록 하자
컴퓨터는 랜덤으로 내고 유저는 숫자를 입력하여 게임한다.
몇승 몇패 몇무인지 결과값도 출력해보자.
변수 정의
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 = 0
lose = 0
draw = 0
*/
println("가위 바위 보 게임입니다.")
}
win = 0.also{ draw = it }.also { lose = it } → 0으로 초기화 하는 부분
랜덤값 얻기
// random
comNum = (Math.random() * 3).toInt() // 0 ~ 2
Math.random()은 0과 1사이를 반환하므로 * 3을 할 경우 0과 2.xxx사이값을 반환한다.
여기에 toInt()를 해주면 정수 0, 1, 2를 반환하게 할 수 있다.
가위바위보 공식
COMPUTER | USER | WIN |
(보) 2 | - 0 + 2 = 4 % 3 = | 1 |
(가위) 0 | - 1 + 2 = 1 % 3 = | 1 |
(바위) 1 | - 2 + 2 = 1 % 3 = | 1 |
COMPUTER | USER | LOSE |
(가위) 0 | - 2 + 2 = 0 % 3 = | 0 |
(바위) 1 | - 0 + 2 = 3 % 3 = | 0 |
(보) 2 | - 1 + 2 = 3 % 3 = | 0 |
COMPUTER | USER | DRAW |
(가위) 0 | - 0 + 2 = 2 % 3 = | 2 |
(바위) 1 | - 1 + 2 = 2 % 3 = | 2 |
(보) 2 | - 2 + 2 = 2 % 3 = | 2 |
결과 얻기
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 이고 com은 $comChar 입니다.")
println("$win 승 $lose 패 $draw 무 입니다")
완성 코드 + 재시작
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 = 0
lose = 0
draw = 0
*/
println("가위 바위 보 게임입니다.")
while(true) {
println("start game >>>")
// random
comNum = (Math.random() * 3).toInt() // 0 ~ 2
// user input
print("가위(0) 바위(1) 보(2) = ")
userNum = readLine()!!.toInt() // 0 ~ 2
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 이고 com은 $comChar 입니다.")
println("$win 승 $lose 패 $draw 무 입니다")
print("한판 더?(y/n) = ")
val msg = readLine()
if (msg == "n" || msg == "N") {
println("안녕히 가십시오")
break
}
println("게임을 다시 시작합니다")
}
}
'Coding > Kotlin' 카테고리의 다른 글
추상클래스(abstract class) (0) | 2022.01.27 |
---|---|
상속 (0) | 2022.01.27 |
Lazy (0) | 2022.01.26 |
Getter & Setter (0) | 2022.01.26 |
보조 생성자 (0) | 2022.01.26 |