46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
const GAME_STATE_KEY = "gameState";
|
|
|
|
class GameState {
|
|
getQuestionChoice(qId) {
|
|
let savedItem = this._readGameState();
|
|
if (qId in savedItem) {
|
|
return savedItem[qId];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
setQuestionChoice(qId, cId, isRight) {
|
|
let savedItem = this._readGameState();
|
|
savedItem[qId] = {cId: cId, isRight: isRight};
|
|
localStorage.setItem(GAME_STATE_KEY, JSON.stringify(savedItem));
|
|
}
|
|
|
|
clearChoices() {
|
|
localStorage.removeItem(GAME_STATE_KEY);
|
|
}
|
|
|
|
getSummary() {
|
|
let savedItem = this._readGameState();
|
|
let summary = { totalAnswered: 0, totalRight: 0 };
|
|
|
|
for (let k in savedItem) {
|
|
summary.totalAnswered++;
|
|
if (savedItem[k].isRight) {
|
|
summary.totalRight++;
|
|
}
|
|
}
|
|
|
|
return summary;
|
|
}
|
|
|
|
_readGameState() {
|
|
let savedItem = localStorage.getItem(GAME_STATE_KEY);
|
|
if (savedItem === null) {
|
|
return {};
|
|
} else {
|
|
return JSON.parse(savedItem);
|
|
}
|
|
}
|
|
}
|
|
|
|
export let gameState = new GameState(); |