D
David Nienhaus
Gast
Hallo, ich habe folgendes Problem:
Es geht um ein sehr simples textbasiertes Spiel mit Räumen und Gegenständen.
Ich habe eine Arraylist, welche Gegenstände beinhaltet. Gegenstand ist eine eigene Klasse mit, unter anderem, einem String Bezeichnung als Attribut.
In einer früheren Version habe ich die Gegenstände einfach als Strings in einem Array gespeichert. Jetzt wollte ich ihnen aber verschiedene Attribute geben, deshalb die eigene Klasse.
Jetzt möchte ich innerhalb einer Methode überprüfen, ob ein bestimmter Raum einen Gegenstand enthält. Das Problem ist jetzt nur, dass das Spiel so abläuft, dass man immer ein oder zwei Befehlswörter eingibt wie zum Beispiel: go north, inspect room oder take banana. Diese Strings habe ich in der früheren Version einfach genommen und geschaut ob sie in der Arraylist enthalten sind. Da die Arraylist jetzt allerdings Gegenstände und keine Strings enthält
geht das natürlich nicht mehr.
Jetzt würde ich gerne wissen, ob ihr eine elegante Methode kennt, wie ich zum Beispiel wenn banana eingegeben wurde meine Gegenstands Arraylist nach Gegenständen mit der Bezeichnung banana durchsuche. Ich habe erst überlegt ein Hilfsgegenstand zu erzeugen, aber dann habe ich ja einen weiteren Gegenstand der herumirrt ...
Es geht um ein sehr simples textbasiertes Spiel mit Räumen und Gegenständen.
Ich habe eine Arraylist, welche Gegenstände beinhaltet. Gegenstand ist eine eigene Klasse mit, unter anderem, einem String Bezeichnung als Attribut.
In einer früheren Version habe ich die Gegenstände einfach als Strings in einem Array gespeichert. Jetzt wollte ich ihnen aber verschiedene Attribute geben, deshalb die eigene Klasse.
Jetzt möchte ich innerhalb einer Methode überprüfen, ob ein bestimmter Raum einen Gegenstand enthält. Das Problem ist jetzt nur, dass das Spiel so abläuft, dass man immer ein oder zwei Befehlswörter eingibt wie zum Beispiel: go north, inspect room oder take banana. Diese Strings habe ich in der früheren Version einfach genommen und geschaut ob sie in der Arraylist enthalten sind. Da die Arraylist jetzt allerdings Gegenstände und keine Strings enthält
geht das natürlich nicht mehr.
Jetzt würde ich gerne wissen, ob ihr eine elegante Methode kennt, wie ich zum Beispiel wenn banana eingegeben wurde meine Gegenstands Arraylist nach Gegenständen mit der Bezeichnung banana durchsuche. Ich habe erst überlegt ein Hilfsgegenstand zu erzeugen, aber dann habe ich ja einen weiteren Gegenstand der herumirrt ...
Code:
private void nimmGegenstand(Befehl befehl)
{
if(!befehl.hatZweitesWort()) // wenn kein zweites Befehlswort eingegeben wurde
{
System.out.println("Was möchten Sie nehmen?");
return;
}
//Gegenstand gegenstand = new Gegenstand(befehl.gibZweitesWort());
if (aktuellerRaum.enthältGegenstand(gegenstand))
{
aktuellerSpieler.setzeInventar(gegenstand);
aktuellerRaum.entferneInhalt(gegenstand);
}
else {
System.out.println("Dieser Gegenstand existiert nicht");
}
}
Code:
public boolean enthältGegenstand(Gegenstand bezeichnung)
{
return inventar.hatGegenstand(bezeichnung);
}
Code:
public boolean hatGegenstand(Gegenstand bezeichnung)
{
if (inventarListe.contains(bezeichnung))
return true;
else
return false;
}