当前位置:首页 > JavaScript

通过js实现猜拳

2026-01-30 21:41:11JavaScript

实现猜拳游戏的基本逻辑

猜拳游戏(石头剪刀布)的核心逻辑是玩家与计算机随机选择一种手势(石头、剪刀或布),根据规则判断胜负。以下是使用JavaScript实现的步骤。

定义手势常量

使用常量表示三种手势,便于后续代码维护和阅读。

const ROCK = 'rock';
const SCISSORS = 'scissors';
const PAPER = 'paper';

生成计算机的选择

通过随机数生成计算机的选择,范围为0到2,分别对应石头、剪刀或布。

通过js实现猜拳

function getComputerChoice() {
  const randomValue = Math.floor(Math.random() * 3);
  switch (randomValue) {
    case 0: return ROCK;
    case 1: return SCISSORS;
    case 2: return PAPER;
  }
}

判断胜负规则

根据玩家和计算机的选择,比较胜负。规则如下:

  • 石头胜剪刀
  • 剪刀胜布
  • 布胜石头
function determineWinner(playerChoice, computerChoice) {
  if (playerChoice === computerChoice) {
    return 'tie';
  }
  if (
    (playerChoice === ROCK && computerChoice === SCISSORS) ||
    (playerChoice === SCISSORS && computerChoice === PAPER) ||
    (playerChoice === PAPER && computerChoice === ROCK)
  ) {
    return 'player';
  }
  return 'computer';
}

完整游戏实现

将上述逻辑整合为一个完整的游戏函数,接受玩家选择并输出结果。

通过js实现猜拳

function playGame(playerChoice) {
  const computerChoice = getComputerChoice();
  const result = determineWinner(playerChoice, computerChoice);

  console.log(`Player chose: ${playerChoice}`);
  console.log(`Computer chose: ${computerChoice}`);

  if (result === 'tie') {
    console.log('It\'s a tie!');
  } else if (result === 'player') {
    console.log('Player wins!');
  } else {
    console.log('Computer wins!');
  }
}

调用示例

通过调用playGame函数并传入玩家的选择(ROCKSCISSORSPAPER)来运行游戏。

playGame(ROCK); // 示例:玩家选择石头

扩展为交互式游戏

可以通过HTML和事件监听实现一个简单的交互式猜拳游戏。

<button onclick="playGame(ROCK)">石头</button>
<button onclick="playGame(SCISSORS)">剪刀</button>
<button onclick="playGame(PAPER)">布</button>
<p id="result"></p>
function playGame(playerChoice) {
  const computerChoice = getComputerChoice();
  const result = determineWinner(playerChoice, computerChoice);

  const resultText = `Player: ${playerChoice}, Computer: ${computerChoice}. `;
  let outcomeText;

  if (result === 'tie') {
    outcomeText = 'It\'s a tie!';
  } else if (result === 'player') {
    outcomeText = 'Player wins!';
  } else {
    outcomeText = 'Computer wins!';
  }

  document.getElementById('result').textContent = resultText + outcomeText;
}

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

相关文章

vue实现猜拳

vue实现猜拳

实现猜拳游戏的Vue组件 创建一个Vue猜拳游戏需要处理游戏逻辑、用户交互和状态管理。以下是实现方案: 游戏组件结构 <template> <div class="ga…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…