<!DOCTYPE html>
<html>
<head>
</head>
<body>
<hr>
<div>
<div id="myPos">
</div>
</div>
<hr>
<!--Storing my array -->
<div id="myArray">
</div>
<br>
<br/>
<hr>
<script type="text/javascript">
var pos=-1;
function randomSort(a,b){
return(parseInt(Math.random()*10)%2);
}
function roll(){
var myGun = new Array();
myGun[0]="First Slot";
myGun[1]="Second Slot";
myGun[2]="Third Slot";
myGun[3]="Fourth Slot";
myGun[4]="Fifth Slot";
myGun[5]="Sixth Slot";
myGun.sort(randomSort).toString();
document.getElementById("myArray").innerHTML="";
for(i=0;i<myGun.length;i++)
{
document.getElementById("myArray").innerHTML+=myGun[i]+ "<br>";
}
document.getElementById("myPos").innerHTML= "Position:"+ (pos=-1);
}
function shot(){
if(pos<myGun.length)
{
document.getElementById("myPos").innerHTML="Position:"+ (pos=pos+1) +"<br/>";
}
else
{
alert("you loose");
}
return pos;
}
</script>
<footer>
<button id="btnRoll" onclick="roll()">Roll</button>
<button id="btnShot" onclick="shot()">Shot</button>
</footer>
</body>
</html>
答案 0 :(得分:0)
试试这个:
function shot(){
if(pos>=myGun.length)
{
pos = pos +1;
document.getElementById("myPos").innerHTML="Position:"+ pos +"<br/>";
}
else
{
alert("you loose");
}
}
答案 1 :(得分:0)
您需要将“&gt; =”替换为“&lt;”:
if( pos < myGun.length ) { ...
那就是说,你也在使用不推荐使用的全局变量。
编写此函数的更好方法是:
function shot( pos, myGun ) {
if ( pos < myGun.length ) {
document.getElementById( "myPos" ).innerHTML="Position:"+ ++pos + "<br/>";
} else {
alert( "you loose" );
}
return pos;
}
请注意,该函数在增量后返回更新后的位置。
答案 2 :(得分:0)
试试这个,它对我有用,但我输了。 :)我已修复了几个minior错误并对HTML进行了一些调整,其中没有问题。这里的问题是数组 - 它是第二个函数的局部变量,但不是第三个函数 - 我已将它变为golobal变量为pos,但是将其重置为 roll (您的原始定义看起来应该是在那里重置。)
第一个函数不需要a和b参数,因为它不使用它们。
我已将所有内容移动到页面标记中,但您也可以将其内容编写在单独的.js
文件中以便于阅读:
<script type="text/javascript" src="path to file"></script>
。
告诉我这是否适合你。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var pos = -1;
var myGun = new Array;
function randomSort()
{
return parseInt(Math.random() * 10) % 2;
}
function roll()
{
myGun = [];
myGun[0]="First Slot";
myGun[1]="Second Slot";
myGun[2]="Third Slot";
myGun[3]="Fourth Slot";
myGun[4]="Fifth Slot";
myGun[5]="Sixth Slot";
myGun.sort(randomSort).toString();
document.getElementById("myArray").innerHTML = '';
for(i=0; i < myGun.length; i++)
document.getElementById("myArray").innerHTML += myGun[i] + "<br />";
document.getElementById("myPos").innerHTML = "Position:" + (--pos);
}
function shot()
{
if(pos < myGun.length)
document.getElementById("myPos").innerHTML = "Position:" + (pos++) + "<br />";
else
alert("you loose");
return pos;
}
</script>
</head>
<body>
<hr />
<div>
<div id="myPos"></div>
</div>
<hr />
<!--Storing my array -->
<div id="myArray">
</div>
<br />
<br />
<footer>
<input type="button" id="btnRoll" onclick="roll()" value="Roll" />
<input type="button" id="btnShot" onclick="shot()" value="Shot" />
</footer>
</body>
</html>