2015-01-06 2 views
-4

Итак, я пытаюсь создать код, где пользователю будет предложено указать «рок», «бумага» или «ножницы», а затем сравнить его со случайным выбором компьютера. Выбор компьютера считается случайным значением между 0 и 1. Наша функция сравнения проходит через оба этих варианта и сравнивает их значение, чтобы возвращать выходной сигнал, сообщая, какой из сигналов руки выигрывает. Я получаю синтаксическую ошибку, но не могу понять, что мне не хватает.Ножницы для бумаги для камней в Javascript

var userChoice = prompt("Do you choose rock, paper or scissors?"); 
 
var computerChoice = Math.random(); 
 

 
if (computerChoice < 0.34) { 
 
    computerChoice = "rock"; 
 
} else if (computerChoice <= 0.67) { 
 
    computerChoice = "paper"; 
 
} else { 
 
    computerChoice = "scissors"; 
 
} 
 

 
var compare = function(choice1, choice2) { 
 
    if (choice1 === choice2) { 
 
     return "The result is a tie!"; 
 
    } else if (choice1 === "rock") { 
 
     if (choice2 === "scissors") { 
 
      return "rock wins"; 
 
     } else { 
 
      return "paper wins"; 
 
     } 
 
    } else if (choice1 === "paper") { 
 
     if (choice2 === "rock") { 
 
      return "paper wins"; 
 
     } else { 
 
      return "scissors wins"; 
 
     } 
 
    } else(choice1 === "scissors") { 
 
     if (choice2 === "paper") { 
 
      return "scissors wins"; 
 
     } else { 
 
      return "rock wins"; 
 
     } 
 
    } 
 
} 
 

 
console.log(compare(userChoice, computerChoice));

+5

«Я получаю синтаксическую ошибку» - Каково сообщение об ошибке? В какой строке это относится? – Quentin

+0

это точное сообщение: «SyntaxError: missing before statement» – inthedark72

+3

Else's не имеет условий: 'else (choice1 ===" scissors ")' – j08691

ответ

2

else (choice1 === "scissors") { является проблемой. Либо сделайте else if (...) {, либо else { .

Кстати, синтаксическая ошибка сообщает вам точную ошибку. В инструментах разработчика Chrome я только должен был щелкнуть по ошибке в консоли, чтобы увидеть строку.

+0

Хорошо, спасибо, это имеет смысл сейчас. Я использую codeacademy и, похоже, не указывает местоположение ошибки. – inthedark72

6

У вас есть условие для вашего заявления else. Удалите его или добавьте if.

} else if (choice1 === "scissors") { 
    if (choice2 === "paper") { 
    return "scissors wins"; 
    } else { 
    return "rock wins"; 
    } 
} 
+0

спасибо, что это исправить. Это также имеет смысл для меня сейчас – inthedark72

+2

Если это исправлено, ваша проблема помечена как принятая @ user2731392 –

0
else (choice1 === "scissors") { 

является незаконным Постулаты.

else if 

ожидает условного обозначения.

else 

не должно быть такого.

Смежные вопросы