OOP

Buroto

Mitglied
Hallo zusammen,
Ich habe einen Spiel "Schlabberwack" programmiert wo eine Population von Ungeheuern, den sogenannten Schlabberwacks.
Ein Schlabberwack hat eine Farbe, ein Geschlecht und einen inneren Zustand: hungrig oder nicht.
Auf Anfrage teile er seine Eigenschaften und seinen Zustand mit. Wenn er gefüttert wird und hungrig ist, bedanke er sich mit dem Satz „Hmm, ein Bauer!“, wenn er nicht hungrig ist, antworte er auf die Fütterung mit „Danke -schon gespeist.Als Zusatz soll es möglich sein, die Anzahl der Schlabberwacksbeim Start festzulegen. Der Zustand soll nicht zwischen den Starts persistiert werden
Das Hauptprogramm soll 3 Schlabberwackserzeugen, Ihnen Eigenschaften zuweisen, füttern und ihre Zustände abrufen.

Also ich habe die Monsters bzw schlabberwacks ins array gepackt die frage hier :
ich wollte meinen Code Testen also meinen Methoden aber krieg ich nur die ID von dem

Klasse Monster

Java:
import java.util.Random;
public class Monsters {
    public static String farbe;
    public static String geschlecht;
     String answer,feedStitutuion;
    static boolean zuStand;
    static boolean isHungry;
    public static Random random = new Random();
    public Monsters() {
        this.farbe = farbe;
        this.geschlecht = geschlecht;
    }
    public  String Zustandstaat(){
        zuStand = random.nextBoolean();
        if ( zuStand = true ){
            answer = "hungry";
        }else {
            answer= " not hungry";
        }
        return answer;
    }
    public String Feedstatus (){
        isHungry = random.nextBoolean();
        if (zuStand == isHungry == true) {
            feedStitutuion = "hmm,einbauer";
        }else{
           feedStitutuion = "Danke , schon gespeist" ;
        }
        return  feedStitutuion;
    }
}

Klasse gameablauf

Code:
import java.util.Random;
import java.util.Scanner;

public class gameablauf{
    String[] colors = {"red","black","gold","blue"};
    String[] gesch = {"männlich","weiblich","ohneangabe","divers"};
    Random r = new Random();
    int Monstersinput ;
    Scanner sc = new Scanner(System.in);
    public Monsters[] Monstersbydefault() {
        Monsters m1 = new Monsters();
        m1.farbe = String.valueOf(r.nextInt(colors.length));
        m1.geschlecht = String.valueOf(r.nextInt(gesch.length));
        m1.Zustandstaat();
        Monsters m2 = new Monsters();
        m2.farbe = String.valueOf(r.nextInt(colors.length));
        m2.geschlecht = String.valueOf(r.nextInt(gesch.length));
        m2.Zustandstaat();
        Monsters m3 = new Monsters();
        m3.farbe = String.valueOf(r.nextInt(colors.length));
        m3.geschlecht = String.valueOf(r.nextInt(gesch.length));
        m3.Zustandstaat();
        return new Monsters[] {m1,m2,m3};
    }
    public Monsters[] Monstergenerator(int n) {
        Monsters [] monsterarray = new Monsters[n];
        if (Monstersinput >0){
            for (int i = 0 ; i < n  ; i++) {
                    Monsters monsters = new Monsters();
                    monsters.farbe = String.valueOf(r.nextInt(colors.length));
                    monsters.geschlecht = String.valueOf(r.nextInt(gesch.length));
                    monsters.Zustandstaat();
                    monsterarray [i] = monsters ;
            }
            }
        return monsterarray;
    }

}

Main Klasse

Code:
import static java.lang.System.*;
public class Main {
    public static void main(String[] args) {
        gameablauf mon = new gameablauf();
        Monsters[] monsterarr;
        for (Monsters monsters : monsterarr = mon.Monstersbydefault()) {
            out.println(Monsters.geschlecht);
        }
         }
}

1669795816586.png
1669795926963.png
1669796000408.png
Angabe die ich kriege

1669796027227.png
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Bei Referenzen ist es die typische Ausgabe von toString: Es wird die Klasse gefolgt von @ und dem Hashcode ausgegeben.

Bei Arrays solltest Du Dir einfach einmal die Klasse Arrays ansehen. Diese bietet viele hilfreiche Methoden u.s. die toString Methode.
Bei Klassen: Damit da eine sinnvolle Ausgabe kommt, muss die Methode toString überschrieben werden.

Ansonsten das übliche: Code bitte nicht als Bilder sondern in Code-Tags posten. Dazu einfach den Knopf </> links oberhalb des Eingabebereichs nutzen.
 

Buroto

Mitglied
Bei Referenzen ist es die typische Ausgabe von toString: Es wird die Klasse gefolgt von @ und dem Hashcode ausgegeben.

Bei Arrays solltest Du Dir einfach einmal die Klasse Arrays ansehen. Diese bietet viele hilfreiche Methoden u.s. die toString Methode.
Bei Klassen: Damit da eine sinnvolle Ausgabe kommt, muss die Methode toString überschrieben werden.

Ansonsten das übliche: Code bitte nicht als Bilder sondern in Code-Tags posten. Dazu einfach den Knopf </> links oberhalb des Eingabebereichs nutzen.
done habe das Code impliementiert
 

Neue Themen


Oben