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