付録: 応用課題の答え — ベストスコア
localStorage はブラウザにデータを残す仕組みです。ページを閉じても消えません。
function saveBest(currentMoves) {
const best = Number(localStorage.getItem("bestMoves"));
if (!best || currentMoves < best) {
localStorage.setItem("bestMoves", currentMoves);
return true;
}
return false;
}
handleMatch のクリア判定のところで呼びます。
if (matchedPairs === symbols.length) {
stopTimer();
if (saveBest(moves)) {
clearMessageEl.textContent = `自己ベスト更新! ${moves}手 / ${timerEl.textContent}`;
} else {
clearMessageEl.textContent = `クリア! ${moves}手 (ベスト ${localStorage.getItem("bestMoves")}手)`;
}
}
保存できるのは文字列だけなので、数値として比べるときは Number(...) で戻します。