当前位置:首页 > 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 实现拖拽功能 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 <template> &l…

vue核心实现

vue核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现原理的详细说明: 响应式系统 Vue 使用 Object.defineProper…

vue实现展开

vue实现展开

展开功能的实现方法 在Vue中实现展开功能可以通过多种方式完成,常见的有使用v-show、v-if指令,结合CSS过渡动画或第三方组件库。 使用v-show控制显示隐藏 通过v-show指令可以简单…

vue远离实现

vue远离实现

Vue 原理实现 Vue.js 的核心原理包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是其关键实现原理的详细解析。 响应式系统 Vue 的响应式系统基于 Object.definePro…

vue系统实现

vue系统实现

Vue 系统实现的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装核心依赖(如 Vue 3、Vue Router、Pinia)。配置开发环境(如 ESLint、Prett…

vue简单实现

vue简单实现

Vue 简单实现示例 以下是一个使用 Vue.js 创建简单应用的示例,涵盖基本功能如数据绑定、事件处理和组件化。 基础 HTML 结构 <!DOCTYPE html> <html…