想用javascript写一个网页猜拳小游戏,大概是这样:网页里有一个按钮,点击按钮之后开始猜拳:输入1、2、3代表剪刀石头布,跟计算机猜拳,然后输出结果,输出结果后再显示一个按钮,点击可以再玩。这样写对不对呢:
<script language="JavaScript">
function play()
{
do {
var user=parseInt(prompt("请输入“1、2、3”中的任意一个数字,1代表剪刀,2代表石头,3代表布","1代表剪刀,2代表石头,3代表布"));
if(user!=1&&user!=2&&user!=3)
alert("请输入“1、2、3”中的任意一个数字");
}while(user!=1&&user!=2&&user!=3);
var rand=parseInt((Math.random()*10)%3)+1;
var suser=change(user);
var srand=change(rand);
document.write("<html><head><title>猜拳结果</title></head></html>");
if(rand==user) 
document.write("您的出是:"+suser+";计算机出的是"+srand+"。平局");
else if(user+1==rand||user-2==rand)
document.write("您的出是:"+suser+";计算机出的是"+srand+"。计算机胜");
else
document.write("您的出是:"+suser+";计算机出的是"+srand+"。您胜");
document.write("<form><input type='button' value='再来!' onclick='play()' /></form>")
}
function change(n)
{
switch(n) {
case 1:return "剪刀";
case 2:return "石头";
case 3:return "布";
}
}
</script>麻烦各位帮忙解决!

解决方案 »

  1.   

    只是两个值比较,然后有个1和3的区分就是了
    <script type="text/javascript">
    function play(n){
        if(typeof n!='number' || (typeof n=='number' && (n<1 || n>3))){return}
        var a=['剪刀','石头','布'],b=Math.floor(Math.random()*3)+1,c=n>b,d=Math.max(n,b),e=Math.min(n,b),f=d-e,g=c?'你':'电脑',h;
        switch(f){
            case 0:
                h='双方平手\n你:'+a[n-1]+'\n电脑:'+a[b-1];
                break;
            case 1:
                h=''+g+'赢了\n你:'+a[n-1]+'\n电脑:'+a[b-1];
                break;
            case 2:
                h=''+g+'输了\n你:'+a[n-1]+'\n电脑:'+a[b-1];
                break;
        };
        h=h.replace('电脑赢了','你输了').replace('电脑输了','你赢了');//转换称谓
        alert(h);
    };
    function iPlay(){
        var user=window.prompt("请输入“1、2、3”中的任意一个数字,1代表剪刀,2代表石头,3代表布","1代表剪刀,2代表石头,3代表布");
        play(parseInt(user));
    }
    </script>
    <input type="button" value="玩游戏" onclick="iPlay()" />