我是JavaScript新手。 我已经通过学习JavaScript(o'reilly)工作我的工作,但我只是想做我的第一个JavaScript。初学者JavaScript
我认为最好在我感兴趣的事情上工作,事实证明它相当复杂。
我基本上是试图模拟(最终)在太空绿巨人(Boardgame)中一个Genestealer在他和太空海洋之间有12个步骤的情况。 第一步它的6个骰子杀死Genestealer,之后5或6杀死。 如果骰子上的数字相同,则枪支卡塞。
我只是想模仿这里的第一步。我认为问题是与jamCheck。
基本上这个输出总是正确的,即使我改变它为!=它总是显示枪塞。
我想知道是否需要将变量传递到另一个局部变量,但它适用于killCheck而无需执行此操作。 (我试过了,虽然我可能做错了)
这是完全可能的,这里有一些非常简单的错误。
我希望你能帮忙,或者指点我正确的方向。
非常感谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>SH</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
//<![CDATA[
function diceRoll1() {
iValue = Math.random(); // random number between 0 and 1
iValue *= 6; // multiply by 6 to move the decimal
iValue = Math.floor(iValue)+1; // round to nearest integer. +1 to 1-6.
var roll1 = iValue;
document.getElementById('result1').innerHTML = 'Dice roll 1 : ' + roll1;
killCheck (roll1);
jamCheck (roll1);
return;
}
function diceRoll2() {
iValue = Math.random(); // random number between 0 and 1
iValue *= 6; // multiply by 6 to move the decimal
iValue = Math.floor(iValue)+1; // round to nearest integer. +1 to 1-6.
var roll2 = iValue;
document.getElementById('result2').innerHTML = 'Dice roll 2 : ' + roll2;
killCheck (roll2);
jamCheck (roll2);
return;
}
function killCheck(roll1,roll2){
if (roll1==6 || roll2==6)
{
document.getElementById('kill').innerHTML = 'GS KILLED';
}
return;
}
function jamCheck(roll1,roll2){
if (roll1 == roll2)
{
document.getElementById('jam').innerHTML = 'GUN JAMMED';
}
return;
}
//]]>
</script>
</head>
<body onload="diceRoll1();diceRoll2();killCheck();jamCheck();">
<p id="result1">Dice roll 1</p>
<p id="result2">Dice roll 2</p>
<p id="kill">GS ALIVE</p>
<p id="jam">GUN FINE</p>
</body>
</html>
编辑:我最终与很多来自朋友的帮助了那里;这里是当前的代码:
...
function getDiceValue() {
var diceValue = Math.random();
diceValue *= 6;
diceValue = Math.floor(diceValue) + 1;
return diceValue;
}
function killCheck(roll1, roll2) {
if (roll1 === 6 || roll2 === 6) {
document.getElementById('kill').innerHTML = 'GS KILLED';
}
return;
}
function jamCheck(roll1, roll2){
if (roll1 === roll2) {
document.getElementById('jam').innerHTML = 'GUN JAMMED';
}
return;
}
function rollDice() {
var roll1 = getDiceValue(),
roll2 = getDiceValue();
document.getElementById('result1').innerHTML = 'Dice roll 1 : ' + roll1;
document.getElementById('result2').innerHTML = 'Dice roll 2 : ' + roll2;
killCheck (roll1, roll2);
jamCheck (roll1, roll2);
}
//]]>
...
<body onload="rollDice();">
只是一个不相关的注释,不要在函数末尾使用空返回(它们将不会返回任何内容)。你为什么要使用空回归的唯一原因是停止函数(类似于循环中断) – ajax333221
如果你想清理一些东西,这里有一个方便的模具卷功能:function rollDie(min,max ){ return Math.floor(Math.random()* max)+ min; } 6面例子:rollDie(1,6); – pdizz
@ ajax333221我读过它会将它返回给killCheck和JamCheck,是否根本不需要? – snoopyj