JavaScript是一種廣泛使用的編程語言,它可被用于編寫各種類型的程序。猜數(shù)字游戲是我們用JavaScript能夠?qū)崿F(xiàn)的最簡單的游戲之一。這個(gè)游戲可以教授我們JavaScript編程的很多核心概念,例如變量、常量、條件等。通過編寫自己的猜數(shù)字游戲程序來實(shí)踐這些概念。
為了完成這個(gè)游戲,我們需要先決定一個(gè)隨機(jī)數(shù)字作為游戲的答案。我們可以將這個(gè)數(shù)字存儲在一個(gè)變量中。接下來,我們需要在頁面上呈現(xiàn)一個(gè)輸入框和一個(gè)按鈕,用戶可以通過輸入框輸入他們的猜測數(shù)字,然后按下按鈕提交他們的答案。如果用戶猜對了,我們會向他們顯示一個(gè)消息,通知他們他們已經(jīng)獲勝。否則,我們需要向他們顯示一個(gè)失敗消息,并允許他們再次猜測。
let randomNumber = Math.floor(Math.random()*100) + 1; let guesses = document.querySelector('.guesses'); let lastResult = document.querySelector('.lastResult'); let lowOrHi = document.querySelector('.lowOrHi'); let guessSubmit = document.querySelector('.guessSubmit'); let guessField = document.querySelector('.guessField'); let guessCount = 1; let resetButton; function checkGuess() { let userGuess = Number(guessField.value); if (guessCount === 1) { guesses.textContent = '上一次猜的數(shù): '; } guesses.textContent += userGuess + ' '; if (userGuess === randomNumber) { lastResult.textContent = '恭喜你!猜對了!'; lastResult.style.backgroundColor = 'green'; lowOrHi.textContent = ''; setGameOver(); } else if (guessCount === 10) { lastResult.textContent = '游戲結(jié)束!'; setGameOver(); } else { lastResult.textContent = '你猜錯(cuò)了!'; lastResult.style.backgroundColor = 'red'; if(userGuess< randomNumber) { lowOrHi.textContent = 'Your guess is too low!'; } else if(userGuess >randomNumber) { lowOrHi.textContent = 'Your guess is too high!'; } } guessCount++; guessField.value = ''; guessField.focus(); } guessSubmit.addEventListener('click', checkGuess);
在上面的代碼中,我們首先使用Math.random()方法生成一個(gè)隨機(jī)數(shù),之后我們使用Math.floor()方法將這個(gè)數(shù)字取整,這樣我們可以獲得一個(gè)范圍在1到100之間的整數(shù)。我們還定義了一些變量,例如guesses(用于存儲玩家之前猜測過的數(shù)字)、lastResult(用于存儲最后猜測結(jié)果的消息)、lowOrHi(用于存儲猜數(shù)字的高低提示)、guessSubmit(表示提交按鈕)等。我們還定義了一個(gè)名為checkGuess()的函數(shù),這個(gè)函數(shù)用于檢查用戶猜測的數(shù)字是否正確。
在頁面上,我們需要指定一些類名,用于標(biāo)記HTML元素。這樣,我們才能通過JavaScript將這些元素與我們在代碼中定義的變量聯(lián)系起來。在下面的代碼中,我們使用了這些類名:guesses、lastResult、lowOrHi、guessSubmit、guessField。我們還為提交和重置按鈕添加了單擊事件。當(dāng)玩家單擊“提交”按鈕時(shí),checkGuess()函數(shù)會運(yùn)行。如果玩家猜對了,我們會設(shè)置背景顏色為綠色的恭喜消息。否則,我們會向他們顯示一個(gè)猜測失敗的消息和一條高低提示信息。如果猜測次數(shù)達(dá)到10次,我們會向玩家顯示失敗信息,并禁用游戲玩家的輸入。
function setGameOver() { guessField.disabled = true; guessSubmit.disabled = true; resetButton = document.createElement('button'); resetButton.textContent = '開始新游戲'; document.body.appendChild(resetButton); resetButton.addEventListener('click', resetGame); } function resetGame() { guessCount = 1; const resetParas = document.querySelectorAll('.resultParas p'); for (let i = 0 ; i< resetParas.length ; i++) { resetParas[i].textContent = ''; } resetButton.parentNode.removeChild(resetButton); guessField.disabled = false; guessSubmit.disabled = false; guessField.value = ''; guessField.focus(); lastResult.style.backgroundColor = 'white'; randomNumber = Math.floor(Math.random() * 100) + 1; }
最后,我們需要定義一個(gè)名為setGameOver()的函數(shù),用于在游戲結(jié)束時(shí)禁用用戶輸入,并允許他們重新開始游戲。在這個(gè)函數(shù)中,我們創(chuàng)建了一個(gè)“開始新游戲”的按鈕。當(dāng)玩家單擊這個(gè)按鈕時(shí),我們會運(yùn)行一個(gè)叫做resetGame()的函數(shù),用于重置游戲變量和狀態(tài)。
通過以上的JavaScript代碼,我們完成了一個(gè)簡單的猜數(shù)字游戲。該游戲?qū)崿F(xiàn)了隨機(jī)數(shù)字生成、用戶輸入、輸入次數(shù)限制以及結(jié)局顯示等功能。作為初學(xué)JavaScript的程序員,這個(gè)游戲是一個(gè)非常好的練手的項(xiàng)目。通過不斷的練習(xí),你將會進(jìn)一步熟悉JavaScript編程,并掌握更多的編程技巧。