Javascript 一个简单的JS代码,我一遍又一遍地收到相同的结果,我想,我可能犯了一个逻辑错误,

Javascript 一个简单的JS代码,我一遍又一遍地收到相同的结果,我想,我可能犯了一个逻辑错误,,javascript,Javascript,我自己在学习JS,想自己解决一个挑战,但我认为我的代码逻辑是错误的,因为我不断地得到相同的结果/回报,即“有一个平局!” 关于任务: 可能的结果是: 熊伤人。 人类解除了枪的武装。 枪杀熊。 如果打成平局,那么比赛以平局结束 挑战:我们的代码将把游戏分成四个部分: 获取用户的选择。 得到计算机的选择。 比较这两个选项并确定一个获胜者。 启动程序并显示结果 //Getting the user's choice. let options = ['bear','human','gun']; fu

我自己在学习JS,想自己解决一个挑战,但我认为我的代码逻辑是错误的,因为我不断地得到相同的结果/回报,即“有一个平局!”

关于任务:

可能的结果是:

熊伤人。 人类解除了枪的武装。 枪杀熊。 如果打成平局,那么比赛以平局结束

挑战:我们的代码将把游戏分成四个部分:

获取用户的选择。 得到计算机的选择。 比较这两个选项并确定一个获胜者。 启动程序并显示结果

//Getting the user's choice.

let options = ['bear','human','gun'];

function getUsersChoice (){
    return usersChoice = options[Math.floor(Math.random()*3)];
}
getUsersChoice();

// Getting computer's choice.
function getComputersChoice (){
    return computersChoice = options[Math.floor(Math.random()*3)];
}
getComputersChoice();

//Compare the two choices and determine a winner.
function determineWinner (usersChoice , computersChoice){
        if(usersChoice ===  computersChoice){
        return 'There\'s a tie!';
        }
        if( usersChoice === 'bear'){
            if(computersChoice === human){
            return 'bear mauls human.';
            }else {
            return 'gun shoots bear.';
            }
        }
        if (usersChoice === 'human'){
            if(computersChoice === 'gun'){
            return 'human disarms gun.';
            }else {
            return ' bear mauls human.';
            }
        }
        if (usersChoice === 'gun'){
            if(computersChoice === 'bear'){
            return 'gun shoots bear.';
            }else {
            return 'human disarms gun.';
            }


        }




}
determineWinner();
试试这个:

    let options = ['bear','human','gun'];

function getUsersChoice (){
    return options[Math.floor(Math.random()*3)];
}
var userChoice = getUsersChoice();

// Getting computer's choice.
function getComputersChoice (){
    return options[Math.floor(Math.random()*3)];
}
var computerChoice = getComputersChoice();

//Compare the two choices and determine a winner.
function determineWinner (usersChoice , computersChoice){
        if(usersChoice ===  computersChoice){
        return 'There\'s a tie!';
        }
        if( usersChoice === 'bear'){
            if(computersChoice === human){
            return 'bear mauls human.';
            }else {
            return 'gun shoots bear.';
            }
        }
        if (usersChoice === 'human'){
            if(computersChoice === 'gun'){
            return 'human disarms gun.';
            }else {
            return ' bear mauls human.';
            }
        }
        if (usersChoice === 'gun'){
            if(computersChoice === 'bear'){
            return 'gun shoots bear.';
            }else {
            return 'human disarms gun.';
            }


        }




}
determineWinner();

你需要交出选择

函数getUsersChoice(){ 返回选项[Math.floor(Math.random()*3)]; } 函数getComputersChoice(){ 返回选项[Math.floor(Math.random()*3)]; } 函数确定接口(用户接口、计算机接口){ 如果(usersChoice===computersChoice)返回“打成平局!”; 如果(usersChoice==='bear'){ if(computersChoice==='human')返回'bear-mauls-human'; 返回“枪杀熊”; } 如果(usersChoice==='human'){ 如果(computersChoice==='gun')返回'human disarmed gun'; 返回“熊咬人”; } 如果(usersChoice==='gun'){ 如果(computersChoice====“熊”)返回“枪杀熊”; 返回“人类解除武器”; } } 让选项=[‘熊’、‘人’、‘枪’];
log(determineWinner(getUsersChoice(),getComputersChoice())任务如下:熊人枪就像石头剪刀一样。每个玩家选择熊、人或枪。将对物品进行比较,选择更强大物品的玩家获胜。可能的结果是:=>bear mauls human.=>人类解除枪的武装。=>枪杀熊。=>如果打成平局,那么比赛以平局结束。挑战:我们的代码将把游戏分成四部分:=>获得用户的选择。=>获取计算机的选择。=>比较两个选项并确定一个获胜者。=>启动程序并显示结果。您正在调用
getUsersChoice()
getComputersChoice()
,但您没有将结果存储在任何地方。然后,当您调用
determinateWinner()
时,您不会向它传递任何值。将来真正有帮助的一件事是使用chrome开发者工具和javascript调试器。如果你调试了你的代码,我想你会发现你的代码有明显的问题。当事情不明显时,它就更重要了。你还应该利用
console.log()
你真的需要解释你的答案。事实上你还没有声明你在determineWinner函数中使用的变量我很高兴getUsersChoice()被实现为随机为“用户”生成选择的计算机:)它可以更改为任何其他选择的输入。当然,这不是批评,只是对原始代码的观察。