js实现石头剪刀布游戏


Posted in Javascript onOctober 11, 2020

前言

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

一、实现效果

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'进行显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 Javascript
JS跨域问题详解
Nov 25 Javascript
node.js中的querystring.parse方法使用说明
Dec 10 Javascript
js计算德州扑克牌面值的方法
Mar 04 Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 Javascript
详解从新建vue项目到引入组件Element的方法
Aug 29 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
Oct 18 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
解决Antd Table组件表头不对齐的问题
Oct 27 Javascript
js+h5 canvas实现图片验证码
Oct 11 #Javascript
vue2和vue3的v-if与v-for优先级对比学习
Oct 10 #Javascript
如何手写简易的 Vue Router
Oct 10 #Javascript
如何手写一个简易的 Vuex
Oct 10 #Javascript
echarts实现晶体球面投影的实例教程
Oct 10 #Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 #Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 #Javascript
You might like
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
处理php自动反斜杠的函数代码
2010/01/05 PHP
PHP 文件系统详解
2012/09/13 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
JQuery live函数
2010/12/24 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
js中let和var定义变量的区别
2018/02/08 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
python 从远程服务器下载东西的代码
2013/02/10 Python
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
跟老齐学Python之print详解
2014/09/28 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
办公室文员岗位职责范本
2014/06/12 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
副总经理岗位职责
2015/02/02 职场文书
计算机专业自荐信
2015/03/05 职场文书
幼儿园开学通知
2015/04/24 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers