zufällige einblendung einer grafik pro stunde
Roger
- programmiertechnik
0 Matthias Jütte0 Roger
0 David Tibbe0 Roger
0 Tom0 Roger
0 Gernot Back
moin!
ich möchte $anzahl einblendungen pro stunde, einer grafik realisieren. dabei soll die grafik aber nicht $anzahl mal hintereinander angezeigt werden und dann "aufgebraucht" sein, sondern soll zufällig auf 60min verteilt werden.
mir fehlt der lösungsansatz. wie stelle ich das an?
es kommt nicht darauf an, das exakt $anzahl einblendungen vorkommen. es können ruhig auch weniger sein.
gruß.
roger.
Hallo Roger!
Wie wär's mit der Definition eines Intervalls in der Kombination mit dem Speichern der Uhrzeit der letzten Anzeige. Dann kannst du bei jedem _möglichen_ Aufruf der Grafik überprüfen, ob der Intervall bereits überschritten wurde (Jetzt - letzte Anzeige) und die Grafik dann neu anzeigen lassen, Zeit wieder abspeichern und das Spiel von vorne beginnen lassen.
Gruß
Matthias
moin!
das is ja schonmal ein ansatz! danke!
aber das problem dabei ist: es ist berechenbar. da ja ein intervall immer eine definierte zeitgröße enthält...
gruß.
roger.
Hallo!
Dann addiere doch auf Zeit oder Intervall mit einer Zufallsfunktion was drauf, schon hast du Variation drin ;-)
Gruß
Matthias
Hallo Roger,
ich möchte $anzahl einblendungen pro stunde
Und wo sollen diese eingeblendet werden? Und in welcher Sprache programmierst du?
mir fehlt der lösungsansatz. wie stelle ich das an?
Das hängt davon ab, was du für Möglichkeiten hast. Präzisiere diese doch etwas.
Grüße
David
moin!
Und wo sollen diese eingeblendet werden? Und in welcher Sprache programmierst du?
auf einer html seite.
wenn, dann würde ich das gern mit php (sicherlich in verbindung mit mysql) lösen.
Das hängt davon ab, was du für Möglichkeiten hast. Präzisiere diese doch etwas.
jetzt müsstest du noch präzisieren, was du mit möglichkeiten meinst :)
auf jeden fall besitze ich schon mal die möglichkeit mir vermitteltes zu begreifen :D
gruß.
roger.
Hello Roger,
ich möchte $anzahl einblendungen pro stunde, einer grafik realisieren. dabei soll die grafik aber nicht $anzahl mal hintereinander angezeigt werden und dann "aufgebraucht" sein, sondern soll zufällig auf 60min verteilt werden.
mir fehlt der lösungsansatz. wie stelle ich das an?
es kommt nicht darauf an, das exakt $anzahl einblendungen vorkommen. es können ruhig auch weniger sein.
Da habe ich mir gerade erst eine kleine Lösung für eine Webseite überlegt, die einen Banner odre eine Leiste mit vielen Vorschaubildern anzeigt. Hinter den Bildern liegt dann jeweils ein Link für die Großanzeige oder eine Themenseite.
Ich habe da nur ein Kontroll-File deklariert, das verschiedene Daten hält:
$_filedata = array();
$_filedata['meta'] = array();
$_filedata['meta']['lastidx'] = 0; # letzte Indexnummer
$lastidx =& $_filedata['meta']['lastidx']; # Referenz
$_filedata['data'] = array();
$_data =& $_filedata['data'];
$_data['calls'] = array(); # Zähler der bisherigen Bildaufrufe
$_data['write'] = array(); # Zähler der Writes ohne ['calls']
$_data['name'] = array(); # Basename der Bilddatei
$_data['width'] = array(); # reale Bildbreite
$_data['height'] = array(); # reale Bildhöhe
$_data['link'] = array(); # Href für Bildlink
$_data['target'] = array();
$_data['alt'] = array();
$_data['time'] = array(); # Letzter Aufruf
$_data['first'] = array(); # Eintrag in Liste am
$_data['mtime'] = array(); # Aktualisierungsdatum des Bildes
$_data['enabled'] = array(); # Anzeige erlaubt
$_data['checked'] = array(); # Admin-Flag für "kontrolliert"
Der Index des Bildes wird als numerische Key hinten angehängt.
$_data['calls'][$key]++; # Zähler der bisherigen Bildaufrufe incrementieren
Das hat den Vorteil, dass man jede benannte Dimension des Arrays z.B. mit
asort($_data['calls'],SORT_NUMERIC);
sortieren kann.
Man kann dann auch eine 'recall-Sperre' setzen, hier in $_data['time'].
Das Bild wird dann eben erst wieder angezeigt, wenn es in den letzen x Sekunden nicht gezeigt wurde.
Je mehr Bilder man hat, desto seltener wird diese Sperre entscheidend sein. Denn die Auswahl wird nach der Häufigkeit der Anzeigen gesteuert.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
moin!
wowwowow!
das is ja schon wieder ne ganze menge input ;)
Je mehr Bilder man hat, desto seltener wird diese Sperre entscheidend sein. Denn die Auswahl wird nach der Häufigkeit der Anzeigen gesteuert.
und deswegen habe ich ja das problem. es geht nämlich um nur eine einblendung. ansonsten soll nix angezeigt werden. (0|1)
wenn ich jetzt per rand() 1 oder 0 generieren lasse, sind die einblendungen ja ziemlich schnell aufgebraucht. wenn ich das jetzt aber per zeitintervall mache, ist das mir zu berechnend (glaub ich).
gruß.
roger.
Hallo Roger,
also in JS würde ich das folgendermaßen machen:
Ich würde alle Bildquelen-Referenzen in ein Array schreiben.
Dieses würde ich neu mischen, d.h. dadurch, dass ich aus dem bestehenden Array mit einem Zufallsgenerator ein neues Array erzeuge. Das letzte oder erste Element dieses Arrays würde ich mit der Methode push() oder pop() entfernen und auf der Webseite als Grafik einblenden. Nach Ablauf des Intervalls könnte man das wiederholen. Wenn alle Elemente aus dem Array gelöscht sind, beginnt alles wieder von neuem.
So eine Array-Mischmaschine habe ich z.B. in meinen Vokabelmemory-Spielen eingebaut.
http://www.sprachlernspiele.de/match/latin1.html?eng
function wuerfel () {
zahl=-1;
do {
zahl=parseInt(Math.random()*kenn.length);
} while((isNaN(zahl))||(zahl<0));
return zahl;
}
var mix = new Array ();
for (i=0; i<deinBasisArray.length ; i++ ) {
mix[i] = wuerfel();
for (j=0 ;j<i ;j++ ) {
if(mix[i]==mix[j]){
i--;
}
}
}
Gruß Gernot