cjmaster Geschrieben 13. Mai 2009 Geschrieben 13. Mai 2009 Guten tag. Ich habe in der Schule mit dem JAva Editor ein wenig "Programmiert".Also die Standart sachen wie if,else und sowas. Nun hab ich mir gedacht, zuhause dies ein wenig vortzuführen. Habe also munter drauf los getippt und kam prompt zum ersten Problem. Ich versuch hier ,ein wenig es euch begreiflich zu machen.Ich hab mir gedacht eine Art " Textadventure" zu programmieren. Also man gibt ne Vorgabe und man sagt entweder ja oder nein. Habe , da ich nichts besseres gefunden habe, es mit if und else probiert.Nur hat das ganze nicht ganz so geklappt, wie ich es mir gedacht habe. Ich kann zwar die richtige Antwort geben aber nur die Richtige. Ich lege den code mal bei, vlt hat jemand eine Lösung für mein Problem. Kann auch sein das ich das ganze falsch angegangen bin, also habt erbarmen . code: import javax.swing.*; public class versuch1 { public static void main (String[] args) { JOptionPane.showInputDialog ("Willkommmen in meinem Text Adventure.Möchtest du ein Spiel spielen? Schreibe 0 für Ja und 1 für Nein."); int x=1; if (x == 0) { JOptionPane.showInputDialog("Gut dan lasst die Spiele beginnen!Sie sind allein Zuhause und stehen gerade auf. Was möchten sie tun 0 für Frühstücken 1 für Duschen."); } else { JOptionPane.showInputDialog(" Schade!");} } } Ich freue mich über ihr hilfe. Zitieren
Mttkrb Geschrieben 13. Mai 2009 Geschrieben 13. Mai 2009 Hi, deine Eingabe landet sozusagen im Nirvana, da keine variable zum speichern angegeben wurde. Versuch das ganze erstmal konsolenbasiert zu gestalten. Das macht das ganze einfacher erstmal. import java.io.*; public class versuch1 { public static void main (String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // Ein Buffered reader mit dem Namen in um eine Zeile einzulesen int x=1; System.out.println("Willkommmen in meinem Text Adventure.Möchtest du ein Spiel spielen? Schreibe 0 für Ja und 1 für Nein."); // Ausgabe x = Integer.parseInt(in.readLine()); // Eingabe eines Integer-Wertes - Double.parseDouble(... für double wert, der eingelesen wird if (x == 0) { System.out.println("Gut dan lasst die Spiele beginnen!Sie sind allein Zuhause und stehen gerade auf. Was möchten sie tun 0 für Frühstücken 1 für Duschen."); } else { System.out.println(" Schade!");} } } { Das kannst du so zum Beispiel versuchen. Zitieren
Mttkrb Geschrieben 13. Mai 2009 Geschrieben 13. Mai 2009 Dein Problem lag einfach daran, weil x=1 gesetzt wurde und direkt danach die if-Abfrage kam. und da if(x==0) im jeden fall so ein False liefert springt das Programm gleich in den else zweig. Zitieren
cjmaster Geschrieben 13. Mai 2009 Autor Geschrieben 13. Mai 2009 Ich danke dir. Das hatt schonmal super Funktioniert. Dabei hab ich aber noch ein paar Sachen. Als 1 was mir aufgefallen ist die lezte Schleifenklammer, soll glaub ich weg oder? Dann Integer.parseInt(in.readLine()); und BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); verstehe ich leider nicht ganz. Haben diese Codes nicht druchgenommen. Fals du genug lust und Zeit hast ,kannste bitte es ein wenig leichter erklären. Und ich möchte das ganze auch ein wenig weiterführen, also wenn er die Antwort 0 nimmt das eine weitere "Geschichte" folgt, auf die man ein weiteres mal Antworten kann. Das sozusagen ein Spiel bei rauskommt. Und nochmals vielen dank für die Antwort und vorallem die schnell Antwort. Zitieren
Mttkrb Geschrieben 13. Mai 2009 Geschrieben 13. Mai 2009 Die klammern passen soweit. Immer eine auf und wieder zu. Sonst hätte schon der Compiler gemeckert. Das BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); erstellt einen Buffered Reader mit dem namen in. in ist somit ein Objekt der Klasse BufferedReader, welches aber noch nicht initialisiert ist. Damit man das "in" nun nutzen kann, muss es "konstruieren" Dafür steht das = new BufferedReader(new InputStreamReader(System.in)); nun kann man mit der Methode Readline() einen String einlesen. Damit nun die Daten in der richtigen Variable abgespeichert werden nutzt man je nach Datentyp Integer.ParseInt(); oder Short.ParseShort(); diese Methoden erstellen aus einen String einen passenden Datentyp, z.b int oder short. also nutzen wir die Methode ReadLine(); des Objektes "in" so setzt sich dann eine Zeile zum Dateneinlesen zusammen. IntegerVariable = Integer.ParseInt( in.readLine() ); ich hoffe das war jetzt nicht zuviel auf einmal. Zitieren
cjmaster Geschrieben 14. Mai 2009 Autor Geschrieben 14. Mai 2009 Gut danke. War zwar ne gute menge an Informationen aber ,dass werd ich schon "verarbeiten". Und wenn ich das ganze jetz richtig verstanden habe, müsste ich einfach nur noch die if,else codes weiterführen, um die "Geschichte" fortzuführen.Und ich bin mir sogar ziemlich sicher, das die lezte { falsch ist . Zitieren
Vandahil Geschrieben 14. Mai 2009 Geschrieben 14. Mai 2009 das letzte '{' ist auch falsch.. wahrscheinlich nur vertippt btw: dein Programm errinnert etwas an prozeduale Programmierung.. Delphi o.Ä. vorbelastet? ^^ Zitieren
cjmaster Geschrieben 14. Mai 2009 Autor Geschrieben 14. Mai 2009 Nein, nur ein wenig c++ geschnuppert hab auch leichte Lösung gefunden. Zitieren
cjmaster Geschrieben 15. Mai 2009 Autor Geschrieben 15. Mai 2009 Nun gut dan weiter ! Also ich habe jetz soweit alles fertig, aber ich würde gerne noch ein paar Extras einbauen. Mein "Programm": import java.io.*; public class test1 { public static void main (String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // Ein Buffered reader mit dem Namen in um eine Zeile einzulesen int x=1; System.out.println("Willkommmen in meinem Text Adventure.Möchtest du ein Spiel spielen? Schreibe 0 für Ja und 1 für Nein."); // Ausgabe x = Integer.parseInt(in.readLine()); // Eingabe eines Integer-Wertes - Double.parseDouble(... für double wert, der eingelesen wird if (x == 0) { System.out.println("Gut dan lasst die Spiele beginnen!Sie sind allein Zuhause und stehen gerade auf.Sie müssen schnell zu einem heutigen Meeting.Dies ist sehr wichtig für ihre Karriere.Was möchten sie tun 0 für Frühstücken 1 für Duschen."); x = Integer.parseInt(in.readLine()); if (x == 0) { System.out.println("Gute Wahl ein gutes Frühstück am Morgen weckt alle Lebensgeister.Nun sind sie Gestärkt und können den Weg zu ihrer Arbeit vortführen.Mit Welchen Fortbewegungsmittel möchten sie fahren? Wählen sie 0 für das Fahrrad und 1 für das Auto."); x = Integer.parseInt(in.readLine()); if (x == 1) { System.out.println("Sehr gut das Auto wird sie bekäm und sicher zur Arbeit bringen.Sie fahren los und kommen sehr schnell an eine Kreuzung. Wo wollen sie langfahren, schreiben sie 0 für die Brücke und 1 für den Tunnnel."); x = Integer.parseInt(in.readLine()); if (x == 1) { System.out.println("Gute Wahl, der Tunnel sieht zwar nicht besonders gut aus, ist aber sicher und wird sie schnell zur Arbeit kommen.Sie fahren lange weiter ,bis sie auf die Autobahn kommen, hier ist es nun wieder ihre Wahl. Möchten sie die Autobahn wieder verlassen und lieber durch die Dörfer? (0) Oder möchten sie auf der Autobahn (1) beleiben,es sieht schneller aus, aber der Schein trügt manchmal."); x = Integer.parseInt(in.readLine()); if (x == 0) { System.out.println("Es war eine gute Entscheidung ,über die Dörfer zu fahren. Sie machen es sich gemütlich und fahren durch idüllische Dörfer.Nach langer Fahrzeit treffen sie auf einen alten Bauer mit seiner Schafherde. Sie versperrt ihnen den Weg und es gibt auch keinen Umweg. Was wollen sie tun? Schreien sie ihn an,dass er mit seiner blöden Schafherde sich zum Teufel scheren sollte? (0) oder sind sie Lieber nett und bitten ihn, mit seiner Schafherde, ein Stück zur anderen Straßenseite zu bewegen?(1)"); x = Integer.parseInt(in.readLine()); if (x == 1) { System.out.println(" Eine weise Entscheidung! Mit alten Schafhirten ist nicht gut Kirschen essen. Nun können sie aber ihren weg fortführen und sie genießen die Landschaft.Sie kommen an eine Kirche und überlegen sich ob sei einen Abstecher machen sollten. Den Segen Gottes zu haben ist doch immer gut oder nicht?.Entscheide dich 0 für den Abstecher oder doch besser weiter fahren (1)"); x = Integer.parseInt(in.readLine()); if (x == 0) { System.out.println("Diesmal war es eine gute Entscheidung , den Segen Gottes zu empfangen er wird dir bei deinem Späteren wege und bei deine Karriere helfen.Sie fahren weiter und kommen in die Innenstadt.Irgentwie scheint das Pech sie zu verfolgen. Alle Ampeln schalten sich auf Rot wen sie anfahren.Sie rasten schon halb aus und Wünschten diese Ampeln zum Teufel (verständlich oder?), sie überlegen sich über die kleinen Nebenstraßen zu fahren.Aber ob das eine gute Idee ist entscheiden sie selber.Wollen sie in die Nebenstraßen fahren (0) oder bleiben sie lieber auf der Hauptsraße (1), treffen sie ihre Wahl wiese."); x = Integer.parseInt(in.readLine()); if (x == 0) { System.out.println("Sie kommen sehr schnell in den Nebenstraßen zu ihrem Hauptgebäude der Firma,wo du arbeitest.Ein großes Gebäude mit Zahlreichen Fenstern,du gehst durch dich Drehtür in die Eingangshalle. Schon begrüßt dich die Empfangsdame.Sie fragt, ob du ihr ein Geschenk mitgebracht hast.Erschrocken merkst du ,dass du ihr gestern versprochen hasst,ihr etwas schickes zu kaufen. Was würst du tun? Sie anlügen,dass du ihr Geschenk nur im Auto vergessen hast(0) oder sagst du ihr die Warheit,dass du einfach es Vergessen hast,durch das wichtige Meeting(1)"); x = Integer.parseInt(in.readLine()); if (x == 1) { System.out.println("Immer eine gute Entscheidun die Frau nicht anzulügen , denn sie hätte es warscheinlich sowieso schnell gemerkt, das ihr bloß geblöfft habt.Aber da du ihr die Warheit gesagt hast, sagt sie dir, dass das Meeting in dem Nebengebäude Raum 111 Stattfindet.Eine Lohnenswerte Information!Also rennst du wie der Blitz raus auf die Straße! Doch der Verkehr ist,mal wieder, Katastrophal.Du hast keine 2 Sekunden Zeit,ohne das ein Auto vorbeirauscht. Nun hasst du die Wahl,rennst du einfach rüber und hoffst das dich kein Auto ertwischt(0) oder gehst du zur 15 Meter entfernten Ampel(1),treffe eine weise Wahl,es geht immerhin hier um dein Leben. Man sollte nicht leichtsinnig damit umgehen."); x = Integer.parseInt(in.readLine()); if (x == 1) { System.out.println("Eine gute Wahl,die Ampel springt auch prompt auf Grün,als du ankommst.Du rennst hektisch auf die andere Straßenseite,in das Gebäude.Du rennst die Treppen hoch, nimst gleich 3 Stufen auf einmal , solange bis du zum Raum 111 kommst.Als du keuchent vor der Tür angelangt bist,atmest du noch einmal tief durch und schreitest ein.Es sitzen ungefähr 7 Personen, an einem Ovalen Tisch und schauen dich an.Du wirst leicht nervös und stellst dich ermstmal vor.Deine Präsentation lief ganz gut und auch der Chef, schenkte dir eine annerkenenden Blick zu.Das müsste ein gutes Zeichen sein.Nun was nun aus deiner Karriere wird, dass steht noch in den Sternen und das ist auch ein Weiters Textadventure.Aber soviel sei gesagt,wenn du es bis hier her schafst,kannst du auch noch viel mehr erreichen! Ich beglückwünsche dich zu diesem Erfolg.Ich hoffe es hatt dir spaß gemacht.Aber alles hat ein Ende nur die Wurst hat 2 .Also eine Ende, wäre kein gutes, Ende ohne ein Ende.ENDE! :D"); } else { System.out.println("Man sollte nicht leichtsinnig mit seinem Leben spielen.Du wirst glat von einem Auto angefahren und liegt im Krankenhaus."); } } else { System.out.println(" Keine gute Idee sie hatt sofort gemekrt dass du nur Blöffst.Aber dir war es auch egal.Du rennst hoch zum Meeting Raum, doch dort ist niemand. Nur ein Zettel.Dort steht drauf: Meeting an anderen Standpunkt verlegt,Empfangsdame wies bescheid.Es sieht wohl schlecht aus mit dem Meetin."); } } else { System.out.println("Die Ampeln bleiben auch Weiterhin auf Rot und sie kommen nicht mehr rechtzeitig zu ihrem Meeting"); } } else { System.out.println("Ich glaube Gott ist nicht sehr erfreut das du sein Segen nicht möchtest.Dein Auto ist rätzelhafterweise Kaputt gegangen."); } } else { System.out.println("Keine gute Idee einen alten Schafhirten zu verärgern, denn sein Schäferhund rast auf dein Auto zu und Beschädigt es so schlimm , das sie gleich in die nächste Werkstatt ihr Auto schieben müssen. Ihr Meeting muss wohl ausfallen was?!"); } } else { System.out.println("Ja der Schein trügt.Die Autobahn sehen schnell aus aber der Montagsmorgensverkehr verursacht übeln Stau. Sie kommen kein stück vorwärts"); } } else { System.out.println("Die Brücke ist keine gute Idee, sie wird wegen Wartungsarbeiten geschlossen.Nun werden sie zu spät zur Arbeit kommen.Das wird ihr Chef aber nicht sehr erfreuen."); } } else { System.out.println("Nach diesem ausgiebigen Frühstück ,sind sie zu vollgefressen, um das Rad zu nehmen."); } } else { System.out.println("Es ist zwar immer gut sich zu waschen, aber Heute ist nicht dein Glückstag.Du Rutscht auf dem boden der Dusche aus und schlägst dir den Hinterkopf auf."); } } else { System.out.println(" Schade!");} } } Ich würde jetz gerne noch einbauen , dass wenn er else trift ,also in dem falle die falsche Antwort, dass er zum Anfang geht.Und ein Counter für Fehlversuche.Ich weiß das wir sowas schon in der Schule hatten nur mit etwas ganz anderem.Mich würde es aber freuen ,wenn ihr das hier auch schafft oder mir tipps geben könnt.Freue mich schon auf eure Antwort . Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.