Java 简化RPG战斗方法

Java 简化RPG战斗方法,java,methods,simplification,Java,Methods,Simplification,我正在为一段代码而挣扎,这段代码到目前为止还可以正常工作,但可能会有所改进吗?我正在为学校作业制作一个RPG游戏,现在我可以交了。但如果它能被改进(缩短),我很乐意得到一些建议:) 所有对其他方法的调用都有效(例如player.isDead等) 这两种方法是: 我从游戏类中调用。战斗开始战斗(带有怪物列表) 这是你写的吗?如果是这样,你为什么不知道它是如何工作的?哪一部分你不明白。还有:哇,GOTO语句!是的,我写的。我在学习编程,所以我还不是什么都懂。。呵呵。这是一个实验的结果:)告诉我关于G

我正在为一段代码而挣扎,这段代码到目前为止还可以正常工作,但可能会有所改进吗?我正在为学校作业制作一个RPG游戏,现在我可以交了。但如果它能被改进(缩短),我很乐意得到一些建议:)

所有对其他方法的调用都有效(例如player.isDead等)

这两种方法是:

我从游戏类中调用。战斗开始战斗(带有怪物列表)


这是你写的吗?如果是这样,你为什么不知道它是如何工作的?哪一部分你不明白。还有:哇,GOTO语句!是的,我写的。我在学习编程,所以我还不是什么都懂。。呵呵。这是一个实验的结果:)告诉我关于GOTO?对于GOTO,我的意思是
战斗:
决斗,这在Java中相当少见。(更正:这不是一个真正的“转到”,只是一种特殊形式的中断,很抱歉造成混乱)。再说一遍,你不明白的是哪一部分?好的,我明白了。嗯,这是一个while循环,turn==0。这是一个更好的方法,让玩家战斗的生物没有声明它应该是回合?顺便说一句,我对问题进行了更精确的编辑:)
public void fight() {
    monster = monsterList.get(random.nextInt (monsterList.size()));                
    System.out.println("A" + " " + monster.getName() + " " + monster.getEnter());
    //turn 0 = player 
    //turn 1 = monster       
    fight:
    while(!player.isDead() && !monster.isDead()) {
        while(turn == 0) {
            String input = inputreader.getCommand();            
            if(input.contains ("run")) {
                player.setGold(player.getGold()-50); 
                System.out.println("You throw 50 gold at the monster and escape in the confusion.");
                break fight;
            }
            else if(input.contains ("attack")) {                    
                break;
            }
            else if(input.contains ("help")) {
                printHelp();
            } 
            else if(input.contains ("inspect")) {
                printDescription(monster);
            }              
        }   
        gameAttack();
    }

}
/**
 * The fight between the monster and the player
 */
private void gameAttack() {                       
    System.out.println("You attack! ");
    int playerDamage = random.nextInt(21)+10;
    monster.changeHealth(-playerDamage);
    System.out.println(player.getName() + " hits " + monster.getName() + " for " + playerDamage + " damage! "
        + monster.getName() + " has " + monster.getHealth() + "/" + monster.getMaxHealth() + " hitpoints left! ");
    if(monster.isDead()) {
        System.out.println(player.getName() + " is victorious! " + "\n" + player.getName() + " looted the monster for " 
            + monster.getGold() + " gold ");
        player.setGold(player.getGold() + monster.getGold());
    }    
    else{    
        turn = 1;
        System.out.println("The monster attacks!");
        int monsterDamage = random.nextInt(21)+20;
        player.changeHealth(-monsterDamage);
        System.out.println(monster.getName() + " hits " + player.getName() + " for " + monsterDamage + " damage! "
            + player.getName() + " has " + player.getHealth() + "/" + player.getMaxHealth() + " hitpoints left!");
    }
    if(player.isDead()) {
        System.out.println(player.getName() + " has been slain by " + monster.getName() + ".\n" + "Game over, bro!");
    }
    else{
        turn = 0;
    }
}