Ну, я пытался сделать ролик, где пользователь выбирает 4-х сторонний - PullRequest
0 голосов
/ 20 ноября 2018

Итак, я пытался сделать ролик для игры в кости.Таким образом, пользователь выбирает, сколько у него сторон, а затем, сколько из этих кубиков нужно бросить, например, два 10-гранных кубиков.Затем система делает случайное число между одной и количеством сторон у выбранного кубика.

Итак, вот что я сделал:

<input type="numbers" name="dieAmount" value="Type Die Amount Here">
<select id="dieType">
<option value="0"> Select Die Type</option>  
<option value="20"> d20 </option>
<option value="12"> d12 </option>
<option value="10"> d10 </option>
<option value="8"> d8 </option>
<option value="6"> d6 </option>
<option value="4"> d4 </option>
<option value="2"> d2 </option>
</select> 
<p>

<input type="button" value="Roll" onclick="roll(dieType)" />
</form>


<script>
function roll(){
var min= 1; 
var max = document.getElementById("dieType").value;  
var random = Math.floor(Math.random() * (+max - +min)) + min
var factor = document.getElementById("dieAmount").value;
 var outcome = random * factor - 1
document.write("Number Rolled: " + outcome);  
 }
</script>

Я просто не могу понять, каксделать блоки выбора и ввода переменными.

1 Ответ

0 голосов
/ 20 ноября 2018

Вы пропустили только определение атрибута id для dieAmount (и вам там не нужен атрибут name) ... И вы не можете получить доступ к выбранному текущему значению просто по значению, но вы должныиспользуйте опцию элемента selectedIndex ...
См. мой код:

<input type="numbers" id="dieAmount" value="Type Die Amount Here">
<select id="dieType">
  <option value="0"> Select Die Type</option>  
  <option value="20"> d20 </option>
  <option value="12"> d12 </option>
  <option value="10"> d10 </option>
  <option value="8"> d8 </option>
  <option value="6"> d6 </option>
  <option value="4"> d4 </option>
  <option value="2"> d2 </option>
</select> 
<p>
<input type="button" value="Roll" onclick="roll(dieType)" />

<script>
function roll() {
  var factor = document.getElementById("dieAmount").value;
  var dieTypeElement = document.getElementById("dieType");
  var max = dieTypeElement.options[dieTypeElement.selectedIndex].value;
  var min = 1; 
  var random = Math.floor(Math.random() * (max - min)) + min;
  var outcome = random * factor - 1;
  document.write("Number Rolled: " + outcome);  
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...