在資料處理部分,我使用變數來儲存遊戲的核心資訊,包括隨機答案數字(answer)、玩家猜測次數(attempts)以及當前難度的最大範圍(maxRange)。每局遊戲開始時,程式會初始化這些變數,確保每局遊戲的資料正確無誤。
玩家每次提交猜測時,程式會呼叫 makeGuess() 函式,先檢查輸入是否為有效數字,並確認是否在遊戲範圍內。接著使用 if/else 判斷玩家的猜測與答案大小,回傳「太大」「太小」或「猜對了」的提示。簡單模式還會更新提示範圍,讓玩家逐步縮小可能的數字區間。
每次猜測的數字都會被存入陣列,並用迴圈將歷史紀錄依序呈現於畫面上。這樣可以避免玩家重複猜測相同數字,並且方便程式計算平均猜測次數與最佳紀錄,提升遊戲完整性與玩家體驗。
我使用 setInterval() 實現倒數計時,每秒更新畫面上的剩餘秒數。當時間到或玩家猜對時,程式會呼叫 endGame() 函式結束遊戲,並根據情況顯示正確答案、猜測次數,或播放彩帶動畫。計時功能增加了遊戲緊張感,也考驗玩家的策略和反應速度。
為了讓程式更有條理,我將功能拆成多個函式:
makeGuess() 處理猜測判斷與提示更新;
endGame() 處理遊戲結束邏輯;
restartGame() 初始化遊戲狀態並返回難度選擇畫面;
saveRecord() 與 showStats() 管理成績資料,並呈現平均與最佳成績。
透過這次專案,我更熟悉如何處理使用者輸入資料,以及如何透過條件判斷與迴圈控制遊戲流程。陣列與變數的運用讓遊戲資料完整且易於管理,而函式分工與模組化設計則讓程式邏輯清楚、有條理。這個專案提供了資料結構與邏輯運算在實務專案中應用的實例,從資料儲存、運算判斷到畫面呈現,都有系統化的設計。