0 Daumen
638 Aufrufe

Frage:

Programmiere ein Inventar als Array mit 10 Plätzen, mit einem Enum in einer separaten Datei sollen Items repräsentiert werden.

In einer Methode (take()) soll nun ein zufälliges Element des Enums ins Inventar gelegt werden und anschließend noch eine seperate Methode (give(int position)) die das Item an einer bestimmten Stelle aus dem Inventar entfernt. In der main methode sollen dem Inventar 10 Items hinzugefügt werden dann soll das Inventar ausgegeben werden anschließend sollen die Items an den Stellen 2,4 und 7 aus dem Inventar entfernt werden und das Inventar soll erneut ausgegeben werden.

Mein größtes Problem ist hier wie ich auf das Enum Items in der Inventory Class zugreifen kann.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Um die Aufgabe zu lösen, müssen wir zunächst zwei Klassen erstellen: eine Inventory-Klasse und ein Items-Enum. Hier ist eine mögliche Implementierung in Java:

Items Enum

java
// Items.java

public enum Items {
    SWORD,
    SHIELD,
    POTION,
    ARMOR,
    HELMET,
    BOOTS,
    GLOVES,
    RING,
    AMULET,
    SCROLL
}


Dieses Enum repräsentiert verschiedene Gegenstände, die in das Inventar aufgenommen werden können.

Inventory Klasse

java
// Inventory.java
import java.util.Random;

public class Inventory {

    private Items[] inventory;
    private Random random;

    public Inventory() {
        this.inventory = new Items[10]; // Inventar mit 10 Plätzen
        this.random = new Random();
    }

    // Methode um ein zufälliges Item hinzuzufügen
    public void take() {
        int position = -1;

        // Finde die erste freie Position im Inventar
        for (int i = 0; i < inventory.length; i++) {
            if (inventory[i] == null) {
                position = i;
                break;
            }
        }

        if (position != -1) {
            Items item = Items.values()[random.nextInt(Items.values().length)];
            inventory[position] = item;
            System.out.println("Added: " + item + " at position " + position);
        } else {
            System.out.println("Inventory is full!");
        }
    }

    // Methode um ein Item von einer bestimmten Position zu entfernen
    public void give(int position) {
        if (position >= 0 && position < inventory.length && inventory[position] != null) {
            System.out.println("Removed: " + inventory[position] + " from position " + position);
            inventory[position] = null;
        } else {
            System.out.println("No item at position " + position);
        }
    }

    // Methode um das aktuelle Inventar auszugeben
    public void printInventory() {
        System.out.println("Current Inventory:");
        for (int i = 0; i < inventory.length; i++) {
            System.out.println("Position " + i + ": " + (inventory[i] != null ? inventory[i] : "empty"));
        }
    }

    public static void main(String[] args) {
        Inventory inv = new Inventory();

        // Füge 10 Items hinzu
        for (int i = 0; i < 10; i++) {
            inv.take();
        }
        
        // Inventar ausgeben
        inv.printInventory();
        
        // Entferne Items an den Positionen 2, 4 und 7
        inv.give(2);
        inv.give(4);
        inv.give(7);
        
        // Inventar erneut ausgeben
        inv.printInventory();
    }
}


Erklärung der Implementierung:

1. Items Enum:
- Definiert verschiedene Gegenstände, die in das Inventar aufgenommen werden können.

2. Inventory Klasse:
- Das Inventar wird als Array mit 10 Plätzen (Items[] inventory) implementiert.
- Der Random-Generator wird verwendet, um zufällige Items auszuwählen.
- Die Methode take() fügt ein zufälliges Item in die erste freie Position im Array ein.
- Die Methode give(int position) entfernt ein Item von der angegebenen Position im Array.
- Die Methode printInventory() gibt das aktuelle Inventar auf der Konsole aus.
- In der main-Methode fügen wir 10 Items dem Inventar hinzu, geben das Inventar aus, entfernen Items an den Positionen 2, 4 und 7 und geben das Inventar erneut aus.

Durch diese Struktur greift die Inventory-Klasse auf das Items-Enum zu, indem sie die values()-Methode des Enums verwendet, um alle Enum-Werte zu erhalten und ein zufälliges Item auszuwählen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community