Я делаю текстовую «игру», в которой есть 3 игрока, чьи имена находятся в массиве, и я пытаюсь настроить подсчет очков, чтобы каждый раз, когда их имя генерируется случайным образом после нажатия кнопки, оно добавлялось к их личный подсчет очков.
Поскольку это мой первый проект, я не добился успеха ни в одном методе.
var playerOne = prompt("Enter the name of the 1st player");
var playerTwo = prompt("Enter the name of the 2nd player");
var playerThree = prompt("Enter the name of the 3rd player");
const playerName = [playerOne, playerTwo, playerThree];
const didHow = ['quietly', 'carefully', 'slowly', 'quickly', 'secretly', 'ragefully'];
const didWhat = ['went', 'ran', 'fell', 'drove', 'jumped', 'fought', 'died'];
const quoteBtn = document.querySelector('#quoteBtn');
const playerNameQ = document.querySelector('#playerName');
const didHowQ = document.querySelector('#didHow');
const didWhatQ = document.querySelector('#didWhat');
quoteBtn.addEventListener('click', displayQuote);
function displayQuote() {
let numberOne = Math.floor(Math.random()*playerName.length);
let numberTwo = Math.floor(Math.random()*didHow.length);
let numberThree = Math.floor(Math.random()*didWhat.length);
playerNameQ.innerHTML = playerName[numberOne];
didHowQ.innerHTML = didHow[numberTwo];
didWhatQ.innerHTML = didWhat[numberThree];
}
Javascript не является компилируемым языком и интерпретируется. То есть порядок объявлений имеет значение. Это менее верно, когда вы попадаете в классы, но конкретно для вашего примера переместите объявление функции, прежде чем использовать его:
...
function displayQuote() {
// ...
}
quoteBtn.addEventListener('click', displayQuote);
Создайте массив объектов для каждого пользователя,
arrUsers=[{
"id":"1"
"user":"user1",
"score":0
},{
"id":"2"
"user":"user2",
"score":0
},{
"id":"3"
"user":"user3",
"score":0
}]
После этого проверяйте ход игрока с id, и при каждом нажатии на кнопку делайте счет++.
Я исправил проблему, поставив:
var pointsOne = 0;
var pointsTwo = 0;
var pointsThree = 0;
перед displayQuote() и вставив в функцию следующий код:
if (playerName[numberOne] == playerOne) {
pointsOne++;
pointsOnee.innerHTML = pointsOne;
}
else if (playerName[numberOne] == playerTwo) {
pointsTwo++;
pointsTwoo.innerHTML = pointsTwo;
}
else if (playerName[numberOne] == playerThree){
pointsThree++;
pointsThreee.innerHTML = pointsThree;
}
Итак, когда, когда пользователь вводит свое имя, установить его оценку на -1? Будьте более конкретны в том, что вы хотите. Какие ошибки вы получаете? С какой проблемой вы сталкиваетесь?