当前位置:首页 > JavaScript

js实现猜拳

2026-04-05 17:26:17JavaScript

实现猜拳游戏的步骤

初始化游戏元素 创建玩家和电脑的选择选项(石头、剪刀、布),并定义游戏规则(石头胜剪刀、剪刀胜布、布胜石头)。

const choices = ['rock', 'paper', 'scissors'];
const rules = {
  rock: { beats: 'scissors' },
  paper: { beats: 'rock' },
  scissors: { beats: 'paper' }
};

获取玩家选择 通过按钮或输入框获取玩家的选择,确保选择在有效范围内。

function getPlayerChoice(choice) {
  if (!choices.includes(choice)) {
    return null;
  }
  return choice;
}

生成电脑选择 使用随机数生成电脑的选择,确保选择是石头、剪刀或布中的一种。

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

判断胜负 根据游戏规则比较玩家和电脑的选择,确定胜负结果。

function determineWinner(playerChoice, computerChoice) {
  if (playerChoice === computerChoice) {
    return 'draw';
  }
  if (rules[playerChoice].beats === computerChoice) {
    return 'player';
  }
  return 'computer';
}

显示结果 将游戏结果显示在页面上,包括玩家和电脑的选择以及最终的胜负情况。

function displayResult(playerChoice, computerChoice, result) {
  const resultText = {
    player: 'You win!',
    computer: 'Computer wins!',
    draw: 'It\'s a draw!'
  };
  console.log(`Player: ${playerChoice}, Computer: ${computerChoice}, Result: ${resultText[result]}`);
}

整合游戏流程 将上述步骤整合到一个函数中,完成整个游戏的流程。

function playGame(playerChoice) {
  const validPlayerChoice = getPlayerChoice(playerChoice);
  if (!validPlayerChoice) {
    console.log('Invalid choice!');
    return;
  }
  const computerChoice = getComputerChoice();
  const result = determineWinner(validPlayerChoice, computerChoice);
  displayResult(validPlayerChoice, computerChoice, result);
}

示例调用 通过调用playGame函数并传入玩家的选择来开始游戏。

playGame('rock'); // 示例调用

扩展功能

增加计分系统 记录玩家和电脑的胜负次数,并在每次游戏结束后更新分数。

let scores = { player: 0, computer: 0, draw: 0 };

function updateScores(result) {
  scores[result]++;
  console.log(`Scores: Player - ${scores.player}, Computer - ${scores.computer}, Draw - ${scores.draw}`);
}

添加图形界面 使用HTML和CSS创建一个简单的界面,通过按钮触发游戏逻辑。

<button onclick="playGame('rock')">Rock</button>
<button onclick="playGame('paper')">Paper</button>
<button onclick="playGame('scissors')">Scissors</button>
<div id="result"></div>

优化随机选择 使用更安全的随机数生成方法,避免伪随机数的重复模式。

js实现猜拳

function getSecureRandomIndex() {
  const crypto = window.crypto || window.msCrypto;
  const array = new Uint32Array(1);
  crypto.getRandomValues(array);
  return array[0] % choices.length;
}

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

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…