Frage:
Ich soll weitere Ideen sammeln, für die Erwiterung des Funktionsumfages der Software und diese Methode Implementieren, welche die Rangliste oder die Warteliste manipuliert oder einfcah darauf zugreift.
Ich verzweifle! Ich hatte an die Methode z.B gedacht: austrittSpieler, also wenn ein Spieler dem Golfclub austreten möchte, doch die ist schon indirekt implementiert, da die Warteliste.., bereits einen Spieler entfernen kann.. egal welche Ideen ich habe, keiner passt.
Code:
public class Spielerrangliste{
private List<Spieler> rangliste;
private Queue<Spieler> anwaerter;
public Spielerrangliste(){
rangliste = new List<>();
anwaerter = new Queue<>();
dummySpielerEinfuegen();
}
public void dummySpielerEinfuegen(){
Spieler s1 = new Spieler("Fuerstin Pueckler",200);
Spieler s2 = new Spieler("General Wolfenstein",250);
Spieler s3 = new Spieler("Prof. Dr. Schlunz",600);
rangliste.append(s1);// Ranglste hängt S1 an
rangliste.append(s2);// ""S2
rangliste.append(s3);//""S3
Spieler s4 = new Spieler("Norbert Neumann", 700);
anwaerter.enqueue(s4);
Spieler s5 = new Spieler("Natascha Nocheine", 750);
anwaerter.enqueue(s5);
}
public void neuerAnwaerter(String pName, int pHandicap){
Spieler neuerSpieler = new Spieler(pName, pHandicap);
anwaerter.enqueue(neuerSpieler);
}
public void zurRanglisteHinzufuegen()
{
if(!anwaerter.isEmpty()){//mind. 1 Anwaerter muss vorhanden sein
Spieler neuerSpieler = anwaerter.front();// zwischengespeichert
anwaerter.dequeue();// anwaerter gelöscht-von Waeteliste entfernt
rangliste.append(neuerSpieler);
}
}
public String listeToString(){
rangliste.toFirst();
String ergebnis = "";
while (rangliste.hasAccess()) {
Spieler aktSpieler = rangliste.getContent();
ergebnis = ergebnis + aktSpieler.getName() + " : " + aktSpieler.getHandicap() + "\n";
rangliste.next();
}
return ergebnis;
}
public String anwaerterToString(){
Queue<Spieler> temp = new Queue<>();//neue Warteliste
String ergebnis="";
while (!anwaerter.isEmpty()) {//nicht leer
Spieler aktSpieler = anwaerter.front();//Zwischengespeichert
temp.enqueue(aktSpieler);//der neuen Liste hinzugefügt
anwaerter.dequeue();//anwaerter gelöscht-entfernt
ergebnis = ergebnis + aktSpieler.getName() + "\n";
}
anwaerter = temp;
return ergebnis;
}
public void spielerEntfernen(String pName){
rangliste.toFirst();
Spieler aktSpieler;
while (rangliste.hasAccess()){
aktSpieler = rangliste.getContent();
if (aktSpieler.getName().equals(pName)){
rangliste.remove();
return;
}
rangliste.next();
}
}
public void handicapAendern(String pSpieler, int pNeuesHandicap){
rangliste.toFirst();
Spieler aktSpieler;
while (rangliste.hasAccess()){
aktSpieler= rangliste.getContent();
aktSpieler.setHandicap(pNeuesHandicap);
return;
}
//anwaerter = temp;
//return ergebnis;
}
public void sortieren(){
List neueListe = new List();
Spieler aktSpieler ;
Spieler besterSpieler;
while (!rangliste.isEmpty()){
rangliste.toFirst();
besterSpieler = rangliste.getContent();
rangliste.next();
while (rangliste.hasAccess()){
aktSpieler = rangliste.getContent();
if (besterSpieler.getHandicap() > aktSpieler.getHandicap()){
besterSpieler = aktSpieler;
}
rangliste.next();
}
neueListe.append(besterSpieler);
rangliste.toFirst();
while(rangliste.getContent() != besterSpieler){
rangliste.next();
}
rangliste.remove();
}
rangliste = neueListe;
}
}
public class Spieler{
private String name;
private int handicap;
public Spieler(String pName, int pHandicap){
name = pName;
handicap = pHandicap;
}
public void setHandicap(int pHandicap){
handicap = pHandicap;
}
public int getHandicap(){
return handicap;
}
public String getName(){
return name;
}
public void setName(String pName){
name = pName;
}
}