kostenloser Webspace werbefrei: lima-city


[Java] Wiederholfunktion

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    crisscross

    crisscross hat kostenlosen Webspace.

    Hallo Lima-City.

    Ich gehöre zu den Leuten, die Informatik für das 2. Halbjahr hätten abwählen sollen, es aber nicht gemacht haben. Wir sollen jetzt ein eigenes Projekt starten, was dann als Testersatzleistung zählt. Ich hab mich für ein 17 und 4 entschieden.
    Bis jetzt kann mein Applet 32 Jpegs laden und aus diesen via 32 x 2 if-Bedingungen und 2 Zufallszahlen 2 zufällige zeichnen. Ich denke mal, dass man es umständlicher als ich nicht machen kann, aber anders konnte ich es eben nicht. Das Ding soll nun aber nicht zwei mal die gleiche Karte ausspucken, da soll jetzt sowas kommen wie "if Zufall1=Zufall2 machnochmaldasmitdemZufallszahlauswählen" und das in einer Art Schleife, bis er halt 2 verschiedene Karten gefunden hat. Dass er 2 gleiche Karten auswählt ist zwar sowieso eher unwahrscheinlich, aber es soll eben auch unmöglich werden.

    Kurz und bündig:

    Er soll also 1 Zufallszahl erstellen, danach eine 2. Zufallszahl, die mit der ersten abgleichen und dann im Falle Zufall1=Zufall2 nochmal die Zahl Zufall2 suchen.
    Wie mach ich das? Ich bin zu blöd, um da was bei google zu finden, weil ich nicht weiß, nach was ich suchen soll. "Wiederholfunktion" gibt mir jedenfalls keine anständigen Ergebnisse.

    Vielen Dank im Vorraus

    crisscross
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Pseudocode:

    zufall1=zufallsfunktion();
    zufall2=zufallsfunktion();
    while(zufall1==zufall2)zufall2=zufallsfunktion();

    Und das ganze in eine entsprechende Funktion packen und ggf noch die Rückgabewerte festlegen (z.B. ein 2-elementiges Array)
  4. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    "Rekursion" wäre wohl das Stichwort gewesen.

    Sowas in der Art:
    <?php
    
    public bool randomRecursion(int zahlZumVergleichen)
    {
      int rand1 = rand(0, 32) //im Mom. keine Ahnung, wie man in Java Zufallszahlen macht^^
      if(rand1 == zahlZumVergleichen)
        return (randemRecursion(zahlZumVergleichen));
      else 
        return true;
    }
    
    
    ?>

    Keine Ahnung, ob das funktioniert, aber soll auch nur ein Gedankenanstoß sein ;)

    Und Rekusion sollte bei Google und Wikipedia auch was gutes ergeben.



    MfG
  5. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Wie wärs mit:

    int zufall1, zufall2;
    Random r = new Random();
    zufall1 = r.nextInt();
    zufall2 = r.nextInt();
    while(zufall1==zufall2) {
      zufall2 = r.nextInt();
    }


    ¤dit: menno, zu langsam :-(

    Beitrag geändert: 17.6.2007 22:10:57 von kochmarkus
  6. Autor dieses Themas

    crisscross

    crisscross hat kostenlosen Webspace.

    Okay, schonmal vielen Dank dafür. Ich glaube ich steige durch die letzte Antwort noch am besten durch. Würde das auch eigentlich einbauen können.
    Ich komme aber sonst irgendwie nicht mehr weiter. Mein Quellcode ist 783 Zeilen lang und wahrscheinlich das umständlichste bischen, was je in Java programmiert wurde. Zudem klappt es nicht. :(.
    Das Problem sind irgendwie die Buttons. Nachdem die drin waren, konnte man den Rest nicht mehr sehen. Also davor kamen 2 zufällige Karten, mit den Buttons nurnoch 2 Buttons. Woran liegt das? Und warum kann ich zwar einfach einen drawRect-Befehl in die if-Schleife bei Paint (siehe Dokumentation) einbauen, aber nicht meine ewige if-Kette aus if Zahl3==12 drawImage(diesekarte)?

    Meinen besten Dank an denjenigen, der sich meinen durch Unfähigkeit zum Monstercode gewandelten Programmfetzen ansieht.

    EDIT: Der Monstercode wurde von mir auf Hinweis von Puni gelöscht. Ich bitte vielmals um Entschuldigung, ich wusste es einfach nicht. Habe mir aber auch nicht die Mühe gemacht, nach solchen Vorgaben zu suchen. Nun gut, ich denke mal, dass der schönere vom evil-devil ausreicht, um meinen nicht mehr zur Verfügung zu stellen.
    In diesem Zuge erstmal tausend Dank an evil-devil!! Ich hoffe das hat dich nicht allzuviel zeit gekostet. Ich muss jetzt mal sehen, wie ich da "einarbeiten" werde.
    Beitrag geändert: 18.6.2007 20:50:39 von crisscross

    Beitrag geändert: 19.6.2007 19:41:30 von crisscross
  7. e********l

    So, hier das ganze mal ein bisschen gestrafft. Hab es nicht getestet aber es sollte dir einen guten Anhaltspunkt geben. Und schnapp dir ein Buch zu Java...bei deinem Code wird einem ganz anders...

    Hier gehts zu dem Code: http://nopaste.info/7f881416d9.html

    Beitrag geändert: 19.6.2007 16:37:31 von evil-devil
  8. p**i

    Moin,

    crisscross ... das nächste Mal bitte den Regelpunkt Nr. 5 unter der Liste der Dinge,
    die man nicht machen sollte, durchlesen.
    Hier nochmal der Link: http://www.lima-city.de/boards/thread/58347

    Ich bitte doch sehr darum ... vielleicht kannst Du Deinen Post bitte noch editieren.

    Gruß,
    Puni
  9. e********l

    Punkt 5 ist neu, den kannte ich noch nicht ^^'
  10. Autor dieses Themas

    crisscross

    crisscross hat kostenlosen Webspace.

    So, das Progrämmsche is dann auch schon seit Längerem fertig. Funktioniert ganz prima, habe noch ein paar mal im java-forum.org bei kleineren Problemen gefragt. Da ist das nicht so eng mit Codeschnipseln ;). Vom Lehrer gabs eine 1 auf das Programm :biggrin: von daher auch noch mal vielen Dank für die Hilfe und die Anregungen (insbesondere evil-devils "beinahe-pseudo-code", der einiges vereinfacht hat).

    Wer nun auch mal dieses einzigartige, geniale und unglaubliche Programm ansehen möchte, der kann das hier tun:

    http://crisscross.lima-city.de/sundv/

    Wer möchte, dem schicke ich auch noch die Bilder zu.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!