[Java] Wiederholfunktion
lima-city → Forum → Programmiersprachen → Java
ahnung
allzuviel
anhaltspunkt
anregung
beitrag
button
denke mal
dokumentation
erstmal tausend
gedankenansto
gleiche karte
halbjahr
listen
nchste mal
rekursion
schleifen
steige
verfgung
vielen dank
vorgeben
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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) -
"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 -
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 -
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 -
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 -
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 -
Punkt 5 ist neu, den kannte ich noch nicht ^^'
-
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 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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage