myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [JAVA] Hilfe für die Ausgabe (https://mygully.com/showthread.php?t=2797924)

Meisterroper 06.01.13 16:46

[JAVA] Hilfe für die Ausgabe
 
Hey leute,
ganz kurz und knapp ich will in einer klasse, ein wort aus einer textdatei lesen und dieses dan raten lassen, also hangman.
hier der code aus der main:
und hier der code aus der klasse woerter:


Also wenn ihr mir sagen könnten was bei dem hier {System.out.print(z1.zufallsWort());} falsch ist währe das schon ziemlich gut. Ich wette es ist nur n banaler fehler, aber ich komm im moment echt nicht drauf.

Thelvan 06.01.13 17:54

Was genau geht denn nicht?
Code:

int zahl = (int)(i*Math.random());
String zufallswort = woerter[zahl];

Hier multiplizierst du die Anzahl der Zeilen in deiner Datei mit einer zufälligen zahl.
Und diese benutzt du dann als Index für dein Array.

Der Index muss aber zwischen 0 und 29 liegen, da du dein Array weiter oben so definiert hast.

Dabei wirst du dann wohl eine Out of range exception bekommen.

Guck dir mal die Überladungen von math.random an, da solltest du finden, was dir weiterhilft

Meisterroper 06.01.13 22:51

Ne damit is kein problem, Ich habs schon gelöst, aber danke für die hilfe.
Das problem hatte ein kollege von mir auch, die lösung war wie gedacht ziemlich banal.
Die text datei darf bei Eclipse nicht im selben ordner wie die .java datei liegen, wieso auch immer :D das war das einzigste problem,

Meisterroper 07.01.13 19:06

Ok Leute, ich hab den ganzen shit jetzt irgendwie hinbekommen jetzt hängts mir nurnoch an der while und ich weiß echt net warum !!!
Code:

import java.util.Scanner;
public class Hangman {
   
    public static void main (String args[]){
    Scanner eingabe = new Scanner (System.in);
    int j = 0;
    int los;
    String wort;
    Woerter z1 = new Woerter();
    String zufallswort = z1.zufallsWort();
    System.out.print("Wilkommen bei Hangman, zum starten 1, zum beenden 2 eingeben. \n");
    los = eingabe.nextInt();
    if (los == 2)
    {
        System.exit(0);
    }
    System.out.print("Es ist ganz einfach wenn du einen Falschen Bustaben eingegeben hast sagt dir das Programm wieviel Stellen das wort enthält, Wenn du alles bustaben erraten hast, gib das wort noch einmal kommplett ein, dann hast du es geschaft. Auser natürlich du erhängst dein Menchen vorher. Viel Spaß\n");
    do{
    System.out.print("Gebe einen Bustaben ein: ");
    wort = eingabe.next();
    if (zufallswort.contains(wort)) {
    for (int i = 0; i < zufallswort.length(); i++) {
    if (wort.equals(String.valueOf(zufallswort.charAt(i))))
    {
        System.out.println("Buchstabe an Position " + (i + 1));
    }
    }
    }
    else
    {
        System.out.println("Das wort ist " + zufallswort.length() +" Bustaben lang\n");
    j++;   
    switch(j)
    {
    case 1: System.out.print("________________"); break;
    case 2: System.out.print("      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"_______|________"); break;
    case 3: System.out.print("      _________"+"\n      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"_______|________"); break;
    case 4: System.out.print("      _________"+"\n      |        |"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"_______|________"); break;
    case 5: System.out.print("      _________"+"\n      |        |"+"\n"+"      |        O"+"\n"+"      |"+"\n"+"      |"+"\n"+"      |"+"\n"+"_______|________"); break;
    case 6: System.out.print("      _________"+"\n      |        |"+"\n"+"      |        O"+"\n"+"      |        |"+"\n"+"      |"+"\n"+"      |"+"\n"+"_______|________"); break;
    case 7: System.out.print("      _________"+"\n      |        |"+"\n"+"      |        O"+"\n"+"      |        |"+"\n"+"      |        /|\\"+"\n"+"      |"+"\n"+"_______|________"); break;
    case 8: System.out.print("      _________"+"\n      |        |"+"\n"+"      |        O"+"\n"+"      |        |"+"\n"+"      |        /|\\"+"\n"+"      |        / \\"+"\n"+"_______|________"); break;
    }
    }
    }
    while (zufallswort  != wort|| j < 8);
    System.out.print("\nENDE!");
   
    }
}

was ist bloß falsch an der while

NetWebs 07.01.13 19:23

Sorry, aber du scheinst dich keine minutelang mit den Grundlagen auseinander gesetzt zu haben, weil du anscheinend zu faul bist, und lässt andere dann deine 'Fragen' beantworten.

Nimm dir ein Buch, einen halben Tag Zeit und lerne selbstständig!
Die Fragen, die Du stellst lassen sich in Minuten selbst beantworten, wenn man SELBST will!

Meisterroper 07.01.13 19:52

Mag zwar alles schön und gut sein, Ich will auch net das ihr mir hier das programm fix und fertig serviert sonst hätte ich das auch gefragt ! Und ich will es auch selber lösen und versuche es auch schon die ganze zeit aber im moment raff ich einfach garnet wo mein problem ist, das der wenn das wort das selbe ist wie das zufallswort, aus der do while schleife raushüpft und das programm beendet
wäre dir sehr verbunden, wenn du mir das beantworten könntest denn im moment, gibt der mir weder fehler noch richtig aus sondern geht einfach wieder ganz an den anfag.

Madddin_89 07.01.13 21:09

Auf den ersten Blick hätte ich gesagt:

Nimm statt "!=" einfach mal ".equals"

Meisterroper 07.01.13 21:39

hab ich alles versucht und hat net geklappt, durch einen netten Kollegen hier hab ich das schon so beantwortet bekommen. also kann das alles hier getrost ignoriert werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.