gpt4 book ai didi

javascript - 我的 switch 语句每次都打印默认值 - 这是一个简单的石头剪刀布游戏

转载 作者:行者123 更新时间:2023-12-04 07:20:26 25 4
gpt4 key购买 nike

这是我的代码 - 任何人都可以看到,我执行错了什么。如果我使用'win();'在函数 'main' 中,分数更新,与 'lose();' 相同我是初学者,只有3个月的练习,所以我看不出我哪里出错了。有人能指路吗。我已经附上了 HTML、CSS 和 Javascript,所以你可以看到每个函数应该做什么。

let playerScore = 0;
let computerScore = 0;
let playerScore_span = document.getElementById("user-score");
let computerScore_span = document.getElementById("computer-score");
const scoreplace_div = document.querySelector(".score-place");
const rock_div = document.getElementById("ro");
const paper_div = document.getElementById("pa");
const scissors_div = document.getElementById("sc");

function win(player, computer) {
playerScore++;
playerScore_span.innerHTML = playerScore;
computerScore_span.innerHTML = computerScore;
}

function lose(computer, player) {
computerScore++;
computerScore_span.innerHTML = computerScore;
playerScore_span.innerHTML = playerScore;
}

function draw() {
console.log("draw");
}
let playerSelection;
let computerSelection;

function compChoice() {
let computerMove;
const words = ["ro", "pa", "sc"];
computerMove = words[Math.floor(Math.random() * 3)];
return computerMove;
}

function game(playerSelection, computerSelection) {
let computerMove = compChoice();
switch (playerSelection + computerSelection) {
case "paro":
case "rosc":
case "scpa":
win();
break;
case "ropa":
case "pasc":
case "scro":
lose();
break;
case "roro":
case "papa":
case "scsc":
draw();
break;
default:
console.log("it's fudged mate");
}
}

function main() {
rock_div.addEventListener('click', function(playerSelection, computerSelection) {
game("ro");
})

paper_div.addEventListener('click', function(playerSelection, computerSelection) {
game("pa");
})

scissors_div.addEventListener('click', function(playerSelection, computerSelection) {
game("sc");
})
}

main();
compChoice();
game(playerSelection, computerSelection);
win(playerScore, computerScore);
lose(computerScore, playerScore);
body {
align-items: center;
background: black;
}

.container {
color: red;
display: flex;
justify-content: space-between;
align-items: center;
}

.container-2 {
color: red;
display: flex;
justify-content: center;
}

span {
color: white;
display: flex;
justify-content: center;
}

.game-hands {
display: flex;
justify-content: space-around;
}

img {
width: 200px;
border: solid;
border-color: black;
border-radius: 100px;
}

h1 {
display: flex;
justify-content: center;
color: white;
border: solid;
border-color: black;
border-radius: 70px;
p {
border: solid;
border-color: black;
}
.option-hover {
cursor: pointer;
background: white;
}
<title>Rock-Paper-Scissors</title>
<meta charset="UTF-8" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="stylesheet" href="styles.css">

<header>

<h1>Rock, Paper, Scissors!</h1>
</header>


<div class="score-place">

<div id="user-label" class="badge">User</div>

<div id="computer-label" class="badge">Computer</div>
<span id="user-score">0</span>:<span id="computer-score">0</span>
</div>


<section>
<div class="container-2">

<h1>Let's Play!</h1>
</div>

<div class="game-hands">
<div class="option" id="ro">
<img src="images/rock.jpg" alt="Rock">
</div>
<div class="option" id="pa">
<img src="images/paper.jpg" alt="Paper">
</div>
<div class="option" id="sc">
<img src="images/scissors.jpg" alt="Scissors">
</div>
</div>

</section>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script src="javascript.js">
charset = "utf-8" >
</script>

最佳答案

就你的问题而言
你使用了没有传入方法的参数computerSelection,它会输出默认的字符串,这很正常,因为没有满足条件的字符串
按照原来的条件,实际情况只会有以下字符串:

  • 圆定义
  • paundefined
  • scundefined

  • 但我看到你的方法有一个 computerMove 参数,
    结合我估计的逻辑和程序的内部逻辑,程序应该做如下调整:
    替换 switch (playerSelection + computerSelection)switch (playerSelection + computerMove )

    关于javascript - 我的 switch 语句每次都打印默认值 - 这是一个简单的石头剪刀布游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68541133/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com