Day 27
主題:Bug修正 — 測試所有流程並修復問題
今日目標
今天專注於遊戲品質保證,全面檢查所有功能並修正錯誤,確保遊戲流程穩定無誤。
主要目標:
學習與操作重點
快速連點問題
使用 lockBoard
鎖定翻牌過程,避免玩家在動畫進行中快速點擊造成錯誤。
多點觸控問題
在手機/平板測試時,確保同時觸碰多個卡片不會觸發錯誤行為。
狀態異常修正
確保 gameState
在各個流程中正確切換,避免翻牌或計分在遊戲尚未開始或已結束時被觸發。
分數與翻牌次數檢查
驗證翻牌次數與分數計算正確,避免累加錯誤或漏加分。
瀏覽器相容性測試
在不同瀏覽器及裝置測試,確保 CSS 動畫、觸控操作和音效皆正常。
程式檢查與修正示範
function flipCard(event) {
const card = event.currentTarget;
// 修正多種狀態問題
if (lockBoard || gameState !== "playing" || card.classList.contains("flip")) return;
card.classList.add("flip");
flippedCards.push(card);
flipCount++;
updateScoreboard();
flipSound.currentTime = 0;
flipSound.play();
if (flippedCards.length === 2) checkMatch();
}
function checkMatch() {
lockBoard = true;
const [card1, card2] = flippedCards;
const isMatch = card1.querySelector(".back").textContent === card2.querySelector(".back").textContent;
if (isMatch) {
matchedPairs++;
matchSound.currentTime = 0;
matchSound.play();
} else {
failSound.currentTime = 0;
failSound.play();
}
setTimeout(() => {
if (!isMatch) {
card1.classList.remove("flip");
card2.classList.remove("flip");
}
flippedCards = [];
lockBoard = false;
checkGameEnd();
}, 1000);
}
今日成果
✅ 全面測試遊戲流程,發現並修復各種操作 bug。
✅ 確保快速點擊、觸控、分數計算等邏輯正確無誤。
✅ 遊戲穩定性提升,玩家體驗更順暢、安全。