0 Daumen
471 Aufrufe

Ene Mene Mu und raus bist du

Bisher hatten wir uns mit den Methoden neuerAnwaerter und zurRanglisteHinzufuegen beschäftigt. Beim Anlegen eines neuen Anwärters sind wir wie folgt vorgegangen:

public void neuerAnwaerter(String pName, int pHandicap){
  Spieler neuerSpieler = new Spieler(pName, pHandicap);
  anwaerter.enqueue(neuerSpieler);
}

In der zweiten Zeile wurde ein neues Spielerobjekt erzeugt, in der dritten Zeile wurde es der anwaerter-Queue mit der enqueue-Methode hinzugefügt. Voilä: Die Warteliste hat einen neuen Kandidaten.

Beide Methoden haben auf die Attribute der Klasse Spielerrangliste zugegriffen, aber bei der zurRanglisteHinzufuegen-Methode haben wir auch das erste mal eine List-Methode verwendet.

public void zurRanglisteHinzufuegen()(
  Spieler neuerSpieler = anwaerter.front();
  rangliste.append(neuerSpieler);
  anwaerter.dequeue();
}

In der ersten Zeile wird der erste Anwärter aus der Queue genommen und eine lokale Variable mit Namen neuerSpieler zwischengespeichert. In Zeile zwei wird dieser Spieler an die List hinten angehängt. Schließlich wird er noch aus der Queue entfernt.

Die nächste Aufgabe wird ein bisschen schwieriger. Es geht um das Löschen eines bestimmten Spielers aus der Rangliste. Hierzu muss der betroffene Spieler zunächst in der Liste gefunden werden. Den Namen des Spielers bekommen wir als Parameter mitgeteilt.

Aufgabe 1 (Gruppenarbeit, 5 Minuten)
Zeichnen Sie eine beispielhafte Rangliste auf ein Schmierblatt. Entwickeln Sie eine Idee für ein Verfahren, das einen bestimmten Spieler aus der Liste findet und dann löscht. Klären Sie auch detailliert solche Fragen wie: Wo soll die Suche beginnen? Was passiert, wenn der Spieler nicht gefunden wird? Wann ist das Ziel erreicht?

Aufgabe 2 (Einzelarbeit 5 Minuten)
Beschreiben Sie das Verfahren in Stichworten, Umgangssprache, einem Pap-Diagramm oder einem Pseudocode.

Aufgabe 3 (Gruppenarbeit 3 Minuten) Schauen Sie in die Dokumentation der Klasse List und suchen Sie heraus, welche Methoden Sie wahrscheinlich benötigen.

Aufgabe 4 (Einzelarbeit 10 Minuten) Implementieren Sie die Methode public void spielerEntfernen (String pName) in der Klasse Spielerrangliste.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Aufgabe 1 (Gruppenarbeit, 5 Minuten)

Um das Verfahren zum Löschen eines bestimmten Spielers aus der Liste zu skizzieren, stellen wir uns eine beispielhafte Rangliste mit mehreren Spielernamen und ihren jeweiligen Handicaps vor:

- Spieler 1 (Handicap 15)
- Spieler 2 (Handicap 10)
- Spieler 3 (Handicap 20)
- Spieler 4 (Handicap 5)
- Spieler 5 (Handicap 12)

Das Verfahren zum Finden und Löschen eines bestimmten Spielers könnte folgende Schritte beinhalten:

1. Starten Sie die Suche am Anfang der Liste. Dies stellt sicher, dass jeder Spieler berücksichtigt wird.
2. Vergleichen Sie den Namen des aktuellen Spielers mit dem gesuchten Namen.
3. Wenn ein Match gefunden wird:
- Löschen Sie den Spieler aus der Liste.
- Beenden Sie die Suche.
4. Wenn kein Match gefunden wird:
- Gehen Sie zum nächsten Spieler in der Liste.
5. Wiederholen Sie die Schritte 2 bis 4, bis das Ende der Liste erreicht ist.
6. Wenn der Spieler nicht gefunden wird:
- Optional: Geben Sie eine Meldung aus, dass der Spieler nicht gefunden wurde.

Dieser Prozess gewährleistet, dass alle Spieler in der Rangliste berücksichtigt werden und dass der zu entfernende Spieler effizient gefunden und gelöscht wird.

Aufgabe 2 (Einzelarbeit 5 Minuten)

Das Verfahren in Stichworten:

- Beginne die Suche beim ersten Spieler in der Liste.
- Vergleiche den Namen jedes Spielers mit dem gesuchten Namen.
- Wenn gefunden:
- Lösche den Spieler aus der Liste.
- Wenn nicht gefunden:
- Fahre fort mit dem nächsten Spieler, bis die Liste durchlaufen ist.
- Optional: Rückmeldung geben, wenn der Spieler nicht in der Liste ist.

Aufgabe 3 (Gruppenarbeit 3 Minuten)

Für die Implementierung des Löschvorgangs in der Liste könnten die folgenden Methoden der Klasse List hilfreich sein:

- size() oder length() - um die Länge der Liste zu ermitteln.
- get(int index) - um auf ein Element an einer bestimmten Position zuzugreifen.
- remove(int index) oder eine ähnliche Methode - um ein Element an einer bestimmten Position zu entfernen.

Die genauen Methodennamen und Funktionalitäten können je nach Implementierung der List-Klasse variieren.

Aufgabe 4 (Einzelarbeit 10 Minuten)

Nachfolgend ist eine mögliche Implementierung der Methode spielerEntfernen in Java angegeben:

java
public void spielerEntfernen(String pName) {
    // Iteriere durch die Liste der Spieler
    for (int i = 0; i < rangliste.size(); i++) {
        // Zugriff auf den Spieler an der i-ten Position
        Spieler aktuellerSpieler = rangliste.get(i);
        
        // Überprüfe, ob der Name des aktuellen Spielers dem gesuchten Namen entspricht
        if (aktuellerSpieler.getName().equals(pName)) {
            // Entfernen des Spielers aus der Liste, wenn ein Match gefunden wurde
            rangliste.remove(i);
            // Sobald der Spieler entfernt wurde, beende die Methode
            return;
        }
    }
    // Optional: Hinweismeldung, falls der Spieler nicht gefunden wurde
    System.out.println("Spieler " + pName + " nicht in der Rangliste gefunden.");
}


Hierbei wird angenommen, dass die Klasse Spielerrangliste eine Liste namens rangliste hat, welche Objekte der Klasse Spieler enthält. Es wird auch angenommen, dass die Klasse Spieler eine Methode namens getName() hat, die den Namen des Spielers zurückgibt.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community