我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何基于Vue制作一个猜拳小游戏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何基于Vue制作一个猜拳小游戏

前言:

在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧。

描述:
石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。
游戏规则:石头打剪刀,布包石头,剪刀剪布。
现在,需要你写一个程序来判断石头剪子布游戏的结果。

项目效果展示:

对应素材:

代码实现思路:

准备对应的素材用于界面效果展示。

在盒子中上面设置两个 img 标签,class="lazy" data-src 用动态展示,左侧代表玩家,右侧代表电脑。

在JS中设置定时器,每隔0.1秒切换背景图,达到一个闪烁的效果。

给代表玩家的image动态赋值加载中的动画,同时在页面下方实现选择的区域,让用户能够点击。

实现图片的点击事件,当点击时修改上方代表玩家图片的class="lazy" data-src值,同时停止右侧代表电脑的图片的闪烁,并通过下标判断电脑的选择。

在给玩家图片赋值的同时,停止电脑方图片的闪烁,获取其class="lazy" data-src,判断哪方获胜并在页面进行显示。

在页面底部实现再来一次按钮,点击时将页面数据进行重置。

实现代码:

<template>
  <div class="box">
    <h1>石头剪刀布</h1>
    <div class="boxli">
      <div class="top">
        <p>
          你已获胜了<span class="id">{{ id }}</span> 次
        </p>
        <div class="liimg">
          <img class="lazy" data-src="@/assets/logo.gif" id="img" />
          <span>{{ text }}</span>
          <img :class="lazy" data-src="list[index].image" alt="" />
        </div>
      </div>
      <div class="bottom">
        <img
          v-for="item in list"
          :key="item.id"
          :class="lazy" data-src="item.image"
          @click="add(item.id)"
        />
      </div>
      <div class="btn" @click="btn">再来一局</div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        {
          id: 1,
          image: require("@/assets/one.png"),
        },
        {
          id: 2,
          image: require("@/assets/two.png"),
        },
        {
          id: 3,
          image: require("@/assets/three.png"),
        },
      ],
      index: 0,
      setInter: "",
      text: "",
      id: 0,
    };
  },
  mounted() {
    this.SetInter();
  },
  methods: {
    SetInter() {
      this.setInter = setInterval(() => {
        this.index++;
        if (this.index === 3) {
          this.index = 0;
        }
      }, 100);
    },
    add(id) {
      let img = document.getElementById("img");
      if (img.class="lazy" data-src === "http://localhost:8080/img/logo.b990c710.gif") {
        img.class="lazy" data-src = this.list[id - 1].image;
        clearInterval(this.setInter);
        switch (this.index) {
          case 0:
            if (id - 1 === 0) {
              this.text = "平局了";
            } else if (id - 1 === 1) {
              this.text = "获胜了";
            } else if (id - 1 === 2) {
              this.text = "失败了";
            }
            break;
          case 1:
            if (id - 1 === 0) {
              this.text = "失败了";
            } else if (id - 1 === 1) {
              this.text = "平局了";
            } else if (id - 1 === 2) {
              this.text = "获胜了";
            }
            break;
          case 2:
            if (id - 1 === 0) {
              this.text = "获胜了";
            } else if (id - 1 === 1) {
              this.text = "失败了";
            } else if (id - 1 === 2) {
              this.text = "平局了";
            }
            break;
        }
        if (this.text === "获胜了") {
          this.id++;
          console.log(this.id);
        }
      }
    },
    btn() {
      let img = document.getElementById("img");
      if (img.class="lazy" data-src !== "http://localhost:8080/img/logo.b990c710.gif") {
        img.class="lazy" data-src = require("@/assets/logo.gif");
        this.SetInter();
        this.text = "";
      }
    },
  },
};
</script>

<style lang="scss" scoped>
.box {
  text-align: center;
  h1 {
    margin: 20px 0;
  }
  .boxli {
    width: 800px;
    height: 550px;
    border: 1px solid red;
    margin: 0 auto;
    .top {
      img {
        width: 200px;
        height: 200px;
      }
      .liimg {
        display: flex;
        justify-content: center;
        align-items: center;
      }
      span {
        display: inline-block;
        width: 100px;
        color: red;
        text-align: center;
      }
      .id {
        width: 30px;
        margin-top: 20px;
      }
    }
  }
  .btn {
    width: 200px;
    height: 50px;
    background-image: linear-gradient(to right, #ff00ad, #f09876);
    margin: 0 auto;
    line-height: 50px;
    color: #fff;
    border-radius: 10px;
  }
}
</style>

总结:

到此这篇关于如何基于Vue制作一个猜拳小游戏的文章就介绍到这了,更多相关Vue猜拳小游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何基于Vue制作一个猜拳小游戏

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何基于Vue制作一个猜拳小游戏

Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式,下面这篇文章主要给大家介绍了关于如何基于Vue制作一个猜拳小游戏的相关资料,需要的朋友可以参考下
2023-01-05

基于JavaSwing制作一个Pong小游戏

《Pong》是美国雅达利公司(ATARI)开发的视频游戏,该作模拟了两个打乒乓球的人,就是在两条线中间有一个点在动,操纵器就是一个摇杆上有一个按钮的那种。本文就来用JavaSwing制作一个Pong小游戏吧
2023-01-05

利用java制作一个猜数字小游戏

今天就跟大家聊聊有关利用java制作一个猜数字小游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体方法如下:package com.swift;import java.util.
2023-05-31

怎么用PyQt5制作一个猜数字小游戏

今天小编给大家分享一下怎么用PyQt5制作一个猜数字小游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开始之前,直接来看一
2023-06-29

基于C#制作一个飞机大战小游戏的全过程

飞机大战小游戏详细大家都不陌生,下面这篇文章主要给大家介绍了关于基于C#制作一个飞机大战小游戏的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-02-16

基于Java+SpringBoot制作一个旅游攻略小程序

憋了几年好不容易解封准备出去散散心,但看着大江南北这么多景点是不是有点让你选择强迫症呢?那就先制作一个旅游攻略小程序看看驴友们的分享吧。 来源地址:https
2023-08-30

基于JavaScript如何编写一个翻卡游戏

这篇文章主要介绍“基于JavaScript如何编写一个翻卡游戏”,在日常操作中,相信很多人在基于JavaScript如何编写一个翻卡游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于JavaScript如
2023-07-05

Java基于面向对象如何实现一个战士小游戏

这篇文章主要讲解了“Java基于面向对象如何实现一个战士小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java基于面向对象如何实现一个战士小游戏”吧!一、思路首先,我们知道在系统中有个
2023-07-02

如何用Matlab制作一款简单的龙舟小游戏

今天小编给大家分享一下如何用Matlab制作一款简单的龙舟小游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图:步骤1
2023-06-29

编程热搜

目录