xMiauz Geschrieben 12. Januar 2011 Teilen Geschrieben 12. Januar 2011 Hallo. Ich bin in der Anfangsphase. & Programmiere gerade das Zahlenraten. Und das Soll die "Versuche" runterzählen. Also wenn man einmal geraten hat das man dann einen versuch weniger hat. Aber aus irgendeinem Grund Tut's die nur einmal und kein weiteres. Hier mal der Code : //Erzeugt eine zufaellige ganze Zahl im Bereich [0; max ] public static int wuerfeln(int max) { return (int) (Math.random() * max); } // wandelt eine zeichenkette in eine double zahl um public static double sToD(String s) { if (s == null) { return Double.NaN; } double d; s = s.trim(); if (s.equals("")) { s = "0"; } s = s.replace(',', '.'); try { d = Double.parseDouble(s); } catch (NumberFormatException e) { d = Double.NaN; } return d; } %> <% String sZaehler = request.getParameter("zaehler"); if (sZaehler == null) { sZaehler = "5"; } double dZaehler = sToD(sZaehler); int iZaehler = 0; if (!Double.isNaN(dZaehler)) { iZaehler = (int) dZaehler; } String sKnopf = request.getParameter("knopf"); if (sKnopf == null) { sKnopf = "Erster Seitenaufruf"; } if (sKnopf.equals("Raten!")) { iZaehler = iZaehler - 1; // ++iZaehler } if(iZaehler==0) { System.out.println("Du hast verloren! "); } %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Zahlenraten</title> </head> <body bgcolor="#BFBFBF"> <div align="center"> <br><br><br><br><br><br><br><h1>Zahlenraten</h1> <input type="hidden" name="Geheim" value="<%=wuerfeln(99)%>" /><br><br> <form action="index.jsp" method="post"> Anzahl der Versuche : <input type="text" name="zaehler" value="<%=iZaehler%>" disabled="false"/><br> Ihre Zahl : <input type="text" name="" value="" /><br> <input type="submit" name="knopf" value="Raten!"/><br> <input type="submit" name="knopf" value="Neustart"/><br> </form><br><br> <br><br>TEST<br> <%=sKnopf%> || <%=iZaehler%> </div> </body> </html> Ich hoffe Das ist in dieser Abteilung hier Richtig :hells: + Danke für jede Hilfe. Mfg xMiauz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 12. Januar 2011 Teilen Geschrieben 12. Januar 2011 Wo ist denn deine Schleife, die die verbleibenden Versuche runterzählt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 13. Januar 2011 Autor Teilen Geschrieben 13. Januar 2011 Das passiert ja automatisch immer wenn man auf den knopf "Raten!" klickt. Hat ja schonmal funktioniert, dann hab ich in dem programm mit dem ich das schreibe auf "Format" geklickt, das rückt alles dann automatisch ein undso. Danach ging's nicht mehr. Und ich konnte es nicht mehr wiederherstellen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kylt Geschrieben 13. Januar 2011 Teilen Geschrieben 13. Januar 2011 Hallo, das eine JSP alleine auf Grund der Umformatierung nicht funktioniert, ist mir bisher nicht unter gekommen. Kann es sein das ein einfaches "<%" ganz oben fehlt? - Da es außerhalb des HTML Segmentes liegt, kannst du das ja ohnehin nicht sehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 14. Januar 2011 Autor Teilen Geschrieben 14. Januar 2011 Hallo, das eine JSP alleine auf Grund der Umformatierung nicht funktioniert, ist mir bisher nicht unter gekommen. Kann es sein das ein einfaches "<%" ganz oben fehlt? - Da es außerhalb des HTML Segmentes liegt, kannst du das ja ohnehin nicht sehen. Ohh. Tut mir leid. Das hab ich nur irgendwie nicht in den Code kopiert. Aber ich hab's da so steht MIT dem "<%" hab's hier nur ausversehn nicht mit reinkopiert. Sorry, mein Fehler. Hmn. Aber das komische ist ja.. das es nur 1 <- mal "-1" rechnet und dann nicht mehr. Egal wie oft ich da auf "Raten!" klicke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 14. Januar 2011 Teilen Geschrieben 14. Januar 2011 Dann zeig doch mal den Code-Abschnitt, wo runter gezählt wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 14. Januar 2011 Autor Teilen Geschrieben 14. Januar 2011 Dann zeig doch mal den Code-Abschnitt, wo runter gezählt wird. <% String sZaehler = request.getParameter("zaehler"); if (sZaehler == null) { sZaehler = "5"; } double dZaehler = sToD(sZaehler); int iZaehler = 0; if (!Double.isNaN(dZaehler)) { iZaehler = (int) dZaehler; } String sKnopf = request.getParameter("knopf"); if (sKnopf == null) { sKnopf = "Erster Seitenaufruf"; } if (sKnopf.equals("Raten!")) { iZaehler = iZaehler - 1; // ++iZaehler %> Da wird runtergezählt. eigentlich ab dem "String sKnopf = request.getParameter("knopf");" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 14. Januar 2011 Teilen Geschrieben 14. Januar 2011 Dann verfolg den Wert von iZaehler doch mal zurück. Wo kommt der her? iZaehler = (int) dZaehler; Wo kommt dZaehler her? double dZaehler = sToD(sZaehler); Wo kommt sZaehler her? String sZaehler = request.getParameter("zaehler"); Weiter zurück lässt sich das hier nicht verfolgen, da du nicht mehr Code gepostet hast. Schau dir den Rückgabewert von der Methode getParameter() an usw. Noch eine kleine Anmerkung: Dein Quelltext ist leider ganz grausam. Du erzeugst einen String, der (vermutlich) einen numerischen Wert bekommt, bastelst dir daraus einen Double und daraus wiederum einen Integer und prüfst vor jeder Umwandlung, ob noch alles ok mit dem Wert ist. Wozu diese Umstände? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 14. Januar 2011 Autor Teilen Geschrieben 14. Januar 2011 An Ulfmann. Du scheinst ahnung zu haben. Ich nicht so. ^^ Lern's grad in der Schule. Was würdest du mir denn empfehlen wie ich das amchen sollte ? + Danke für deine Hilfe. MfG xMiauz. P.S. Der ganze Code steht ganz oben. den hab ich zu Anfang gepostet. Das ist der ganze. Mehr hab ich nicht. + Wie gesagt das hat so sogar mal funktioniert, und dann hab ich i.was "kaputt" gemacht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 14. Januar 2011 Teilen Geschrieben 14. Januar 2011 Das kann nie und nimmer der ganze Code sein. Es fehlt Klassendeklaration, Einstiegspunkt und Objektinitialisierungen (Bsp.: von der Variable "request", die kommt aus dem nichts oder wie?!). Mit Servlets hab ich mich noch nicht befasst. Aber die Methode getParameter() aus dem Interface ServletRequest, wie ich stark vermute... Returns: a String representing the single value of the parameter Ich vermute in dieser "Zuordnung" den Fehler. Überprüf das mal (ist aber wie gesagt nur eine Vermutung, da dies Thema auch so ziemlich unbekannt für mich ist). Hier noch ein brauchbarer Link: The Java Servlet API White Paper Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 14. Januar 2011 Autor Teilen Geschrieben 14. Januar 2011 Ich kenn mich nicht so gut aus wie du. Aber. Mein Lehrer hat mir und meiner klasse das vorgeführt. Auch das mit dem "request" genauso angewandt. Und alles hat funktioniert. + Mit diesen speziellen Fachwörtern versteh ich's nicht wirklich. :hells: + Doch das ist der Ganze Code. Naja, der muss ja säter noch zahlen vergleichen und all sowas. Aber bis jetzt müsst er doch wenigstens die "Versuche" runterzählen. Da er schon 1mal "einen versuch" abzieht. Das problem ist doch. Das es kein 2tes mal passiert. !? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 14. Januar 2011 Teilen Geschrieben 14. Januar 2011 Das problem ist doch. Das es kein 2tes mal passiert. !? Sondern? Bekommst du beim ersten [zweiten] Klick die AusgabeDu hast verloren! auf der Konsole? Dann sollte ja klar sein, warum bzw. wo der Fehler liegt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 14. Januar 2011 Autor Teilen Geschrieben 14. Januar 2011 Sondern? Bekommst du beim ersten [zweiten] Klick die Ausgabe auf der Konsole? Dann sollte ja klar sein, warum bzw. wo der Fehler liegt. Das ist ja eine "Webpage" und dann steht da halt " Versuche : 5" Beim ersten mal klicken auf den button "Raten!" steht dann bei versuche nur noch 4. Wenn ich dann aber Noch einmal auf "Raten!" klicke steht da immernoch 4. Statt 3 <-. WEil, eigentlich muss es ja immer weiter und weiter runterzählen. Das "du hast verloren" solls ja nur ausgeben wenn die "versuche" auf 0 sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 14. Januar 2011 Teilen Geschrieben 14. Januar 2011 ja, weil du keine schleife hast, die die verbleibenden versuche runterzählt! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 14. Januar 2011 Autor Teilen Geschrieben 14. Januar 2011 ja, weil du keine schleife hast, die die verbleibenden versuche runterzählt! Ok. ich glaub dir mal. Wie würde das dann aussehen in diesem fall ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 14. Januar 2011 Teilen Geschrieben 14. Januar 2011 JavaScript ? Wikipedia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xMiauz Geschrieben 16. Januar 2011 Autor Teilen Geschrieben 16. Januar 2011 Hab's geschafft. Was genau jetzt der fehler war hab ich schon vergessen. Schon einige Tage her. Und ich hab schon weiter an dem Spiel gearbeitet. Und auf ein neues Problem gestoßen. In einem Feld soll eine Zahl frei wählbar sein. Die ist bei mir aber auf 99. [ hab ich auf 99 gesetzt. ] Wie krieg ich's in diesem Fall hin das ich sie frei wählen kann. und wenn ich dann die buttons betätige das die zahl danach nicht wieder sofort 99 ist. sonder erst durch den vergleich läuft. Hier der Code: <%! //Erzeugt eine zufaellige ganze Zahl im Bereich [0; max ]. public static int wuerfeln(int max) { return (int) (Math.random() * max); } // wandelt eine zeichenkette in eine double zahl um. public static double sToD(String s) { if (s == null) { return Double.NaN; } double d; s = s.trim(); if (s.equals("")) { s = "0"; } s = s.replace(',', '.'); try { d = Double.parseDouble(s); } catch (NumberFormatException e) { d = Double.NaN; } return d; } %> <% // Die zahl die frei gewählt werden kann bzw sollte. String sZahl = request.getParameter("zahl"); double dZahl = sToD(sZahl); int iZahl = (int) dZahl; if (Double.isNaN(dZahl)) { iZahl = 99; } // Die Versuche. String sZaehler = request.getParameter("zaehler"); double dZaehler = sToD(sZaehler); int iZaehler = (int) dZaehler; if (Double.isNaN(dZaehler)) { iZaehler = 10; } if (iZaehler == 1) { sZaehler = "disabled"; sZahl = "Sie Haben Verloren."; } // Ausgabe ob die "frei wählbare Zahl" der geheimen Zahl entspricht. if (Math.random() > iZahl) { sZahl = "Ihre Zahl ist kleiner als die Geheime."; } else if (Math.random() < iZahl) { sZahl = "Ihre Zahl ist größer als die Geheime."; } else { sZahl = "Sie haben gewonnen"; sZaehler = "disabled"; } // Nebeninfo. + Ausgabe wenn man verloren hat. String sInfo = request.getParameter("info"); if (sInfo == null) { sInfo = "Viel Erfolg beim raten!"; } if (iZaehler == 1) { sInfo = "Sie haben verloren!"; } // "Aufgaben" der Buttons String sKnopf = request.getParameter("knopf"); if (sKnopf == null) { sKnopf = "Erster Seitenaufruf"; } if (sKnopf.equals("Raten!")) { iZaehler = iZaehler - 1; } if (sKnopf.equals("Neustart")) { iZaehler = 10; } %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Zahlenraten</title> </head> <body bgcolor="#BFBFBF"> <h1>Zahlenraten</h1><br> <ul type="disc"> <li><b><u>Vorraussetzungen:</u></b></li> <li>Du kannst lesen. </li> <li>Du bist ein humanes Individuum.</li> <li>Du weisst was "human" bedeutet.</li> <li>Du hast keine Angst vor Knöpfen.</li> </ul> <br><br> <input type="hidden" name="Geheim" value="<%=wuerfeln(99)%>" /><br><br> <form action="NEUzahlenraten.jsp"> Ihre Versuche : <br><input type="text" size="44" name="zaehler" value="<%=iZaehler%>"/><br> Ihre Zahl : <br><input type="text" size="44" name="myZahl" value="<%=iZahl%>" /><br><br> Info: || <%=sInfo%> ||<br> Info 2: || <%=sZahl%><br> <input type="submit" name="knopf" value="Raten!" <%=sZaehler%>/> || <input type="submit" name="knopf" value="Neustart"/><br> </form><br><br> <br><br>TEST<br> || sknopf: <%=sKnopf%> || iZaehler: <%=iZaehler%> || dZahl: <%=dZahl%> || sZahl: <%=sZahl%> || sInfo: <%=sInfo%> || </body> </html> MfG xMiauz. P.S. : Danke an alle die mir Tipps gegeben haben und oder versucht haben das problem zu lösen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.