当前位置:首页 > JavaScript

js实现猜拳

2026-03-13 23:14:26JavaScript

实现猜拳游戏的基本思路

使用JavaScript实现猜拳游戏需要处理用户输入、随机生成电脑选择、比较胜负逻辑以及显示结果。以下是一个简单的实现方案。

HTML结构

创建一个简单的HTML界面,包含三个按钮代表石头、剪刀、布,以及一个显示结果的区域。

<!DOCTYPE html>
<html>
<head>
    <title>猜拳游戏</title>
</head>
<body>
    <h1>猜拳游戏</h1>
    <button id="rock">石头</button>
    <button id="scissors">剪刀</button>
    <button id="paper">布</button>
    <div id="result"></div>
    <script src="game.js"></script>
</body>
</html>

JavaScript逻辑

game.js中编写游戏逻辑,包括事件监听、随机生成电脑选择、比较胜负等。

// 获取DOM元素
const rockBtn = document.getElementById('rock');
const scissorsBtn = document.getElementById('scissors');
const paperBtn = document.getElementById('paper');
const resultDiv = document.getElementById('result');

// 电脑随机选择
function computerChoice() {
    const choices = ['rock', 'scissors', 'paper'];
    const randomIndex = Math.floor(Math.random() * 3);
    return choices[randomIndex];
}

// 比较用户和电脑的选择
function compareChoices(userChoice, computerChoice) {
    if (userChoice === computerChoice) {
        return '平局!';
    }
    if (
        (userChoice === 'rock' && computerChoice === 'scissors') ||
        (userChoice === 'scissors' && computerChoice === 'paper') ||
        (userChoice === 'paper' && computerChoice === 'rock')
    ) {
        return '你赢了!';
    }
    return '你输了!';
}

// 事件监听
rockBtn.addEventListener('click', () => {
    const compChoice = computerChoice();
    const result = compareChoices('rock', compChoice);
    resultDiv.textContent = `你选择了石头,电脑选择了${compChoice}。${result}`;
});

scissorsBtn.addEventListener('click', () => {
    const compChoice = computerChoice();
    const result = compareChoices('scissors', compChoice);
    resultDiv.textContent = `你选择了剪刀,电脑选择了${compChoice}。${result}`;
});

paperBtn.addEventListener('click', () => {
    const compChoice = computerChoice();
    const result = compareChoices('paper', compChoice);
    resultDiv.textContent = `你选择了布,电脑选择了${compChoice}。${result}`;
});

游戏规则说明

石头(rock)胜过剪刀(scissors),剪刀胜过布(paper),布胜过石头。如果用户和电脑选择相同,则为平局。

扩展功能

可以进一步优化游戏体验,例如添加计分系统、动画效果或历史记录功能。

js实现猜拳

// 计分系统示例
let userScore = 0;
let computerScore = 0;

function updateScore(result) {
    if (result.includes('赢了')) {
        userScore++;
    } else if (result.includes('输了')) {
        computerScore++;
    }
    resultDiv.textContent += ` 当前比分:用户 ${userScore} - 电脑 ${computerScore}`;
}

注意事项

确保代码逻辑清晰,避免冗余。可以通过函数封装重复代码,例如将事件监听逻辑统一处理。

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

相关文章

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…