JS 实现一个猜拳游戏

文章介绍了一个简单的剪刀石头布游戏的实现,包括HTML布局、CSS样式和JavaScript逻辑。玩家点击按钮选择出拳,JavaScript函数处理玩家选择并随机生成电脑出拳,然后判断胜负并显示结果。代码可以直接使用,并有优化空间。
摘要由CSDN通过智能技术生成

       今天继续给大家分享一个猜拳游戏,相信大家一个都玩过剪刀石头布这个游戏,游戏规则大家应该都不陌生,剪刀>布>石头.......那么下面简单说一下实现思路:

        1.首先需要获取到玩家出拳的种类。

        2.随机生成电脑出拳的种类。

        3.两者进行对比,判断胜负。

下面是html及css代码:

//css部分
    #box{
        width: 400px;
        height: 200px;
        border: 1px solid black;
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        margin: auto;
    }
    .res{
        margin-bottom: 15px;
    }
//html部分
    <div id="box">
        <div>
            <button  onclick="scissors()">剪刀</button>
            <button  onclick="rock()">石头</button>
            <button  onclick="cloth()">布</button>
        </div>
        <div class="res">
            <span>你出的:</span><span class="me"></span>
        </div>
        <div class="res">
            <span>电脑出的:</span><span class="robot"></span>
        </div>
        <div class="res">
            <span>结果:</span><span class="result"></span>
        </div>
    </div>

   界面布局效果如图:

  

 下面是script部分代码:

// JavaScript部分

    let me = document.querySelector('.me')
    let robbit = document.querySelector('.robot')
    let result = document.querySelector('.result')
    let arr = ['剪刀', '石头', '布']

    //生成随机数,取值范围是数组长度,即 0-2
    function randomNum() {
        let i = Math.floor(Math.random()*arr.length)
        return i 
    }
    
    //下面三个为玩家出剪刀、布或者石头的方法
    function scissors() {
       me.innerHTML='<span>剪刀</span>'
       let num = randomNum()
       let res = arr[num]
       robbit.innerHTML = `<span>${res}</span>`
       if(res === '剪刀') {
         result.innerHTML='<span>平局</span>'
       }
       else if (res === '石头') {
        result.innerHTML='<span>输</span>'
       }
       else {
        result.innerHTML='<span>胜</span>'
       }
    }

    function rock() {
        me.innerHTML='<span>石头</span>'
        let num = randomNum()
        let res = arr[num]
        robbit.innerHTML = `<span>${res}</span>`
        if(res === '剪刀') {
            result.innerHTML='<span>胜</span>'
        }
        else if (res === '石头') {
            result.innerHTML='<span>平局</span>'
        }
        else {
            result.innerHTML='<span>输</span>'
        }
    }

    function cloth() {
        me.innerHTML='<span>布</span>'
        let num = randomNum()
        let res = arr[num]
        robbit.innerHTML = `<span>${res}</span>`
        if(res === '剪刀') {
            result.innerHTML='<span>输</span>'
        }
        else if (res === '石头') {
            result.innerHTML='<span>胜</span>'
        }
        else {
            result.innerHTML='<span>平局</span>'
        }
    }

那么来看一下最终完成效果:

 

        上述代码直接cv就可以使用了,想要优化的话可以考虑放在三个玩家出拳方法上面。以上就是本篇文章内容了,希望能对你学习JS起到帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值