有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

随机Java:CPU播放器值未计算

我有一个非常简单的游戏:两个玩家从十个攻击点开始,选择若干点攻击另一个玩家,目标是将另一个玩家的生命从40减少到零。我已经让两个播放器的函数工作得很好,但是当涉及到在单机播放器中为计算机播放器生成值时——这是使用开关盒设置的——似乎没有生成值。难度标志由单选按钮组设置,但无论难度设置为什么,都不会生成计算机玩家的攻击值

//This code calculates remaining attack/life points with the selected attack values.
//It's here that CPU player attack values SHOULD be set as well.
if(attackVal1 <= player1AtkPoints)
    {
        player1AtkPoints = player1AtkPoints - attackVal1;
    }
    else
        if(attackVal1 > player1AtkPoints)
        {
            attackVal1 = player1AtkPoints;
            player1AtkPoints = 0;
        }

    life2 = life2 - attackVal1;

    if(P2ACTIVE = false)
    {
        switch(difficultyFlag)
        {

            case 1:
                attackVal2 = cpuPlayer.nextInt(3) + 1;
                break;

            case 2:
                attackVal2 = cpuPlayer.nextInt(4) + 1;
                break;

            case 3:
                attackVal2 = cpuPlayer.nextInt(5) + 1;
                break;

            case 4:
                attackVal2 = cpuPlayer.nextInt(8) + 1;
                break;

            default:
                attackVal2 = cpuPlayer.nextInt(3)+ 1;
                break;
        }
    }

    if(attackVal2 <= player2AtkPoints)
    {
        player2AtkPoints = player2AtkPoints - attackVal2;
    }
    else
        if(attackVal2 > player2AtkPoints)
        {
            attackVal2 = player2AtkPoints;
            player2AtkPoints = 0;
        }

    life1 = life1 - attackVal2;

以上是相关代码。玩家一的计算工作,并减少玩家两个生命点的单人和双人,两人模式的工作,以减少玩家一的生命。只有当它被设置为单人时,玩家的生命值才会发生任何变化,这使得这是一场单方面的战斗


共 (1) 个答案

  1. # 1 楼答案

    当您打算将falsefalse进行比较时,您已将false分配给此行中的P2ACTIVE

    if(P2ACTIVE = false)
    

    您可以使用==比较运算符,但它已经是boolean,所以只需使用!运算符即可:

    if (!P2ACTIVE)