<참고 링크>
해당 링크를 들어가면 자바스크립트를 입문하기에 좋은 예시가 만들어져있습니다.
본 게시글에 적혀있습니다.
알고리즘은 다음과 같습니다.
<!DOCTYPE html> <html lang="en-us"> <head> <meta charset="utf-8"> <title>Number guessing game</title> <style> html { font-family: sans-serif; } body { width: 50%; max-width: 800px; min-width: 480px; margin: 0 auto; } .form input[type="number"] { width: 200px; } .lastResult { color: white; padding: 3px; } </style> </head> <body> <h1>Number guessing game</h1> <p>We have selected a random number between 1 and 100. See if you can guess it in 10 turns or fewer. We'll tell you if your guess was too high or too low.</p> <div class="form"> <label for="guessField">Enter a guess: </label> <input type="number" min="1" max="100" required id="guessField" class="guessField"> <input type="submit" value="Submit guess" class="guessSubmit"> </div> <div class="resultParas"> <p class="guesses"></p> <p class="lastResult"></p> <p class="lowOrHi"></p> <button class="newGame">Start new game</button> </div> <script src="chooseNum.js"> // Your JavaScript goes here </script> </body> </html>
let randomNumber = Math.floor(Math.random() * 100) + 1; const guesses = document.querySelector('.guesses'); const lastResult = document.querySelector('.lastResult'); const lowOrHi = document.querySelector('.lowOrHi'); const guessSubmit = document.querySelector('.guessSubmit'); const guessField = document.querySelector('.guessField'); let guessCount = 1; let resetButton;
다음과 같이 기본값들이 주어지고, 아래에 정답이 있지만. 정답을 보지 않고 코드를 작성했습니다.
let randomNumber = Math.floor(Math.random() * 100) + 1; console.log(randomNumber); const guesses = document.querySelector('.guesses'); const lastResult = document.querySelector('.lastResult'); const lowOrHi = document.querySelector('.lowOrHi'); const guessSubmit = document.querySelector('.guessSubmit'); const guessField = document.querySelector('.guessField'); const newGameBtn = document.querySelector('.newGame'); let guessCount = 1; let resetButton; newGameBtn.style.display = "none" function NewGame() { return function(){ randomNumber = Math.floor(Math.random() * 100) + 1; console.log(randomNumber); guessCount = 1; const resetParas = document.querySelectorAll('.resultParas p'); for (const resetPara of resetParas) { resetPara.textContent = ''; } guessField.disabled = false; guessSubmit.disabled = false; newGameBtn.style.display = "none"; lastResult.style = "background-color:none" } }; guessSubmit.addEventListener('click', function() { const userGuess = Number(guessField.value); if(guessCount === 1) { guesses.textContent = 'Previous guesses: '; } guesses.textContent += userGuess + ' '; if (guessCount == 10) { guessField.disabled = true; guessSubmit.disabled = true; lastResult.innerText = '!!!GAME OVER!!!'; lowOrHi.innerText = ''; newGameBtn.style.display = "block" } else { if (randomNumber < guessField.value) { console.log("low"); lastResult.style = "background-color:red" lastResult.innerText = 'Wrong!' lowOrHi.innerText = 'Last guess was too high!' } else if (randomNumber > guessField.value) { console.log("high"); lastResult.style = "background-color:red" lastResult.innerText = 'Wrong!' lowOrHi.innerText = 'Last guess was too low!' } else { console.log("Right"); lastResult.style = "background-color:green" lastResult.innerText = 'Congratulations! You got it right' lowOrHi.innerText = '' newGameBtn.style.display = "block" } } guessField.value = ''; guessField.focus(); guessCount += 1; }) newGameBtn.addEventListener('click', NewGame());
resetGame()을 함수로 묶지 않은 것이 아쉽지만, 잘 작동합니다.