javascript - 石头剪刀布游戏不循环播放
问题描述
我的游戏没有按预期循环。通过阅读我的简单代码,您可以了解我的意图。请帮我修复游戏,让它循环五次,并在最后一轮根据最终得分向获胜者显示一条消息。
在每一轮游戏中,游戏都应该询问用户的输入并将其与计算机选择的选项进行比较,然后决定谁赢谁输。
// initialzing our game with the user's and computer's choice
let choice = ["Rock", "Paper", "Scissors"];
let computerSelection = computerPlay();
let playerSelection = '';
// let gameMsg = []
let playerScore = 0;
let computerScore = 0;
function playerPlay() {
return playerSelection = prompt("Choose your weapon: Rock, Paper, or Scissors?");
}
function computerPlay() {
const random = Math.floor(Math.random() * choice.length);
return choice[random];
}
// Function for a Single round game
function playRound(playerSelection, computerSelection) {
if (playerSelection === computerSelection) {
console.log(`Both player chooses ${playerSelection}. OOPS! It's a tie.`);
} else if (playerSelection === "Rock") {
if (computerSelection === 'Paper') {
computerScore+= 1;
console.log("Paper covers Rock. You lose! Computer Won.");
} else {
playerScore+= 1;
console.log("Rock smashes Scissors. Hurray! You won.");
}
} else if (playerSelection === "Paper") {
if (computerSelection === "Rock") {
playerScore+= 1;
console.log("Paper covers Rock. You won!");
} else {
computerScore+= 1;
console.log("Scissors cut Paper. You lose! Computer Won.");
}
} else if (playerSelection === "Scissors") {
if (computerSelection === "Paper") {
playerScore+= 1;
console.log("Scissors cut paper. You won!");
} else {
computerScore+= 1;
console.log("Rock smashes Scissors. You lose! Computer Won.");
}
} else {
console.log("Wrong Input!");
}
}
// Looping through the game five times
function game() {
for (let i = 1; i <= 5; i++) {
playerPlay();
computerPlay();
if (i == 5) {
if (playerScore > computerScore) {
console.log("Congrats! You beat the Computer!!!");
} else if (playerScore == computerScore) {
console.log("Nobody wins. It's a tie!");
} else {
console.log("Hahahha. The Computer have beaten you. You lose the game!!");
}
console.log(playerScore);
console.log(computerScore);
} else {
return playRound(playerSelection, computerSelection);
}
}
}
function reset() {
playerScore = 0;
computerScore = 0;
}
game();
解决方案
因为你在调用时退出了函数return
。只需删除它!
// Looping through the game five times
function game() {
for (let i = 1; i <= 5; i++) {
// ...
if (i == 5) {
// ...
} else {
// remove this return
playRound(playerSelection, computerSelection);
}
}
}
推荐阅读
- laravel - Laravel - 将测试目录与应用目录匹配
- python - 在 Python pdfkit 中指定字体
- javascript - AJAX request.term 返回 null;jQuery 自动完成文本框,.NET MVC
- javascript - 无法使用 PeerJs 连接向另一端发送消息
- python - 如何检查python字典中键和值的条件以获取特定值
- jquery - 删除和添加锚href jQuery
- php - “此集合实例上不存在属性 [registration_types]。”
- mysql - MySQLCommand ExecuteReader 行大小太大,查询在 CLI 上工作正常
- python - IntelliJ Pycharm如何将插入符号移动到行的某个第n个字符
- sql - SQL Server:为连续日期创建跨多行的唯一键