当前位置:首页 > 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];
}

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

js实现猜拳

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函数并传入玩家的选择来开始游戏。

js实现猜拳

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>

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

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 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…