 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
09.11.2005, 06:48
|
#1
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Array durchsuchen
Hallo an Alle,
will mich auch mal wieder "sehn" lassen, und brauch da auch mal kurz nen Denkanstoß.
Wie kann man ein Array auf seinen Inhalt durchsuchen, gibt es hier eine spezielle methode oder gehts nur mit Array.splice().
Hintergrund: Soll nen Adventkalender machen, der bei jedem Aufruf seine Türchen(24 MC's) an anderen Positionen ablegt. Diese Positionen lege ich vorher fest, da ich eine genaue Aufteilung von 4 Spalten und 6 Reihen habe.
Nun dachte ich, nimmst einfach random(1,24) und ne for Schleife, die 24 mal durchlaufen wird. Bei jedem durchlauf der Schleife wird eine Zufallszahl ermittelt und in das Array eingetragen. Nun sollen aber doppelte Werte im Array vermieden werden, da ja sonst mehere "Türchen" auf der selben Position landen könnten. Deshalb muß ich das Array vorher durchsuchen, ob die Zufallszahl schon drinne ist, wenn nicht dann eintragen, ansonsten neue Zufallszahl generieren.
Und genau hier fehlt mir mir noch eine ordentliche Lösung. Wer hätte nen Tip, bin für alles Dankbar...
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
09.11.2005, 08:39
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Leider nicht so komfortabel, wie mit PHP, aber mittels Prototype kann man das schon vereinfachen.
PHP-Code:
// Prototype Array-Suche
Array.prototype.in_array = function(s:String) {
var a:Array = this.slice();
var c:Object;
while (c=a.pop()) {
if (s == c) {
return true;
}
}
return false;
};
// Array definieren
myArr = new Array("Ich", "bin", "der", "Inhalt", "vom", "Array");
// Anwendungsfälle
var needle:String = 'Inhalt';
trace('Kommt "'+needle+'" in dem Array: ('+myArr.join()+') vor? -> Antwort: '+myArr.in_array(needle));
var needle:String = 'flash';
trace('Kommt "'+needle+'" in dem Array: ('+myArr.join()+') vor? -> Antwort: '+myArr.in_array(needle));
|
|
|
09.11.2005, 12:12
|
#3
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo Stephan
schon lange nicht mehr gesehen, ich hoffe es ist alles okay bei dir 
Wenn ich dich richtig verstanden habe, willst du ein Array neu sortieren, da habe ich doch was für dich.
PHP-Code:
Array.prototype.randomize = function() {
return this.sort(function (a, b) {
return (Math.floor(Math.random()*2) == 0) ? 1 : -1;
});
};
und der Aufruf
PHP-Code:
deinArray.randomize();
|
|
|
09.11.2005, 20:55
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Da danke ich Euch für die schnelle Hilfe.
Hab mal wieder viel zu umständlich gedacht. Kann ja mein Array gleich fest anlegen, wenn sich am eigentlichen inhalt nix mehr ändert und hab die random Geschichte gleich raus gelassen
Sieht jetzt so aus:
PHP-Code:
var tueren:Array = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24);
trace(tueren);
trace("Türen sind:"+tueren.length);
Array.prototype.randomize = function() {
return this.sort(function (a, b) {
return (Math.floor(Math.random()*2) == 0) ? 1 : -1;
});
};
tueren.randomize();
trace(tueren);
trace("Anzahl: "+tueren.length);
Werde euch den Kalender hier ranhängen wenn er fertig ist, damit alle was von haben.
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
27.11.2005, 19:47
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Hallo zusammen,
hat zwar ein bißchen länger gedauert, aber hier in der Anlage mal der vorerst fertige Kalender.
Wer Lust hat, kann Ihn ja noch ein bißchen aufpeppen, Code kürzen oder so..
zur Funktion:
Der Sitebesucher muß sich mit einer gültigen E-Mail Adresse und einem Namen anmelden. Jede E-Mail Adresse wird via PHP in einer DB gespeichert. Jeder Spieler kann pro Tag einmal sein Glück probieren. Ist die Adresse noch nicht bekannt oder wurde die Adresse am heutigen Tag noch nicht aufgerufen, so beginnt das Adventskalender-Gewinnspiel. Nun kann der Spieler durch klick auf die Felder 1-24 versuchen, drei Gewinne zu ergattern. Nach dem dritten Klick werden Ihm die eigentlichen Gewinnzahlen, ein "Sorry, leider nix gewonnen", oder sein Gewinn mit der Trefferanzahl ausgegeben. Die 24 Zahlen werden bei jedem Aufruf zufällig angeordnet. Auch werden die drei Gewinnzahlen jedesmal neu ermittelt. Im Falle eines Gewinns, bekommt der Spieler eine Benachrichtigung an seine angegebene Mail-Addresse.
Bei Interesse poste ich gerne auch noch die PHP-Dateien, und die MySQL-Tabelle.Ihr könnt Euch das ganze auch schon mal Life-Anschauen, der Link ist noch nicht offiziell auf der Seite eingebunden.
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
Geändert von StephanF (25.01.2006 um 23:02 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:22 Uhr.
|
 |