Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在用户在javascript中更正变量后禁用该变量_Javascript - Fatal编程技术网

如何在用户在javascript中更正变量后禁用该变量

如何在用户在javascript中更正变量后禁用该变量,javascript,Javascript,因此,我正在制作一个小游戏,在这个游戏中,用户必须猜测正确的网格,当你连接它时,它会显示“点击”。3次命中后,你击沉了“飞船”。这并没有什么特别之处,但我想知道的是:当用户拥有正确的变量时,如何禁用它(或使其无效)?例如:var x=5和5中的用户类型,因此这应该是正确的。但如果你再按两次5(命中率将为3),它将使我的船沉没,而你不会猜到其他两个网格。所以我的问题是:如何禁用变量 let isSunk = false; let guess; let location1 = Math.floor(

因此,我正在制作一个小游戏,在这个游戏中,用户必须猜测正确的网格,当你连接它时,它会显示“点击”。3次命中后,你击沉了“飞船”。这并没有什么特别之处,但我想知道的是:当用户拥有正确的变量时,如何禁用它(或使其无效)?例如:
var x=5和5中的用户类型,因此这应该是正确的。但如果你再按两次5(命中率将为3),它将使我的船沉没,而你不会猜到其他两个网格。所以我的问题是:如何
禁用变量

let isSunk = false;
let guess;
let location1 = Math.floor(Math.random() * 10);
let location2 = Math.floor(Math.random() * 10);
let location3 = Math.floor(Math.random() * 10);
let guesses = 0;
let hit = 0;



while (isSunk == false) {
    guess = prompt("Try to sink me!");

    guesses += 1;

    if (guess == location1 || guess == location2 || guess == location3) {
        hit += 1;
        window.alert("HIT!");
    } else {
        window.alert("MISS!");
    }

    if (hit == 3) {
        window.alert("you sunk my ship!");
        isSunk = true;
    }
}

不要在顶部声明您的位置,而是在while循环中声明它们,这样每当您的循环执行时,它都会给您新的数字,所以用户无法猜测

考虑修改你解决问题的方法。不允许用户输入相同的值

让isSunk=false;
让我们猜猜看;
设location1=Math.floor(Math.random()*10);
设location2=Math.floor(Math.random()*10);
设location3=Math.floor(Math.random()*10);
让猜测=0;
让hit=0;
//添加过去猜测的数组
让用户猜测=[];
while(isSunk==false){
猜=提示(“试着让我沉下去!”);
猜测+=1;
//检查过去猜测的数组
if(userGuesses.indexOf(guess)>-1){
警告(“你已经试过了!”);
}else if(猜测==位置1 | |猜测==位置2 | |猜测==位置3){
命中率+=1;
窗口。警报(“命中!”);
}否则{
窗口。警报(“小姐!”);
}
如果(命中==3){
注意(“你把我的船弄沉了!”);
isSunk=true;
}
//将猜测添加到过去猜测的数组中
用户猜测。推(猜测);

}
如果你想做得更难,只需使用一个位置,顺便说一句,wlecome。你如何确保不重复选取同一个随机数?我不@MarkMeyer。我正在练习javascript(因此这是一个非常基本的示例,很可能是我找不到的简单解决方案)为此,您必须创建一个新的变量名pveLoc,并将旧的随机数与新的随机数进行比较,如果它们相同,只需再次执行相同的过程,如果不相同,则传递它。您需要将位置的状态与位置保持一致,以便可以停止再次检查。位置应该是一个集合或对象,它跟踪每个位置的状态。也许它甚至有一些方法可以做一些事情,比如检查是否命中或未命中,以及整个位置是否沉没。状态维护的一部分是忽略对同一位置坐标的多次点击。