2016-02-21 1 views
0

Я изучаю js, используя codecademy, это говорит мне, что я прошел урок, однако это не выглядит успешным для меня, и я хотел бы понять, где я поступил неправильно, чтобы помочь мне учиться как он не помогает, потому что говорит, что я успешно завершил урок. Поэтому любая помощь была бы оценена :)Codcademy help, переменная не работает

Я сделал очень простой рок, бумага, ножницы.

Я не могу заставить его объявить, что победил, камень, бумага или ножницы. Переменная не выводит ничего.

Он должен сказать: «Победы в скалах» или «побеги ножниц» или «Результат - это галстук!». и т.д., но все это делает сказать: «Пользователь выбирает Рок Компьютер выбирает ножницы»

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"; 
} console.log("User picks" + " " + userChoice + " " + "Computer picks" + " " + computerChoice); 

var compare = function(choice1, choice2) { 
    if(choice1 === choice2) { 
     console.log("The result is a tie!"); 
    } 
    else if(choice1 === "rock") { 
     if(choice2 === "scissors") { 
      console.log("rock wins") 
     } 
     else { 
      console.log("paper wins") 
     } 
    } 
    else if(choice1 === "paper") { 
     if(choice2 === "rock") { 
      console.log("paper wins") 
     } 
     else { 
      console.log("scissors wins") 
     } 
    } 
    else if(choice1 === "scissors") { 
     if(choice2 === "paper") { 
      console.log("scissors wins") 
     } 
     else { 
      console.log("rock wins") 
     } 
    } 
}; 
compare(userChoice, computerChoice); 
+0

Вам не нужно использовать === для сравнения строк, == будет достаточно. – Rooster

+1

Ваш код отлично работает https://jsfiddle.net/DTcHh/17267/. –

+1

Вы печатаете в камне с капиталом 'R'? это не имеет случая в вашем if и будет приводить к поведению, которое вы описываете. – Rooster

ответ

1

Я отвечал на приглашение с неправильным случае «Rock» вместо «рок». Код работает, если используется правильный случай.

+1

Если вы хотите добавить дополнительные функции, которые позволят пользователю набирать «Rock» и все еще работать, преобразуйте 'choice1' во все строчные буквы после того, как ему присвоены значения, используя что-то вроде:' choice1 = choice1.toLowerCase (); 'в первой строке объявления функции. –

+0

Блестяще, я сделаю примечание, что будет полезно благодаря – GoldenGonaz

2
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"; 
} console.log("Computer: " + computerChoice); 

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 if (choice1 === "scissors") { 
    if (choice2 === "rock") { 
     return "rock wins"; 
    } else { 
     return "scissors wins"; 
    } 
} 
}; 
compare(userChoice,computerChoice); 

PS: Функция Math.random() возвращает с плавающей точкой, псевдослучайное число в диапазоне [0, 1), то есть от 0 (включительно) до, но не включая 1 (без учета), которые затем можно масштабировать до нужного диапазона. Реализация выбирает начальное семя для алгоритма генерации случайных чисел; он не может быть выбран или сброшен пользователем.

+0

Объясните свой код –

+0

Это просто упражнение от codecademy.com, если вы хотите узнать больше об этом коде. Я призываю вас принять бесплатный курс –

+0

У меня есть , Я просил вас рассказать о том, что вы изменили, чтобы помочь OP, а не мне, и создать лучший ответ. –

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