숫자야구게임을 하나 만들었다
사실 나 혼자 만든 게 아니라 여러 사람들의 도움으로 만들었다
fun main() {
val num1 = (1..9)
val rangeRandom1: MutableList<Int> = MutableList(3) { 10 }
var idx: Int = 0
var number: Int
while (idx < 3) {
number = num1.random()
if (number in rangeRandom1)
continue
rangeRandom1[idx] = number
idx++
}
1~9까지 랜덤하게 3개의 숫자를 만들어내는 함수다
이 부분은 사실 내가 다 만든 코드가 아니라 완벽하게 이해를 잘 못하겠다
이 부분은 더 공부해 봐야겠다
그다음은
var q : Int
var w : Int
var e : Int
var strike : Int
var ball : Int
게임이 진행될 때 사용할 변수들을 만들어놓았다
while (true) {
try {
print("첫 번째 숫자 : ")
q = readln().toInt()
if (q !in 1..9) {
println("다시입력")
continue
}
print("두 번째 숫자 : ")
w = readln().toInt()
if (w !in 1..9) {
println("다시입력")
continue
}
print("세 번째 숫자 : ")
e = readln().toInt()
if (e !in 1..9) {
println("다시입력")
continue
}
} catch(e: NumberFormatException) {
println("다시입력")
continue
}
if (q == w || q == e || w == e) {
println("중복")
continue
}
while 문을 사용하여 이 함수들이 반복할 수 있도록 하였다
첫 번째 숫자에서 1~9 이외의 숫자나 문자를 입력하면 다시 입력하게 해두었다
두 번째, 세 번째도 동일하게 해두었다
그리고 첫 번째와 두 번째, 세 번째 숫자가 동일하면 중복 입력으로 다시 입력하게 해두었다
try catch를 사용하여 예외 처리도 해두었다
strike = 0
ball = 0
val r = arrayOf(q, w, e)
for (i in r.indices) {
for (j in rangeRandom1.indices) {
if (r[i] == rangeRandom1[j]) {
if (i == j) {
strike++
} else {
ball++
}
}
}
}
println("스트라이크: ${strike}")
println("볼: ${ball}")
if (strike == 3) {
println("끝")
break
여기에서는 위에서 받아온 숫자를 대조하여 같은 숫자인지 같은 위치인지 분별하는 작업이 진행된다
같은 숫자, 같은 위치에 있으면 strike
같은 숫자, 다른 위치에 있으면 ball
둘 다 아니면 아무것도 표시하지 않는다
3 스트라이크가 되면 게임이 끝난다
처음 이 과제를 직면했을 땐 막막하였다
어디서부터 시작해야 하는지
어떻게 시작해야 하는지
하지만 좋은 분들이 가르쳐 준 결과 해결할 수 있었다
나 혼자 해결하려 했으면 아마 하지 못했을 것이다
협업의 중요성을 간접적이게 알아가는 좋은 시간이었다
'코딩 나도 할 수 있다!!' 카테고리의 다른 글
2024.05.08 (수) 코틀린 문제풀기 (0) | 2024.05.08 |
---|---|
2024.05.03 (금) 코틀린 숫자야구게임 2 (0) | 2024.05.03 |
2024.04.30 (화) 코틀린 약수의 합 (0) | 2024.04.30 |
2023.04.29 (월) 코틀린 별찍기 1 (0) | 2024.04.29 |
2024.04.26 (금) 코틀린 계산기 만들기 3 (0) | 2024.04.26 |