먼저, 내가 만들려고 하는 '숫자야구' 라는 게임은
컴퓨터에서 랜덤한 네 자리 숫자가 주어지고 사용자는 10번의 기회 동안 이 네 자리 숫자가 무엇인지 맞추는 게임이다.
게임이 실행되면 컴퓨터가 네자리 숫자를 제공하면 된다 이거지?
반복문 돌려서 만들면 되겠네😗~~
.
.
다 만들었네! 콘솔에서 한번 보자!
됐다! 네자리 숫자 나오네! (딱 한번봄) 이제 다른 기능 만들자!
.
.
.
보자보자 이제 만들 기능이..
음 사용가 입력한 숫자랑 컴퓨터가 입력한 숫자가 일치하면.. 음~어디보자
음..그래그래 이렇게저렇게 코드를 짜면 되겠구나! 음~!!~~
.
..
.
.

('도전'을 클릭하면 사용자가 입력한 숫자와 컴퓨터 랜덤값을 비교하여 입력한 숫자에 대한 결과값을 내어주어야함..)
왜.. 도전을 누르면 콘솔에 계속 다른 숫자가 찍히지?
내가 혹시 구현하고싶었던게 사용자는 단 한번도 이길 수 없고 영원히 끝나지 않는 게임...?
😨
수정해보자..
$btn.addEventListener('click', () => {
const inputNumber = $input.value
const random = randomNum()
console.log(random)
if (inputNumber !== random) {
hit++
$result.innerHTML += `<br><span>${onHit(inputNumber)} STRIKE: ${getStrike(inputNumber, random)} BALL: ${getBall(inputNumber,random)}</span></br>`
}
})
혹시 고수님들은 바로 눈치채셨을까
내가 randomNum(랜덤한 네자리숫자를 제공하는 함수)을 게임이 시작 할 때마다 동작하게 만들어놓은것을..
쏘 한심
저거 발견하고나서 잠깐 한동안 현타가..😕뭐 이런 실수를하지?
얼마전에 백준 풀 땐 반복문 안에 콘솔을 넣어놔서 계속 콘솔이 찍히게하더니
삽질하면서 배우는거지 뭐 다신 안그래야지 라고하기엔 너무 간단한 실수라 ㅠㅠ
벨로그에 박제해두고 수치심을 느끼며 반성해야겠다.
randomNum 함수가 실행되면 반복문이 돌면서 digit자리 수 만큼의 랜덤한 숫자가 출력되고 반복문이 끝나면 random을 return한다.
function randomNum() {
let num = []
let random = ''
for (let i=0; i<digit; i++) {
num[i] = parseInt(Math.random() * 10)
random += num[i]
}
return random
}
function randomNum() {
let num = []
let random = []
for (let i=0; i<10; i++) {
num[i] = parseInt(Math.random() * 10)
if (random.indexOf(num[i]) === -1) {
random.push(num[i])
}
}
answer.push(random.slice(0,4).join(''))
}
함수 바깥에 answer라는 변수를 만들어 랜덤한 숫자 네자리를 넣어줬다..............그렇게 행복하게 살았습니다..라고 하면 정말 너무 좋겠는데...
아무리 생각해봐도 네자리 숫자를 만들 방법이
answer.push(random.slice(0,4).join(''))
이거 말곤 없는거다.. 저렇게 안해도 될것같은데.. 뭔가 다른 방법이 있을것같은데..
그래도 코드가 구현되긴 된다 ㅠㅠ 더 보기 깔끔하고 더 좋은 방법을 생각해봐야겠다
어떻게 어떻게.. 구르고는 있는 내 숫자야구 게임... 🥲