js 实现石头剪刀布游戏

前言

用户选择出石头剪刀布,电脑系统随机生成石头剪刀布,然后判断结果并显示给用户

 

一、实现效果

二、使用步骤

1.HTML和css

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>石头剪刀布</title>
    <style>
        #bigbox{
            width: 600px;
            height: 600px;
            background: slateblue;
            margin: 0 auto;
        }
        #bigbox>h1{
            width: 100%;
            text-align: center;
            color: #ffffff;
        }
        .box1{
            height: 200px;
            
        
        }
        .box2{
            height: 220px;
        }
        .box1 img{
            float: left;
            margin: 25px;
        }
        .box2 img{
            float: left;
            margin:20px 63px;
            width: 150px;
            height: 150px;

        }
        .box2 h1{
            

            display: block;
            color: #000;
            float: left;
            line-height: 150px;

        }
        img{
            width: 150px;
            height: 150px;
        }
        p{
            text-align: center;
            color: red;
            font-size: 20px;
            font-weight: bold;
        }
        .text{
            height: 20px;
        }
        .text span{
            font-size: 20px;
            color: #ffffff;
            margin: 0 100px;
            line-height: 20px;
        }
    </style>
</head>
<body>
    <div id='bigbox'>
        <h1>请选择</h1>
        <div class="box1">
            <img src="../img/shitou.png" alt="">
            <img src="../img/jiandao.png" alt="">
            <img src="../img/bu.png" alt="">
        </div>
        <div class="text">
            <span>您选择了</span>
            <span>系统选择了</span>
        </div>
        <div class="box2">
            <img src="../img/undefined.png" alt="">
            <h1>pk</h1>
            <img src="../img/undefined.png" alt="">
        </div>

        <p>结果显示中。。。</p>
        
    </div>
</body>

2.JavaScript

     <script>
    let imgs=document.getElementsByTagName('img')
    // console.log(imgs.length)
    for(let i=0;i<3;i++){
        imgs[i].onclick=function(){
            game(this,i)
            
        }
    }
 
    function game(src,i){
        // console.log(i)
        //用户
        let str=src.src;
        let user=document.getElementsByTagName('img')[3]
        user.src=str
        
        //系统
        setTimeout(function (){
            let user=document.getElementsByTagName('img')[4]
            let imgSrc=['../img/shitou.png','../img/jiandao.png','../img/bu.png']
           let num = Math.floor(Math.random() * imgSrc.length)
            console.log(num)
            user.src=imgSrc[num]
            i=i*1
              //结果
        let rs=document.getElementsByTagName('p')[0]
        if(i==0&&num==1 || i==1&&num==2
            || i==2&&num==0){
                rs.innerHTML="恭喜你获得胜利!"
            }else if(i==num){
                rs.innerHTML="平局,请再来一次吧"
            }else{
                rs.innerHTML="不好意思,游戏失败"
                
            }
        },200)
      
       
    }
    

    
</script>

 


总结

利用数组,将石头剪刀布src地址保存,利用随机数将生成0-2的任意数字,电脑延时0.2秒生成。用户利用for循环将照片绑定onclick(),点击图片,用户选择图片修改为当前图片。创建参数函数,传入数组标,以及this对象。通过this.src改变用户选择的显示图片,将数组下标 与随机数进行条件判断。0代表石头,1代表剪刀,2代表布。生成结果操作dom'进行显示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于原生js石头剪刀布游戏的代码实现: HTML代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>石头剪刀布游戏</title> <style> #result { font-size: 24px; margin-top: 20px; } </style> </head> <body> <h1>石头剪刀布游戏</h1> <p>请选择您的出拳:</p> <button id="rock">石头</button> <button id="paper">剪刀</button> <button id="scissors">布</button> <div id="result"></div> <script src="./game.js"></script> </body> </html> ``` JS代码: ```javascript // 获取按钮元素 var rock = document.getElementById('rock'); var paper = document.getElementById('paper'); var scissors = document.getElementById('scissors'); var result = document.getElementById('result'); // 定义游戏规则 var rule = { 'rock': 'scissors', 'paper': 'rock', 'scissors': 'paper' }; // 绑定按钮点击事件 rock.onclick = function() { play('rock'); } paper.onclick = function() { play('paper'); } scissors.onclick = function() { play('scissors'); } // 定义play函数,进行游戏逻辑的处理 function play(player) { // 随机生成电脑出的拳 var computer = Math.random() < 0.33 ? 'rock' : (Math.random() < 0.67 ? 'paper' : 'scissors'); // 判断输赢 if (player === computer) { result.innerHTML = '平局!'; } else if (rule[player] === computer) { result.innerHTML = '您获胜了!'; } else { result.innerHTML = '电脑获胜了!'; } } ``` 这个游戏的基本逻辑是,用户点击按钮选择出拳,然后电脑随机生成出拳,比较两者之间的关系,输出胜负结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值