当前位置:首页 > VUE

vue实现猜拳

2026-03-27 07:15:21VUE

Vue 实现猜拳游戏

以下是一个基于 Vue 3 的猜拳游戏实现方法,包含核心逻辑和界面交互。

游戏界面设计

使用 Vue 的模板语法创建游戏界面,包含玩家选择区域、结果显示区域和胜负统计。

vue实现猜拳

<template>
  <div class="game-container">
    <h3>猜拳游戏</h3>
    <div class="choices">
      <button @click="playGame('rock')">✊ 石头</button>
      <button @click="playGame('paper')">✋ 布</button>
      <button @click="playGame('scissors')">✌️ 剪刀</button>
    </div>
    <div v-if="result" class="result">
      <p>你的选择: {{ playerChoice }}</p>
      <p>电脑选择: {{ computerChoice }}</p>
      <p>结果: {{ result }}</p>
    </div>
    <div class="stats">
      <p>胜利: {{ wins }} | 失败: {{ losses }} | 平局: {{ draws }}</p>
    </div>
  </div>
</template>

游戏逻辑实现

在 Vue 的 script 部分实现游戏核心逻辑,包括电脑随机选择、胜负判断和统计功能。

vue实现猜拳

<script>
import { ref } from 'vue';

export default {
  setup() {
    const choices = ['rock', 'paper', 'scissors'];
    const playerChoice = ref('');
    const computerChoice = ref('');
    const result = ref('');
    const wins = ref(0);
    const losses = ref(0);
    const draws = ref(0);

    const getComputerChoice = () => {
      const randomIndex = Math.floor(Math.random() * 3);
      return choices[randomIndex];
    };

    const determineWinner = (player, computer) => {
      if (player === computer) return '平局';
      if (
        (player === 'rock' && computer === 'scissors') ||
        (player === 'paper' && computer === 'rock') ||
        (player === 'scissors' && computer === 'paper')
      ) {
        return '你赢了';
      }
      return '你输了';
    };

    const playGame = (choice) => {
      playerChoice.value = choice;
      computerChoice.value = getComputerChoice();
      result.value = determineWinner(choice, computerChoice.value);

      if (result.value === '你赢了') wins.value++;
      else if (result.value === '你输了') losses.value++;
      else draws.value++;
    };

    return {
      playerChoice,
      computerChoice,
      result,
      wins,
      losses,
      draws,
      playGame
    };
  }
};
</script>

样式设计

添加基本样式使游戏界面更美观。

<style>
.game-container {
  max-width: 500px;
  margin: 0 auto;
  text-align: center;
  padding: 20px;
  font-family: Arial, sans-serif;
}

.choices button {
  font-size: 24px;
  margin: 10px;
  padding: 10px 20px;
  cursor: pointer;
  background-color: #f0f0f0;
  border: none;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.choices button:hover {
  background-color: #ddd;
}

.result {
  margin: 20px 0;
  padding: 15px;
  background-color: #f8f8f8;
  border-radius: 5px;
}

.stats {
  margin-top: 20px;
  font-weight: bold;
}
</style>

游戏规则说明

猜拳游戏遵循以下基本规则:

  • 石头 (✊) 胜 剪刀 (✌️)
  • 剪刀 (✌️) 胜 布 (✋)
  • 布 (✋) 胜 石头 (✊)

功能扩展建议

  1. 添加游戏历史记录功能,保存最近几场比赛结果
  2. 实现动画效果,增强玩家选择时的视觉反馈
  3. 增加难度级别,调整电脑AI的策略
  4. 添加音效增强游戏体验
  5. 实现响应式设计,适配移动设备

这个实现包含了猜拳游戏的基本功能,可以直接在Vue项目中使用或根据需要进行扩展。

标签: 猜拳vue
分享给朋友:

相关文章

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…

vue实现标注

vue实现标注

Vue 实现标注功能的方法 使用 Vue 实现标注功能可以通过多种方式实现,以下介绍几种常见的方法: 1. 使用 HTML5 Canvas 实现标注 Canvas 提供了强大的绘图能力,适合实现复…

vue实现卡片

vue实现卡片

Vue 实现卡片组件的方法 使用 Vue 实现卡片组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 在 Vue 单文件组件中,可以通过模板和样式直接实现卡片效果…

vue实现数据渲染

vue实现数据渲染

Vue 数据渲染的实现方式 Vue.js 提供了多种数据渲染的方式,包括插值表达式、指令和计算属性等。以下是常见的实现方法: 插值表达式 使用双大括号 {{ }} 将数据绑定到模板中,数据变化时会自…