我想减少我的代码,因为那里有太多的重复功能。等待你的建议。
我已经尝试创建一个函数,然后编辑将其应用于其他只是更改参数的东西。这个功能只需点击即可完成,但事实并非如此。
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
我希望有一个功能,并将它应用于我的三件事:摇滚,纸张,剪刀,只是表明一些功能参数。我还希望这些函数将通过单击而不是通过窗口重新加载来执行。如果你做不到,那就建议你的变种。提前致谢!**
发布于 2019-06-11 15:11:45
我会把你所拥有的所有代码都rock.addEventListener
移到一个单独的函数中,这将需要一个数字og一个字符串作为参数。通过这种方式,您可以随意提供所点击的任何类型,并且不会产生重复的代码。
https://stackoverflow.com/questions/-100006989
复制相似问题