Добрый день уважаемые гуру.
Помогите пожалуйста разобраться.
Пытаюсь сделать игру камень ножницы бумага:
HTML:
<body>
<div>
<p>Камень ножницы бумага</p>
<button onclick="
resultsTableEntry(rockCode)
console.log(score);
" class="rock-btn">
Камень
</button>
<button onclick="
resultsTableEntry(scissorCode)
console.log(score);
" class="scissor-btn">
Ножницы
</button>
<button onclick="
resultsTableEntry(paperCode)
console.log(score)
" class="paper-btn">
Бумага
</button>
<button onclick="resetScore()">Сбросить счет!</button>
<p class="score-output"></p>
</div>
<script src="source/javascript/r_s_p.mjs"></script>
</body>
JS:
Простите за кучу if else, позже обязательно попробую это все улучшить
//Переменные выбора пользователя, передаваемые в функцию
//для сравнения с выбором компьютера
const rockCode = 'Камень';
const scissorCode = 'Ножницы';
const paperCode= 'Бумага';
// Объект для хранения результатов игры
const resultsTable = {
ties: 0,
wins: 0,
losses: 0
};
// Пытаюсь записать результат в памяти компьютера, чтоб при
//обновлении страници не обнулялся resultTable
const score = JSON.parse(localStorage.getItem('resultsTable'));
// Рандомный выбор для компьютера
const randomNumb = () => {
let randomNumb = Math.random();
if (randomNumb.toFixed(3) <= 1 / 3) {
randomNumb = rockCode;
} else if (randomNumb.toFixed(3) > 1 / 3 && randomNumb.toFixed(3) < 2 / 3) {
randomNumb = scissorCode;
} else if (randomNumb.toFixed(3) > 2 / 3 && randomNumb.toFixed(3) < 1) {
randomNumb = paperCode;
}
return randomNumb;
};
//Сравнение выбора машины и выбора пользователя
const res = (userChoice) => {
const computerChoice = randomNumb();
let message;
if (userChoice === rockCode && computerChoice === rockCode){
message = 'Ничья не взяла';
}else if(userChoice === rockCode && computerChoice === scissorCode){
message = 'Usver WIN';
}else if(userChoice === rockCode && computerChoice === paperCode){
message = 'MACHINE WIN';
;
}else if(userChoice === scissorCode && computerChoice === rockCode){
message = 'MACHINE WIN';
}else if(userChoice === scissorCode && computerChoice === scissorCode){
message = 'Ничья не взяла';
}else if(userChoice === scissorCode && computerChoice === paperCode){
message = 'Usver WIN';
}else if(userChoice === paperCode && computerChoice === rockCode){
message = 'Usver WIN';
}else if(userChoice === paperCode && computerChoice === scissorCode){
message = 'MACHINE WIN';
}else if(userChoice === paperCode && computerChoice === paperCode){
message = 'Ничья не взяла';
}
return message;
};
// Сброс очков
const resetScore = () => {
resultsTable.wins = 0;
resultsTable.ties = 0;
resultsTable.losses = 0;
alert(`
Победы: ${resultsTable.wins}
Ничьи: ${resultsTable.ties}
Поражения: ${resultsTable.losses}`);
};
//Итоговая функция для сохранения очков в обьект resultsTable
const resultsTableEntry = (userChoice) => {
const duelResult = res(userChoice);
if (duelResult === 'Ничья не взяла') {
return resultsTable.ties += 1;
}
if (duelResult === 'Usver WIN') {
return resultsTable.wins += 1;
}
if(duelResult === 'MACHINE WIN') {
return resultsTable.losses += 1;
}
};
// Пытаюсь записать результат в памяти компьютера, чтоб при
//обновлении страници не обнулялся resultTable
localStorage.setItem('resultsTable', JSON.stringify(resultsTable));
В браузере все работает(кроме localStorage), но если пытаюсь скомпилировать это в vsCode выдает ошибку:
ReferenceError: localStorage is not defined
Грешу на то что код находится в подключаемом файле, и просто не видит объект Window.(но могу серьезно ошибаться)
Пытался вбить в отдельный скрипт в HTML файле local.Storage тоже ничего не вышло.
Подскажите куда копать.