Мой код игры с монетами, но, похоже, не могу понять эту часть

#javascript #html

#javascript #HTML

Вопрос:

 <!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<script type="text/javascript"> 
    alert("Welcome to the coin flip game ! Enter either heads or tails..");

    var person = prompt("Please enter either heads or tails");

    if (person == heads) {
        alert()
    }

    var random = Math.floor(Math.random() * 2)   1;


    if (random == 1) {
        alert("The computer generated heads!");
    } else {
        alert("The computer generated tails!");
    }
    
    var lost = 
    alert("You've lost");
    
    var won = 
    alert("You've won!");

    if (person != random) {
        document.getElementById("demo").innerHTML =
        (lost);
    } else {
        (won);
    }
    



</script>





</body>
</html>
 

Мой текущий код ^^

Цель: познакомить с игрой и объяснить, как играть. Получать входные данные от пользователя, в частности, их предположение о том, будет ли монета орлом или решкой. Сгенерируйте случайное число между 1 или 2, а затем сопоставьте его с орлом или решкой. (т.е. 1 = орел, 2 = решка) Проверьте, соответствует ли их предположение случайному числу. Если они угадали правильно, скажите им, что они выиграли. Если предположение неверно, скажите им, что они проиграли.

Кажется, я не могу понять, как назначить поворот 1 и 2 генератора случайных чисел орлу или решке. Это моя большая проблема.

Это html javascript.

Комментарии:

1. Вы никогда не сравниваете предположение пользователя со случайным числом.

2. В чем смысл if (person == heads) ? Вам нужно сравнить со строкой, у вас нет переменной с именем heads .

Ответ №1:

В коде есть пара незначительных логических проблем.

  1. Когда игрок вводит орел или решку, это может быть переведено в 1 или 2 в коде для упрощения сравнения со случайно сгенерированным значением.
  2. Если игрок вводит ненужное значение, это должно быть обработано.
  3. Я не уверен, что понял, что делал код для отображения результата, поэтому просто изменил его, чтобы показывать предупреждение с выигрышем или проигрышем.

Вот рабочий фрагмент, показывающий это в действии:

 alert("Welcome to the coin flip game ! Enter either heads or tails..");

var person = prompt("Please enter either heads or tails");

var personChoice = 0;
if (person == 'heads') {
    personChoice = 1;
} else if (person == 'tails') {
    personChoice = 2;
} else {
    alert('The player entered rubbish!');
}

if (personChoice > 0) {
  var random = Math.floor(Math.random() * 2)   1;

  if (random == 1) {
    alert("The computer generated heads!");
  } else {
    alert("The computer generated tails!");
  }

  var lost = "You've lost";
  var won = "You've won";

  if (personChoice != random) {
   alert(lost); //document.getElementById("demo").innerHTML = (lost);
  } else {
    alert(won);
  //(won);
  }
} 

Ответ №2:

Попробуйте, как показано ниже, предполагая, что если пользователь ввел ключ, отличный от heads рассматриваемого как tails , обратите внимание, что person == heads, необходимо сравнить со значением вместо необъявленной переменной. Также многие опечатки, такие как

 document.getElementById("demo").innerHTML =
        (lost);

 (won);
 
 alert("Welcome to the coin flip game ! Enter either heads or tails..");

var person = prompt("Please enter either heads or tails");


var userChoice = person === "heads" ? 1 : 2

var random = Math.floor(Math.random() * 2)   1;


if (random == 1) {
  alert("The computer generated heads!");
} else {
  alert("The computer generated tails!");
}


if (userChoice != random) {
  alert("You've lost")
} else {
  alert("You've won!")
} 
 <div id="demo" />