Frage von XenonXDX, 32

Kann mir einer sagen wie ich in diesem kleinem Java TextQuest Spiel weiterkommen?

Habe angefangen Java zulernen und bin gerade bei einem kleine TextQuest Spiel, nun bin ich aber an dem Punkt das ich ein Inventar brauche und natürlich auch etwas hinein legen kann. Kann mir da jemand helfen ?

import java.util.Scanner;

public class TextQuest{

 int stage = 0;
 boolean alive = true;
 boolean sword, rope, torch, apple = false;
 String userName = "";
 String keyboard = "";
 
 
 
 public void processInput(){
     
    
    String tmp = keyboard;
    if( tmp.equalsIgnoreCase("look")  ){
        stageInfo();
    }
    else if ( tmp.equalsIgnoreCase("quit") ){
    }       
             
 }   
 
 public void stageInfo(){
     
     if( stage == 0 ){
         System.out.println(userName+" you are in a dark room.");
         System.out.println("There are doors facing north and east.");
         System.out.println("On a table in the middle there is:");
         if( sword == false ){
             System.out.println("\ta Sword");
         }
         if( rope == false){
             System.out.println("\ta Rope"); 
         }
         if( torch == false){
             System.out.println("\ta Torch");
         }
          if( apple == false){
              System.out.println("\ta Apple"); 
         }
        
         
        }
     

}

   public static void main( String[] args){
    
    
    
   TextQuest myGame = new TextQuest();
   Scanner in = new Scanner(System.in);
   
   
   
   System.out.println("Hail Adventurer!  Welcome to TextQuest.");
   System.out.println("What are you called ?");
   System.out.print("> ");
   myGame.keyboard = in.nextLine();
   myGame.userName = myGame.keyboard;
   System.out.println();
   System.out.print("Welcome, "+myGame.userName);
   System.out.println("! Your adventure begins now.");



      while( myGame.alive ){
        myGame.stageInfo();
        System.out.print("> ");
        myGame.keyboard = in.nextLine();
        myGame.processInput();      
          
          
          
          
      }

}

}

Antwort
von BigReddy, 25

Ich würde eine Liste nutzen, in die ich Objekte einer Klasse Item gebe. Item beinhaltet dann z.B. Itemname und Anzahl/Existenz des Items.
Schau dir doch einfach mal Java Listen an: http://java.soeinding.de/content.php/ArrayListBeispiel
Sehr leicht zu bedienen und ideal für dein Inventar ^^

P.S. Schick mir doch bitte mal das fertige Spiel :D

Kommentar von XenonXDX ,

Kannst du mir vielleicht ein beispiel geben ?

Kommentar von BigReddy ,

Initialisierung der Liste:
private List<Item> inventory = new ArrayList<Item>();

Item ins Inventar aufnehmen:
inventory.add(item);

Item aus dem Inventar löschen:
inventory.remove(item);

Item im Inventar suchen:
for(Item temp : inventory) {
 if(temp.getItemName().equals("sword")) {
    /** **/
 }
}

Kommentar von XenonXDX ,

Ich meine eigentlich so das,dass schon im Code ist (oder wo ich ihn einfügen muss). Das ziel soll sein das man in der konsole sachen aufheben und in inventarg geben kann und wieder rausholen

Kommentar von BigReddy ,

Es tut mir leid, aber ich gebe eigentlich nur Hilfe zur Selbsthilfe. Wie du den Code einsetzten musst, habe ich schon geschrieben. Wie genau du das ganze umsetzt ist deine Aufgabe ^^

Kommentar von XenonXDX ,

Ok,wie du meinst

Kommentar von XenonXDX ,

Ich versteh halt leider nicht was du meinst damit <item>

Kommentar von BigReddy ,

Listen benötigen die Information welche Art von Objekt sie Speichern soll. Das geschieht mit <Item>. Die Klasse Item soll von dir geschrieben werden und die oben angegebenen Informationen in Form von Variablen enthalten.

Kommentar von Eismensch ,

Zum Thema "listen", schau mal hier:

http://openbook.rheinwerk-verlag.de/javainsel/javainsel_13_002.html#dodtp5e6355b...

Ist eigentlich so "DAS" Referenzbuch für Anfänger.

Das eigentliche Problem an deiner Frage ist, dass wir nicht genau wissen, wie weit dein Wissenstand der Sprache ist. Je nachdem wie gut du schon zurecht kommst, kann man dir Verschiedene Ansätze empfehlen. Nur als Beispiel, um zu verdeutlichen was ich damit meine, könnte man ein Inventar als Liste, Array, Set, Map oder als eigenständige Klasse implementieren. Je nachdem wie das Inventar funktionieren soll. Der Einfachste Ansatz wird tatsächlich wohl eine Liste oder Array sein.

Kommentar von KnusperPudding ,

Die Antwort inklusive dem Beispiel ist absolut brauchbar. 

Allerdings:

Ich meine eigentlich so das,dass schon im Code ist 

Bedeutet, dass man dir das komplett fertige Ergebnis präsentieren soll und das stößt nicht nur auf bei dem Antwortgeber sondern auch bei anderen, die sich dazu bereit erklären würden zu helfen auf Unverständnis.

Es ist eine Sache wenn du etwas nicht verstehst und Hilfe benötigst aber eine andere wenn man dir das Ergebnis präsentieren soll.

Wenn du einen Kuchen backen willst und nicht weiter kommst, kannst du auch nicht einfach dem Bäcker die Schüssel hinstellen und sagen: "hier mach mal bitte für mich". 

Kommentar von XenonXDX ,

Ja ok,aber danke

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten