Я хочу уменьшить свой код, потому что там слишком много повторяющихся функций. Ждите ваших предложений.
Я уже пытался создать одну функцию, а затем отредактировать ее, применив к другим вещам, просто изменив параметры. Эта функция должна работать одним кликом, но это не так.
var rock = document.getElementById('rock');
var paper = document.getElementById('paper');
var scissors = document.getElementById('scissors');
rock.addEventListener('click', function() {
// setting two images
img1.setAttribute('src', 'img/rock.png');
var number = Math.ceil(Math.random() * 3);
if (number == 1) {
img2.setAttribute('src', 'img/rock.png');
} else if (number == 2) {
img2.setAttribute('src', 'img/paper.png');
} else if (number == 3) {
img2.setAttribute('src', 'img/scissors.png');
}
// analyzing
if (img1.src == img2.src && img1.src != 'file:///C:/Users/mi/Desktop/Rock,%20paper,%20scissors/img/unphoto.png') {
winnerTextview.innerHTML = 'Ничья';
points++;
pointsTextview.innerHTML = 'очки: ' + points;
draws++;
}
if (img2.src == 'file:///C:/Users/mi/Desktop/Rock,%20paper,%20scissors/img/paper.png') {
winnerTextview.innerHTML = 'Вы проиграли';
loses++;
}
if (img2.src == 'file:///C:/Users/mi/Desktop/Rock,%20paper,%20scissors/img/scissors.png') {
winnerTextview.innerHTML = 'Вы выиграли';
points += 3;
pointsTextview.innerHTML = 'очки: ' + points;
wins++;
}
matches++;
// result
if (matches == 8) {
document.getElementById('result').style.display = 'flex';
$('html, body').stop().animate( {scrollTop: $('#result').offset().top}, 777 );
if (points >= 15) {
document.getElementById('result_winner').innerHTML = 'Поздравляю, вы выиграли робота!';
document.getElementById('result_image').setAttribute('src', 'img/goblet.png');
} else if (points < 15) {
document.getElementById('result_winner').innerHTML = 'Лошпендус, вы проиграли роботу!';
document.getElementById('result_image').setAttribute('src', 'img/poop.png');
}
document.getElementById('wins').innerHTML = 'Побед: ' + wins + ' (' + (wins / 8 * 100).toFixed(1) + '% от всех матчей)';
document.getElementById('loses').innerHTML = 'Проигрышей: ' + loses + ' (' + (loses / 8 * 100).toFixed(1) + '%)';
document.getElementById('draws').innerHTML = 'Ничьих: ' + draws + ' (' + (draws / 8 * 100).toFixed(1) + '%)';
document.getElementById('all_points').innerHTML = 'Всего очков: ' + points + ' (' + (points / 24 * 100).toFixed(1) + '% от макс. кол-ва очков)';
}
})
// this just repeating 3 times: with rock, paper and scissors
// the end of the code
Я ожидаю иметь одну функцию и применить ее к своим трем вещам: камень, бумага, ножницы, просто указав некоторые параметры функции. Я также ожидаю, что эти функции будут выполняться щелчком, а не перезагрузкой окна. Если вы не можете этого сделать, предложите свои варианты. Заранее спасибо! **