Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2014, 19:04
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Камень, ножницы, бумага.
Всем привет. Практикую js на кодакадеми. Вчера писал скрипт и он работает нормально.
<script>
    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 choice1 = userChoice;
    var choice2 = 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 === "paper") {
                return "scissors wins";
            }
            else {
                return "rock wins";
            }
        }
    }
  console.log(compare(choice1, choice2));
  </script>


Сегодня решил по памяти написать. Но скрипт выдает undefined. Сравнил и не могу понять где ошибка.
<script>
    var question = prompt("Камень, ножницы или бумага?");

    var rndnubmer = Math.random();

    if (rndnubmer < 0.34) {
      rndnubmer = "Камень";
    }
    else if (rndnubmer <= 0.67) {
      rndnubmer = "Ножницы";
    }
    else {
      rndnubmer = "Бумага";
    }
    console.log("Компьютер: " + rndnubmer);

    var choice1 = question;
    var choice2 = rndnubmer;

    var complete = function(choice1, choice2) {
      if (choice1 === choice2) {
          return "Никто не победил!";
      }

      else if (choice1 === "Камень") {
        if (choice2 === "Ножницы") {
          return "Камень победил!"
        }
        else {
          return "Бумага победила!";
        }
      }

      else if (choice1 === "Бумага") {
        if (choice2 === "Камень") {
          return "Бумага победила!"
        }
        else {
          return "Ножницы победили!";
        }
      }

      else if (choice1 === "Ножницы") {
        if (choice2 === "Бумага") {
          return "Ножницы победили!"
        }
        else {
          return "Камень победил!";
        }
      }

    }
    console.log(complete(choice1, choice2));

  </script>
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2014, 19:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

hhh,
вы наверно что-то забыли поставить выше вашего скрипта
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2014, 19:56
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Сообщение от рони
наверно что-то забыли поставить выше вашего скрипта
не совсем понял, про что вы. выше скрипта открывается body
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2014, 20:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от hhh
выше скрипта открывается body
ещё выше
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2014, 20:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

hhh,
запустите ваш скрипт здесь и убедитесь что он работает - подумайте почему здесь работает а у вас нет
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2014, 20:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

скорее всего просто разные кодировки, так как вы сравниваете русские символы, возможно страница у вас в win-1251 а вводите utf-8 или наоборот, в итоге ни одно условие в функции complete не проходит, о того и возвращается undefined
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2014, 20:25
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Сообщение от devote
скорее всего просто разные кодировки, так как вы сравниваете русские символы, возможно страница у вас в win-1251 а вводите utf-8 или наоборот, в итоге ни одно условие в функции complete не проходит, о того и возвращается undefined
Страница в кодировке utf-8 без bom. Пересохранил в 1251 и ничего.

Сообщение от рони
запустите ваш скрипт здесь и убедитесь что он работает - подумайте почему здесь работает а у вас нет
не знаю как тут запускать. но на http://jsfiddle.net/7kb5wfmw/ тоже не пашет.
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2014, 20:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

hhh,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
    var question = prompt("Камень, ножницы или бумага?", "Камень Ножницы Бумага");

    var rndnubmer = Math.random();

    if (rndnubmer < 0.34) {
      rndnubmer = "Камень";
    }
    else if (rndnubmer <= 0.67) {
      rndnubmer = "Ножницы";
    }
    else {
      rndnubmer = "Бумага";
    }
    console.log("Компьютер: " + rndnubmer);

    var choice1 = question;
    var choice2 = rndnubmer;

    var complete = function(choice1, choice2) {
      if (choice1 === choice2) {
          return "Никто не победил!";
      }

      else if (choice1 === "Камень") {
        if (choice2 === "Ножницы") {
          return "Камень победил!"
        }
        else {
          return "Бумага победила!";
        }
      }

      else if (choice1 === "Бумага") {
        if (choice2 === "Камень") {
          return "Бумага победила!"
        }
        else {
          return "Ножницы победили!";
        }
      }

      else if (choice1 === "Ножницы") {
        if (choice2 === "Бумага") {
          return "Ножницы победили!"
        }
        else {
          return "Камень победил!";
        }
      }

    }
    alert(complete(choice1, choice2));

  </script>

</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 10.11.2014, 20:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от hhh
тоже не пашет.
работает
Ответить с цитированием
  #10 (permalink)  
Старый 10.11.2014, 20:42
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Спасибо, додумался на какую мелочь время тратил
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание функции realpoc Ваши сайты и скрипты 1 07.08.2013 23:36