Ich habe mir in den letzten Tagen mit Hilfe einer Website die Grundlagen von Java beigebracht und wollte nun wissen ob ich grundlegende Fehler oder unnötige Mehrarbeit mache. Vor allem bei der Verwendung von Objekten bin ich mir nicht sicher. Hab mich an einem mini RPG versucht. Ein kurzes Feedback wäre nett.
Java:
import java.util.*;
public class Main {
public static void main(String[] args) {
Random rand = new Random();
Char mainChar = new Char();
Char enemy = new Char();
mainChar.setStartHP(100);
mainChar.setMaxHP(mainChar.getStartHP());
mainChar.setCurrentHP(mainChar.getMaxHP());
mainChar.setBaseAttack(10);
mainChar.setAttack(mainChar.getBaseAttack());
Fight kampf = new Fight();
while (mainChar.getCurrentHP() > 0) {
enemy.setBaseAttack(2 + mainChar.getLvl() * 2); // gegner generieren
enemy.setAttack(enemy.getBaseAttack());//waffe noch einfügen
enemy.setMaxHP(mainChar.getLvl() * mainChar.getLvl());
enemy.setCurrentHP(enemy.getMaxHP());
enemy.setGold(rand.nextInt(mainChar.getLvl() * 20));
while (enemy.getCurrentHP() > 0 & mainChar.getCurrentHP() > 0)// kampfhandlung
{
enemy.setCurrentHP(kampf.kampfhandlung(
enemy.getCurrentHP(), mainChar.getAttack() + rand.nextInt(mainChar.getLvl())));
mainChar.setCurrentHP(kampf.kampfhandlung(
mainChar.getCurrentHP(), enemy.getAttack()));
System.out.println("Dein Leben: " + mainChar.getCurrentHP()
+ ". \tDas Leben deines Gegners: " + enemy.getCurrentHP());
}
// belohnung für besiegten gegner
if (mainChar.getCurrentHP() > 0) {
mainChar.setLvl(mainChar.getLvl() + 1);
mainChar.setMaxHP(mainChar.getMaxHP() + rand.nextInt(mainChar.getLvl()));//neues MaxHP
System.out.println("Level UP! Du bist nun Level "
+ mainChar.getLvl() + "!");
mainChar.setGold(enemy.getGold() + mainChar.getGold());
// heilung
mainChar.setCurrentHP(mainChar.getCurrentHP()
+ mainChar.getLvl() * 5);
if (mainChar.getCurrentHP() > mainChar.getMaxHP())
mainChar.setCurrentHP(mainChar.getMaxHP());
System.out.println("Dein Leben zu Begin des Kampfes beträgt: "
+ mainChar.getCurrentHP());
} else
System.out.println("Dein maximales Level war "
+ mainChar.getLvl() + " Du hattest "
+ mainChar.getGold() + " Gold!");
}
}
}