RPS 函数不起作用(JavaScript)

rps function not working (javascript)

本文关键字:JavaScript 不起作用 函数 RPS      更新时间:2023-09-26

Rps 游戏代码不起作用。我的战斗函数应该将胜利设置为 1、2 或 3,但它始终保持在默认的 0。我已经通过控制台检查了其他值,它们似乎都在工作。这是我的代码。

function Player(number) {
this.number = number;
this.choice = 0;
}
var player1 = new Player(1);
var player2 = new Player(2);
var win = 0;
var battle = function() {
if (player1.choice === player2.choice) {
    win = 3;
} else if (player1.choice + 2 === player2.choice && player1.choice === 1){
    win = 2;
} else if (player1.choice + 1 === player2.choice && player1.choice === 1) {
    win = 1;
} else if (player1.choice + 1 === player2.choice && player1.choice === 2) {
    win = 1;
} else if (player1.choice - 1 === player2.choice && player1.choice === 2) {
    win = 2;
} else if (player1.choice - 1 === player2.choice && player1.choice === 3) {
    win = 2;
} else if (player1.choice - 2 === player2.choice && player1.choice === 3) {
    win = 1;
} else {
    alert ('someone pressed the wrong button')
}
}
var Reset = function () {
win = 0;
player1.choice = 0;
player2.choice = 0;
}
$(document).ready(function() {
$(document).keydown(function(event) {
    if (event.which === 81) {
        player1.choice = 1;
    } else if (event.which === 87){
        player1.choice = 2;
    } else if (event.which === 69){
        player1.choice = 3;
    } else if (event.which === 37){
        player2.choice = 1;
    } else if (event.which === 40){
        player2.choice = 2;
    } else if (event.which === 39){
        player2.choice = 3;
    } 
})
if (player1.choice > 0 && player2.choice > 0) {
    battle();
    if (win === 1) {
        $('.winner').append('<p>player1 wins!</p>')
    } else if (win === 2) {
        $('.winner').append('<p>player2 wins!</p>')
    } else if (win === 3) {
        $('.winner').append('<p>It is a draw!</p>')
    }
}
})

我的 html 中有带有类"winner"的div。附加问题如何在两个玩家都选择他们的选项后取消键控功能。

您是否在

创建的玩家类中为您的玩家提供选择?它应该看起来像这样:

function Player(number, choice) {
this.number = number;
this.choice = choice;
}