javascript - 简单的猜拳游戏,请问错误在哪?

查看:96
本文介绍了javascript - 简单的猜拳游戏,请问错误在哪?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var userchoice = prompt("please choose Rock Paper or Scissor!");
var pcchoice = Math.random();
switch(pcchoice) {
    case (pcchoice <= 0.33):
        pcchoice = 'rock';
        break;
    case (pcchoice > 0.33 && pcchoice <= 0.66):
        pcchoice = 'paper';
        break;
    default:
        pcchoice = 'scissor';
    }
function rockGame(userchoice) {
    console.log(userchoice);
    console.log(pcchoice);
    if(userchoice === pcchoice) {
        console.log('Tie!');
    } else if(userchoice === 'rock') {
        if(pcchoice === 'scissor') {
            console.log('You win!');
        } else {
            console.log('PC win!');
        }
    } else if(userchoice === 'scissor') {
        if(pcchoice === 'paper') {
            console.log('You win!');
        } else {
            console.log('PC win!');
        }    
    } else if(userchoice === 'paper'){
        if(pcchoice === 'rock') {
            console.log('You win!');
        } else {
            console.log('PC win!');
        }
    } else {
        console.log('输入错误!');    
    }
}

rockGame();

解决方案

function main() {
var userchoice = prompt("please choose Rock Paper or Scissor!");
var pcchoice = Math.random();
if (pcchoice <= 0.33) {
    pcchoice = 'rock';
} else if (pcchoice > 0.33 && pcchoice <= 0.66) {
    pcchoice = 'paper';
} else {
    pcchoice = 'scissor';
}
rockGame(userchoice, pcchoice);
}

function rockGame(userchoice, pcchoice) {

console.log(userchoice);
console.log(pcchoice);
if(userchoice === pcchoice) {
    console.log('Tie!');
} else if(userchoice === 'rock') {
    if(pcchoice === 'scissor') {
        console.log('You win!');
    } else {
        console.log('PC win!');
    }
} else if(userchoice === 'scissor') {
    if(pcchoice === 'paper') {
        console.log('You win!');
    } else {
        console.log('PC win!');
    }    
} else if(userchoice === 'paper'){
    if(pcchoice === 'rock') {
        console.log('You win!');
    } else {
        console.log('PC win!');
    }
} else {
    console.log('输入错误!');    
}
}

main();

试试~


号外:

查MDN时意外发现switch有个hacky写法居然是支持条件选择的……参见这里的多条件case方法里的方法二,大概就是得写成:

var pcchoice = Math.random();
switch (true) {
    case pcchoice <= 0.33:
        pcchoice = 'rock';
        break;
    case pcchoice > 0.33 && pcchoice <= 0.66:
        pcchoice = 'paper';
        break;
    default:
        pcchoice = 'scissor';
}

这样~~
至于具体怎么写,按习惯就好咯。

这篇关于javascript - 简单的猜拳游戏,请问错误在哪?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆