Hi ich bin´s wieder=). Ich habe mein Arenaspiel erweitert (was auch immer mehr erweitert wird) und da hab ich ein paar Probleme die ich nicht verstehe.
1.Problem: in der klasse arena wird die Methode explainStringOne(); nicht aufgerufen obwohl sie in der Sequenz steht und auch kein Fehler angezeigt wird.
2. Problem: bei der Heldenerstellung, ebenfalls in der klasse Arena, wird die Heldenerstellung irgendwie 2x ausgeführt; what the fuck?
github.com
Da es paar Klassen sind, habe ich das Projekt einfach mal für euch auf Github verfügbar gemacht ich werde trotzdem die betroffene Klasse posten:
1.Problem: in der klasse arena wird die Methode explainStringOne(); nicht aufgerufen obwohl sie in der Sequenz steht und auch kein Fehler angezeigt wird.
2. Problem: bei der Heldenerstellung, ebenfalls in der klasse Arena, wird die Heldenerstellung irgendwie 2x ausgeführt; what the fuck?
GitHub - PandasProgramm/java
Contribute to PandasProgramm/java development by creating an account on GitHub.
Da es paar Klassen sind, habe ich das Projekt einfach mal für euch auf Github verfügbar gemacht ich werde trotzdem die betroffene Klasse posten:
Code:
package de.arenakampf.miguel.java;
/*
* 26.05.20
* @author Miguel Gutierrez
*/
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Arena {
private ArrayList<Warrior>enemys= new ArrayList<Warrior>();
private Warrior player;
//addPlayer
public Warrior addWarrior()
{
int points = 50;
String name = JOptionPane.showInputDialog("Wie soll Ihr Held heißen?");
explainStringOne();
String healthString=JOptionPane.showInputDialog("Sie haben noch "+points+" Punkte."+" Wie viele Punkte wollen sie "
+ " in zusätzliches Leben investieren?");
int health = Integer.parseInt(healthString);
points = points- health;
if(points>0)
{
health= health *50;
}else {
warningStringMenuarena();
}
String strengthString=JOptionPane.showInputDialog("Sie haben noch "+points+" Punkte."+" Wie viele Punkte wollen sie "
+ "in zusätzliche Stärke investieren?");
int strength= Integer.parseInt(strengthString);
points = points- strength;
if(points>0)
{
strength= strength*50;
}
else
{
warningStringMenuarena();
}
String skillString=JOptionPane.showInputDialog("Sie haben noch "+points+" Punkte."+" Wie viele Punkte wollen sie "
+ "in zusätzliche Skill investieren?");
int skill = Integer.parseInt(skillString);
points = points- skill;
//Points der Werte wurden verteilt
if(points==0)
{
return new Warrior(name, health, strength, skill,null, null);//Baustelle
}
else {
warningStringMenuarena();
}
return player;
}
//add enemys
public void addEnemy()
{
for(int i =0; i<4;i++)
{
this.enemys.add(new Warrior("Andi"+i,i*100,i*3,i*3, null, null));//behind
}
}
public Warrior combad(Warrior player,Warrior enemy)
{
while(player.getHealth()>0&&enemy.getHealth()>0)
{
this.firsthitother(player, enemy);
if(enemy.getHealth()>0)
{
this.firsthitother(enemy, player);
}
}
if(player.getHealth()>0)
{
return player;
}
return enemy;
}
private void firsthitother(Warrior player,Warrior enemy)
{
System.out.println(player.getName()+"haut zu.\n");
int damage = enemy.getDamage(player.damage());
firstHitOtherToString(player, enemy, damage);
}
public void meeting()
{
this.player=this.addWarrior();
this.addEnemy();
while(player.getHealth()>0&&enemys.size()>0)
{
Warrior challenger= this.enemys.get(0);
Warrior winner = this.combad(player,challenger);
if(this.player.equals(winner))
{
this.enemys.remove(0);
}
if(this.player.getHealth()>0)
{
System.out.println("Sie haben gewonnen!");
}
else
{
System.out.println("Verlierer!");
}
}
}
public String explainStringOne()
{
return "Dein Held hat grundsätzlich 50 Leben, 50 Stärke, 50 Skill"
+"Wenn du also einen Punkt in Stärke setzt, wird der"
+"Standardwert 50 mit 2 multipliziert, was zu einem finalen Ausgangswert führt.";
}
public String warningStringMenuarena()
{
return "Deine Punkte wurden nicht richtig verteilt. Versuche es nochmal";
}
public String firstHitOtherToString(Warrior player,Warrior enemy,int damage) {
return enemy.getName()+"verliert "+damage+" Punkte."+ player.getName()+" hat "+ player.getHealth()+" Punkte."
+enemy.getName()+" hat noch "+enemy.getHealth()+" Punkte.";
}
}
package de.arenakampf.miguel.java;
import javax.swing.JOptionPane;
/*
* 26.05.20
* @author Miguel Gutierrez
*
*/
public class Warrior extends TemplateWarrior {
public Warrior(String name,int health,int strength,int skill, Armor[]armor,Weapon[]weapon)
{
super(name,health,strength,skill,armor,weapon);
}
@Override
public void addArmor(Armor[]amor, int input)
{
getArmorString();
getHelmetString();
String inputString = JOptionPane.showInputDialog("Auswahl für Kopfteil" );
int inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: armor[0]= Helmet.blackHelmet;break;
case 2: armor[0]=Helmet.blueHelmet;break; //helmet
case 3: armor[0]=Helmet.yellowHelmet;break;
}
getArmorString();
getShoulderProtectionString();
inputString= JOptionPane.showInputDialog("Auswahl für Schulterschutz:");
inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: armor[1]=ShoulderProtection.blackShoulder;break;
case 2: armor[1]=ShoulderProtection.blueShoulder;break;
case 3: armor[1]=ShoulderProtection.yellowShoulder;break;
}
getArmorString();
getChestProtectionString();
inputString= JOptionPane.showInputDialog("Auswahl für Brustschutz:");
inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: armor[2]=ChestProtection.blackChestProtection;break;
case 2: armor[2]=ChestProtection.blueChestProtection;break;
case 3: armor[2]=ChestProtection.yellowChestProtection;break;
}
getArmorString();
FoodProtectionString();
inputString= JOptionPane.showInputDialog("//Auswahl für Stiefel:");
inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: armor[3]=FootProtection.blackFootProtection;break;
case 2: armor[3]=FootProtection.blueFoodProtection;break;
case 3: armor[3]=FootProtection.yellowFoodProtection;break;
}
getArmorString();
LegProtectionString();
inputString= JOptionPane.showInputDialog("Auswahl für Beinschutz:");
inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: armor[4]=LegProtection.blackLegProtection;break;
case 2: armor[4]=LegProtection.blueLegProtection;break;
case 3: armor[4]=LegProtection.yellowLegProtection;break;
}
getArmorString();
getBracersString();
inputString= JOptionPane.showInputDialog("Auswahl für Armschienen:");
inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: armor[5]=Bracers.blackBracers;break;
case 2: armor[5]=Bracers.blueBracers;break;
case 3: armor[5]=Bracers.yellowBracers;break;
}
}
@Override
public void addWeapon(Weapon[]weopen,int input)
{
getWeaponString();
getSwortString();
String inputString= JOptionPane.showInputDialog("Auswahl für die Waffe:");
int inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: weapon[0]=Swort.blackSwort;break;
case 2: weapon[0]=Swort.blueSwort;break;
case 3: weapon[0]=Swort.yellowSwort;break;
}
getWeaponString();
getShieldString();
inputString= JOptionPane.showInputDialog("Auswahl für das Schild:");
inputInt = Integer.parseInt(inputString);
switch(inputInt)
{
case 1: weapon[1]=Shield.blackShield;break;
case 2: weapon[1]=Shield.blueShield;break;
case 3: weapon[1]=Shield.yellowShield;break;
}
}
//Getter and Setter
public Weapon[] getWeapon() {
return weapon;
}
public Weapon[]setWeapon(){
return weapon;
}
public Armor[]getArmor() {
return armor;
}
public void setArmor(Armor[]armor) {
this.armor = armor;
}
public static String getArmorString()
{
return ("Sie sind im Rüstungsmenü. Sie haben genau 6 Slots. ##|1.Slot: Kopf|2.Slot: Schulter"
+ "|3.Slot: Brust|4.Slot: Füße|5.Slot: Beine|6.Slot: Armschienen|");
}
public static String getWeaponString()
{
return "Sie sind im Waffenmenü. Sie haben genau zwei Slots für Schild und Schwert.1.Slot:Schwert|2.Slot:Schild|## ";
}
public static String getHelmetString()
{
return "Rüstungsmenü Kopf: Sie haben 3 verschieden Kopfteile zur Auswahl:"
+"1.Rüstungsteil: -Health|- Stärke|-skill"
+"2.Rüstungsteil: -Health|- Stärke|-skill"
+"3.Rüstungsteil: -Health|- Stärke|-skill";
}
public static String getShoulderProtectionString()
{
return "Rüstungsmenü Schulter: Sie haben 3 verschieden Schulterteile zur Auswahl:"
+"1.Rüstungsteil: -Health|- Stärke|-skill"
+"2.Rüstungsteil: -Health|- Stärke|-skill"
+"3.Rüstungsteil: -Health|- Stärke|-skill";
}
public static String getChestProtectionString()
{
return "Rüstungsmenü Brustschutz: Sie haben 3 verschieden Brustschutz zur Auswahl:"
+"1.Rüstungsteil: -Health|- Stärke|-skill"
+"2.Rüstungsteil: -Health|- Stärke|-skill"
+"3.Rüstungsteil: -Health|- Stärke|-skill";
}
public static String FoodProtectionString()
{
return "Rüstungsmenü Stiefelteile: Sie haben 3 verschieden Stiefelteile zur Auswahl:"
+"1.Rüstungsteil: -Health|- Stärke|-skill"
+"2.Rüstungsteil: -Health|- Stärke|-skill"
+"3.Rüstungsteil: -Health|- Stärke|-skill";
}
public static String LegProtectionString()
{
return "Rüstungsmenü Beinschutz: Sie haben 3 verschieden Beinschutzteile zur Auswahl:"
+"1.Rüstungsteil: -Health|- Stärke|-skill"
+"2.Rüstungsteil: -Health|- Stärke|-skill"
+"3.Rüstungsteil: -Health|- Stärke|-skill";
}
public static String getBracersString()
{
return "Rüstungsmenü Armschienen: Sie haben 3 verschieden Armschienen zur Auswahl:"
+"1.Rüstungsteil: -Health|- Stärke|-skill"
+"2.Rüstungsteil: -Health|- Stärke|-skill"
+"3.Rüstungsteil: -Health|- Stärke|-skill";
}
public static String getSwortString()
{
return "Rüstungsmenü Waffen: Sie haben 3 verschiedene Waffen zur Auswahl:"
+"1.Waffe: -Health|- Stärke|-skill"
+"2.Waffe: -Health|- Stärke|-skill"
+"3.Waffe: -Health|- Stärke|-skill";
}
public static String getShieldString()
{
return "Rüstungsmenü Waffen: Sie haben 3 verschiedene Schilde zur Auswahl:"
+"1.Schild: -Health|- Stärke|-skill"
+"2.Schild: -Health|- Stärke|-skill"
+"3.Schild: -Health|- Stärke|-skill";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getStrength() {
return strength;
}
public void setStrength(int strength) {
this.strength = strength;
}
public int getSkill() {
return skill;
}
public void setSkill(int skill) {
this.skill = skill;
}
//corefunction
public int damage()
{
return strength=strength*skill;
}
public int getDamage(int damage)
{
return health=health-damage;
}
}
package de.arenakampf.miguel.java;
public abstract class TemplateWarrior {
String name;
int health;
int strength;
int skill;
Armor[] armor=new Armor[6];//
Weapon[]weapon=new Weapon[2];
public TemplateWarrior(String name,int health,int strength,int skill, Armor[]armor,Weapon[]weapon)
{
this.name = name;
this.health = health;
this.strength = strength;
this.skill = skill;
this.armor = armor;
this.weapon=weapon;
}
abstract public void addArmor(Armor[] amor, int input);
abstract public void addWeapon(Weapon[]weopen,int input);
abstract public Weapon[] getWeapon();
abstract public Weapon[]setWeapon();
abstract public Armor[] getArmor();
abstract public void setArmor(Armor[] armor);
abstract public String getName();
abstract public void setName(String name);
abstract public int getHealth();
abstract public void setHealth(int health);
abstract public int getStrength();
abstract public void setStrength(int strength);
abstract public int getSkill();
abstract public void setSkill(int skill);
abstract public int damage();
abstract public int getDamage(int damage);
}
package de.arenakampf.miguel.java;
public class ShadowWizard extends Warrior{
public ShadowWizard(String name, int health, int strength, int skill, Armor[] armor, Weapon[] weapon) {
super(name, health, strength, skill, armor, weapon);
}
@Override
public int damage()
{
return super.strength=((super.strength*skill)/2);
}
public int healthByDamage()
{
return super.health= super.strength/5;
}
@Override
public int getDamage(int damage)
{
return super.health=(super.health-damage)*3;
}
}
package de.arenakampf.miguel.java;
public enum Shield implements Weapon
{
blackShield("Schwarzer Schild",8,8,8),
blueShield("Blauer Schild",8,8,8),
yellowShield("gelber Schild",8,8,8);
private String name;
private int health;
private int strength;
private int skill;
Shield(String name, int health, int strength, int skill)
{
this.name=name;
this.health=health;
this.strength=strength;
this.skill=skill;
}
@Override
public String getName(String name)
{
return name;
}
@Override
public int getHealth(int health)
{
return health;
}
@Override
public int getStrength(int strength)
{
return strength;
}
@Override
public int getSkill(int skill)
{
return skill;
}
}