PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
Variablen-Frage an die Profis...
Beitrag
<blockquote data-quote="h_seldon" data-source="post: 786925" data-attributes="member: 10803"><p><strong>AW: Variablen-Frage an die Profis...</strong></p><p></p><p>Hallo,</p><p></p><p>vielleicht irgendwie so etwas:</p><p></p><p>[PHP]//max Anzahl Zufallswerte</p><p>var nMaxZufall:Number = 25;</p><p>//Hilfsmittel, um unelegant, aber einfach zulässige Zufallswerte zu ermitteln </p><p>var aMoeglichZufall:Array = [];</p><p>//enthält die eigentlichen Zufallswerte</p><p>var aZufall:Array = [];</p><p>//Reihenfolge, die nicht auftreten darf</p><p>var aReihenfolge:Array = [2, 6, 7, 14, 15, 16, 17, 18, 19, 20, 21];</p><p>//anzahl der gewünschten Zufallswerte</p><p>var nZufallAnzahl:Number = 10;</p><p>//Hilfsarray gefüllt mit allen zulässigen Werten</p><p>for (var i:Number = 1; i<=nMaxZufall; i++) {</p><p> aMoeglichZufall.push(i);</p><p>}</p><p>//dies und das</p><p>for (i=0; i<nZufallAnzahl; i++) {</p><p>//Zufallszahl zwischen 0 und Gesamtlänge des Hilfsarrays</p><p>//wird als Indexzugriff auf das Array der zulässigen Werte verwendet</p><p>//stellt nicht selbst die Zufallszahl dar!</p><p> var nNum:Number = Math.floor(Math.random()*aMoeglichZufall.length);</p><p>//ab dem zweiten Zufallswert kann es eine verbotene Reihenfolge geben</p><p> if (i>1) {</p><p>//dann müssen wir aMoeglichZufall[nNum] mit der verbotenen Reihenfolge //vergleichen</p><p> for (var j:Number = 1; j<aReihenfolge.length; j++) {</p><p>//sind beide Werte gleich ...</p><p> if (aMoeglichZufall[nNum] == aReihenfolge[j]) {</p><p>// ... schauen wir nach, ob der zuvor gespeicherte Wert</p><p>//in der verbotenen Reihenfolge an der aktuellen Stelle - 1 auftaucht</p><p> if (aZufall[i-1] == aReihenfolge[j-1]) {</p><p>//testweise eingefügt, um per trace kontrollieren zu können</p><p> var nDoppelt:Number = aZufall[i-1];</p><p> trace("vorher: "+nDoppelt+", "+aMoeglichZufall[nNum]);</p><p>//solange der aktuelle ermittelte Wert in der verbotenen Reihenfolge enthalten</p><p> while (aMoeglichZufall[nNum] == aReihenfolge[j]) {</p><p>//wird neuer Zufallswert für den Indexzugriff ermittelt</p><p> nNum = Math.floor(Math.random()*aMoeglichZufall.length);</p><p> }</p><p>//zur Kontrolle</p><p> trace("nachher: "+nDoppelt+", "+aMoeglichZufall[nNum]); </p><p> }</p><p> }</p><p> }</p><p> }</p><p>//nun können wir den gefundenen Wert in das Array mit den Zufallszahlen </p><p>//eintragen und ihn gleichzeitig aus dem Array mit den möglichen</p><p>//Werten löschen, so dass er nicht erneut ermittelt wird</p><p> aZufall.push(aMoeglichZufall[nNum]);</p><p> aMoeglichZufall.splice(nNum, 1);</p><p>}</p><p>//zur Kontrolle</p><p>trace(aReihenfolge);</p><p>trace(aZufall);</p><p>trace("-----------------");[/PHP]</p><p></p><p>Das ist zugegebenermaßen unsauber und unelegant (z.B. bricht die Schleife nach der Ermittlung innerhalb von while nicht nach dem Finden eines korrekten Wertes ab, die Zufallszahlen könnten hübscher auf doppelte Zahlen kontrolliert werden etc.), aber es müsste eigentlich klappen. Wäre das, was mir spontan einfällt ...</p><p></p><p></p><p>Viel Spass</p></blockquote><p></p>
[QUOTE="h_seldon, post: 786925, member: 10803"] [b]AW: Variablen-Frage an die Profis...[/b] Hallo, vielleicht irgendwie so etwas: [PHP]//max Anzahl Zufallswerte var nMaxZufall:Number = 25; //Hilfsmittel, um unelegant, aber einfach zulässige Zufallswerte zu ermitteln var aMoeglichZufall:Array = []; //enthält die eigentlichen Zufallswerte var aZufall:Array = []; //Reihenfolge, die nicht auftreten darf var aReihenfolge:Array = [2, 6, 7, 14, 15, 16, 17, 18, 19, 20, 21]; //anzahl der gewünschten Zufallswerte var nZufallAnzahl:Number = 10; //Hilfsarray gefüllt mit allen zulässigen Werten for (var i:Number = 1; i<=nMaxZufall; i++) { aMoeglichZufall.push(i); } //dies und das for (i=0; i<nZufallAnzahl; i++) { //Zufallszahl zwischen 0 und Gesamtlänge des Hilfsarrays //wird als Indexzugriff auf das Array der zulässigen Werte verwendet //stellt nicht selbst die Zufallszahl dar! var nNum:Number = Math.floor(Math.random()*aMoeglichZufall.length); //ab dem zweiten Zufallswert kann es eine verbotene Reihenfolge geben if (i>1) { //dann müssen wir aMoeglichZufall[nNum] mit der verbotenen Reihenfolge //vergleichen for (var j:Number = 1; j<aReihenfolge.length; j++) { //sind beide Werte gleich ... if (aMoeglichZufall[nNum] == aReihenfolge[j]) { // ... schauen wir nach, ob der zuvor gespeicherte Wert //in der verbotenen Reihenfolge an der aktuellen Stelle - 1 auftaucht if (aZufall[i-1] == aReihenfolge[j-1]) { //testweise eingefügt, um per trace kontrollieren zu können var nDoppelt:Number = aZufall[i-1]; trace("vorher: "+nDoppelt+", "+aMoeglichZufall[nNum]); //solange der aktuelle ermittelte Wert in der verbotenen Reihenfolge enthalten while (aMoeglichZufall[nNum] == aReihenfolge[j]) { //wird neuer Zufallswert für den Indexzugriff ermittelt nNum = Math.floor(Math.random()*aMoeglichZufall.length); } //zur Kontrolle trace("nachher: "+nDoppelt+", "+aMoeglichZufall[nNum]); } } } } //nun können wir den gefundenen Wert in das Array mit den Zufallszahlen //eintragen und ihn gleichzeitig aus dem Array mit den möglichen //Werten löschen, so dass er nicht erneut ermittelt wird aZufall.push(aMoeglichZufall[nNum]); aMoeglichZufall.splice(nNum, 1); } //zur Kontrolle trace(aReihenfolge); trace(aZufall); trace("-----------------");[/PHP] Das ist zugegebenermaßen unsauber und unelegant (z.B. bricht die Schleife nach der Ermittlung innerhalb von while nicht nach dem Finden eines korrekten Wertes ab, die Zufallszahlen könnten hübscher auf doppelte Zahlen kontrolliert werden etc.), aber es müsste eigentlich klappen. Wäre das, was mir spontan einfällt ... Viel Spass [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
Variablen-Frage an die Profis...
Oben