중복 없이 랜덤으로 만든 3자리 숫자를 입력값을 통해 맞춰보자
function generateNumber() {
let num = [];
while (num.length < 3) {
let n = Math.floor(Math.random() * 10);
if (!num.includes(n)) {
num.push(n);
}
}
return num.join("");
}
// 중복없는 임의의 3자리는 만드는 함수
let input = '123'
function checkNumber() {
let i = 0;
let strike = 0;
let ball = 0;
let play = 0;
while (i < 3) {
if (number[i] == input[i]) strike++;
else if (number.includes(input[i])) ball++
i++;
}
console.log(`${input}=> ${strike}S ${ball}B`);
if (strike !== 3) {
play++
console.log(play)
} else {
console.log(`${input}=> ${strike}S ${play}회 만에 성공!`);
}
}
백틱을 이용해 문자와 변수값을 콘솔에 기록했으나 숫자를 못 맞추었을 때
게임이 반복되는 부분과 play가 카운트가 안되고 있는 점을 고쳐야 했다.
function playGame() {
let play = 1
input = window.prompt();
checkNumber(input);
function checkNumber() {
let i = 0;
let strike = 0;
let ball = 0;
while (i < 3) {
if (number[i] == input[i]) strike++;
else if (number.includes(input[i])) ball++
i++;
}
console.log(`${input}=> ${strike}S ${ball}B`);
if (strike !== 3) {
play++
console.log(play)
playGame()
} else {
console.log(`${input}=> ${strike}S ${play+1}회 만에 성공!`);
}
}
}
playGame();
playGame 함수를 만들어 3S 달성 전에는 playGame을 반복하도록 해준다.
아직 문제가 남았는데... play의 횟수가 2에서 올라가지 않는다...
vscode의 디버그 기능을 이용해 보니 함수가 다시 실행될 때 저장된 값이 초기화 되는 것을 확인...
play 변수를 함수 바깥에 선언해서 횟수가 누적되도록 하니 잘 저장됐다!
최종코드!
function generateNumber() {
let num = [];
while (num.length < 3) {
let n = Math.floor(Math.random() * 10);
if (!num.includes(n)) {
num.push(n);
}
}
return num.join("");
} // 중복 없는 랜덤 3자리를 생성하는 함수
const number = generateNumber(); // 변수에 함수의 리턴값을 저장
console.log(number);
let play = 1 // 실행될 때 1부터 카운트
window.alert('콘솔창을 켜주세요')
function playGame() {
input = window.prompt();
checkNumber(input);
function checkNumber() {
let i = 0;
let strike = 0;
let ball = 0;
while (i < 3) {
if (number[i] == input[i]) strike++;
else if (number.includes(input[i])) ball++
i++;
}
console.log(`${input}=> ${strike}S ${ball}B`);
if (strike !== 3) {
play++
console.log(play)
playGame() // strike = 3이 아닐시 게임을 반복
} else {
console.log(`${input}=> ${strike}S ${play}회 만에 성공!`);
}
}
}
playGame();
자바스크립트를 기초 문법을 통해 만들어 본 숫자 야구 게임!
조건문과 반복문 다양한 메서드를 활용해 볼 수 있었던 재밌는 코딩이었다!