通过js实现猜拳
实现猜拳游戏的基本逻辑
猜拳游戏(石头剪刀布)的核心逻辑是玩家与计算机随机选择一种手势(石头、剪刀或布),根据规则判断胜负。以下是使用JavaScript实现的步骤。
定义手势常量
使用常量表示三种手势,便于后续代码维护和阅读。
const ROCK = 'rock';
const SCISSORS = 'scissors';
const PAPER = 'paper';
生成计算机的选择
通过随机数生成计算机的选择,范围为0到2,分别对应石头、剪刀或布。
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';
}
完整游戏实现
将上述逻辑整合为一个完整的游戏函数,接受玩家选择并输出结果。
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函数并传入玩家的选择(ROCK、SCISSORS或PAPER)来运行游戏。
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;
}






