javascript - 石头、纸、剪刀游戏 - 重复 5 轮
问题描述
我正在建造石头剪刀布任务。目前我的代码仅适用于 1 轮。我不确定如何在重复 5 轮的同时保持分数。我的印象是我至少需要一个 for 循环,大致如下:
for(i=0; i<5;i++);
但我不知道在哪里将它插入我的代码。我在网上环顾四周,我找不到一个足够简单的资源来理解不开始使用 switch 方法或任何其他更高级的代码来构建游戏的资源。任何帮助,将不胜感激。谢谢。
function computerPlay() {
let random = Math.random();
if (random <= 0.3333) {
return "paper";
} else if (random >= 0.6666) {
return "rock";
} else {
return "scissors";
}
}
function playRound(playerSelection, computerSelection) {
if (playerSelection.toLowerCase() === "rock") {
if (computerSelection === "paper") {
computerScore++;
return lose;
} else if (computerSelection === "rock") {
return tie;
} else {
userScore++;
return win;
}
}
if (playerSelection.toLowerCase() === "scissors") {
if (computerSelection === "paper") {
userScore++;
return win;
} else if (computerSelection === "rock") {
computerScore++;
return lose;
} else {
return tie;
}
}
if (playerSelection.toLowerCase() === "paper") {
if (computerSelection === "paper") {
return tie;
} else if (computerSelection === "rock") {
userScore++;
return win;
} else {
computerScore++;
return lose;
}
}
}
let userScore = parseInt(0);
let computerScore = parseInt(0);
let win = "You win"
let lose = "You lose"
let tie = "It is a tie"
let playerSelection = prompt("Pick a move");
const computerSelection = computerPlay()
console.log(playRound(playerSelection, computerSelection))
console.log("your score = " + userScore);
console.log("Computer's score = " + computerScore);
解决方案
我已经编辑了你的代码片段,希望它能满足你的需要:)
只需将以下代码放入 for 循环
let playerSelection = prompt("选择一个动作");
const computerSelection = computerPlay()
console.log(playRound(playerSelection, computerSelection))
console.log("你的分数 = " + userScore);
console.log("计算机分数 = " + computerScore);
function computerPlay() {
let random = Math.random();
if (random <= 0.3333) {
return "paper";
} else if (random >= 0.6666) {
return "rock";
} else {
return "scissors";
}
}
function playRound(playerSelection, computerSelection) {
if (playerSelection.toLowerCase() === "rock") {
if (computerSelection === "paper") {
computerScore++;
return lose;
} else if (computerSelection === "rock") {
return tie;
} else {
userScore++;
return win;
}
}
if (playerSelection.toLowerCase() === "scissors") {
if (computerSelection === "paper") {
userScore++;
return win;
} else if (computerSelection === "rock") {
computerScore++;
return lose;
} else {
return tie;
}
}
if (playerSelection.toLowerCase() === "paper") {
if (computerSelection === "paper") {
return tie;
} else if (computerSelection === "rock") {
userScore++;
return win;
} else {
computerScore++;
return lose;
}
}
}
let userScore = parseInt(0);
let computerScore = parseInt(0);
let win = "You win"
let lose = "You lose"
let tie = "It is a tie"
for(var i=0;i<5;i++){
let playerSelection = prompt("Pick a move");
const computerSelection = computerPlay()
console.log(playRound(playerSelection, computerSelection))
console.log("your score = " + userScore);
console.log("Computer's score = " + computerScore);
}
推荐阅读
- javascript - Javascript 解构数组
- unity3d - 如何将对象从世界画布动画到覆盖画布
- node.js - 如何在 pug 脚本中访问 bashrc 环境变量。部分
- c++ - clang 不会默认构造 const 类成员
- java - 为什么我需要一个 Rest 控制器?
- html - Wordpress 使整个博客文章可点击
- ios - 为什么我的故事板不能正常工作?
- java - 如何使 SpringBoot/Hibernate 创建单元测试模式?
- python - 如何从 Twitter 打印推文?
- angularjs - Angular 1.x 图像上传预览代码不更新 DOM