サーバーから XML データを取得し、JavaScript でデータを解析し、[canvas] タグを使用してページ上にパズルを作成するクロスワード パズル Web アプリを作成しています。ユーザーが手がかりを選択して正しい答えを入力すると、クロスワード パズルの対応するマスに文字が配置されます。
対応する四角に文字を配置するコードのスニペットを次に示します。
function answer() {
if (this.value != '') {
var letters = this.value.split('');
var correct = xmlhttp.responseXML.getElementsByTagName(node)[0].getAttribute('a').split('');
var numCorrect = 0;
for (var i = 0; i < selected.length; i++) {
if (letters[i]) {
if (letters[i].toUpperCase() == correct[i]) {
eval('ctx.drawImage(i'+letters[i].toLowerCase()+'b, '+((selected[i].id%15)*26)+', '+(Math.floor(selected[i].id/15)*26)+')');
matrix[selected[i].id] = 1;
numCorrect++;
} else {
matrix[selected[i].id] = 0;
}
}
}
if (numCorrect == correct.length) {
alert('Correct!');
clearSelection();
} else if (numCorrect == 0) {
alert('Incorrect, try again.');
document.getElementById('answer').value = '';
document.getElementById('answer').focus();
} else if (numCorrect != correct.length) {
alert('Only some letters are correct.');
clearSelection();
}
checkForWin();
}
}
私の質問は、パズルの状態と XML を (HTML5 Web ストレージを使用して) 保存して、ユーザーがオフラインでプレイできるようにし、ブラウザーの更新時に進行状況が失われないようにするにはどうすればよいかということです。
私は HTML Web Storage API にあまり詳しくありませんが、これは Web アプリケーションにとって価値のあるツールだと聞いています。あなたのアドバイスは大歓迎です。
ありがとう、カルロス