Вы можете использовать следующее, чтобы сохранить ваш код простым:
var btns = document.querySelectorAll("button");
for (var i = 0; i < btns.length; i++){
btns[i].addEventListener("click", btnHandler);
}
И тогда ваша функция-обработчик будет вызываться при каждом нажатии кнопки без необходимости повторения вашего кода:
function btnHandler(el){
switch (el.getAttribute("id")){
case "Papyrus":
...
default: break;
}
}
Он также позволяет вам передавать сам элемент кнопки, так что вы можете просто извлечь атрибут ID при необходимости, вместо того, чтобы передавать параметр для каждого отдельного экземпляра через отдельные вызовы. Для проверки условия выигрыша вы можете исключить несколько операторов «если», просто посмотрев, равны ли они, а если нет, сравнить только человеческий выбор с выбором компьютера, который победит, и таким образом установить результат. Его можно оптимизировать и дальше, но я думаю, что вы хотели бы кое-что из этого узнать, поэтому я также прокомментировал скрипку.
Для этого примера я также переместил функцию fight () в обработчик кнопок, чтобы у игрока будет выбор, и выбор компьютера будет активирован только в этот момент. В исходном коде было несколько экземпляров, которые вызывали функции и устанавливают переменные, но не использовали их и т. Д. c, а также несколько синтаксических ошибок.
См. Прикрепленную скрипту: https://jsfiddle.net/s0toz3L8/2/