Volledige versie bekijken : loterij
aceka
%Europe/Berlin %514 %2005, 13:20
hoi allemaal
even wennen nu ff wat is veranderd maar het komt vast wel weer allemaal goed
ik zit met een vraag en heb al tutorials gezocht maar kan er moeilijk een vinden
weet er iemand een waar ik een loterij machine kan maken
dus ik geef een x aantal nummer in en die nummers worden op een willekeurige manier getrokken en natuurlik mag het niet zo zijn dat een getal 2 maal getrokken word
weet eiamd een tutorial hier over of kan en wil iemand mij helpen
gr harold
XemonerdX
%Europe/Berlin %522 %2005, 13:32
Je zou de nummers in een array kunnen gooien en deze array shufflen. Zie voor een shuffle manier bijv hier (http://proto.layer51.com/d.aspx?f=147).
TrueChaoZ
%Europe/Berlin %549 %2005, 14:10
maar je zou toch ook gewoon een array kunnen maken met alle getallen daarin...
en dan random 1tje eruittrekken en vervolgens degene die eruit gekozen is uit de array verwijderen en dan weer random een getal trekken enzovoorts...
Ingrediënten:
- forloop die een array maakt met de benodigde getallen (ik neem aan dat het bijv. 1-100 is)
- bovenstaande array kopieer je naar een nieuwe tijdelijke array (of voor elke loting laat je een nieuwe array aanmaken met het forloopje)
- op de array voer je een Math.random() uit, bijv.
w = array.length - 1;
z = Math.round(Math.random() * w);
z is dan je willekeurige key in de array en is altijd een geldige key in je array.
- je past z toe op de array, array[z]
- en daarna verwijder je de key z uit de array, array.splice(start:Number, deleteCount:Number), dus dat wordt dan array.splice(z,1)
- hierna kan de volgende trekking beginnen
Ik denk dat dit wel moet werken, mocht je het uitproberen laat even weten of het een beetje werkt. Succes.
aceka
%Europe/Berlin %907 %2005, 22:46
bedankt
ik heb ondertussen een loterijtje werkend gekregen
maar nog niet helemaal hoe ikhet wil
het gaat hierom
het is bedoeld voor trekkingvan loterij kaarten die verkocht worden
op elke kaart staan 4 nummers die beginnen bij bijv. nr 2001 4001 6001 en 8001 dit zijn de nummers op 1 kaart
dus op kaart 2 staan dan 2002 4002 6002 en 8002
enz enz
hoe kan ik deze nummers in een array zetten zonder ze handmatig allemaal in te moeten voeren
en zonder dat dan ook bijv nummer 100 word getrokken dus alleen de nummer tussen 2000 en 8999
is hier een manier voor ?
mvg harold
aceka
%Europe/Berlin %923 %2005, 23:09
en nog iets wat ik vergeten ben
is he tmogelijk dat de getrokken nummer meteen in een variabele gezet worden dus onthouden of iets in die zin zodat ik deze na de trekking kan uitprinten ?
vast bedankt
harold
Jordy
%Europe/Berlin %925 %2005, 23:12
Misschien in een .TXT bestandje zetten :). Dat je ze daar naar toe schrijft, de getrokken getallen.
Moet je wel php gebruiken, maar er zjin zat tutorials die zoiets uitleggen :)
aceka
%Europe/Berlin %943 %2005, 23:39
php wat is dat ??? nee ik ken dat wel van horen zeggen maar ben daar al helemaal een leek in maar niet te beroerd om het te leren
hou het voorlopig liever even bij flash en as maar mss is het een optie als het echt niet anders kan
harold
TrueChaoZ
%Europe/Berlin %950 %2005, 23:49
bedankt
het is bedoeld voor trekkingvan loterij kaarten die verkocht worden
op elke kaart staan 4 nummers die beginnen bij bijv. nr 2001 4001 6001 en 8001 dit zijn de nummers op 1 kaart
dus op kaart 2 staan dan 2002 4002 6002 en 8002
enz enz
hoe kan ik deze nummers in een array zetten zonder ze handmatig allemaal in te moeten voeren
en zonder dat dan ook bijv nummer 100 word getrokken dus alleen de nummer tussen 2000 en 8999
is hier een manier voor ?
je zegt dus dat alle nummers liggen tussen 2000 en 9000 dus de array moet gevuld worden met nummers tussen de 2000 en 9000, dus dan zou de forloop er zo uitzien:
<FOUT>var lotery_arr:Array = new Array();
var ticketstart:Number = 2000;
var ticketend:Number = 9000;
var j:Number = ticketstart;
for (var i = 0; j < ticketend; i++) {
lotery_arr[i] = j;
j++;
}</FOUT>
var lotery_arr:Array = new Array();
var ticketstart:Number = 2000;
var ticketend:Number = 9000;
var i:Number = 0;
for (var j = ticketstart; j < ticketend; j++) {
lotery_arr[i] = j;
i++;
}
ik weet eigenlijk niet zeker of dat kan >>> for (var i = 0; j < ticketend; i++) {
maar het is het proberen waard, en daarna kan je gewoon de rest gebruiken wat je al hebt met het random trekken aan de hand van de lengte.
het wegschrijven van de var met de getrokken waarde voordat deze verwijderd wordt is natuurlijk mogelijk, bij het regeltje waar ik zei: - je past z toe op de array, array[z], daar voeg je dan het wegschrijven van de variabele toe, waarschijnlijk is het het handigst om alle getrokken nummers in een array weg te schrijven, dus maak bovenaan de code een lege array aan en doe bij het wegschrijven het volgende: die_lege_array.push(z);
EDIT: er stond een foutje in de code, ik was duidelijk bijna aan het slapen :o
raidho
%Europe/Berlin %984 %2005, 00:38
...
for (var i = 0; j < ticketend; i++) {
...
dit zou beter moeten werken:
for (var j = ticketstart; j < ticketend; j++) {
edit:
maar dat had je zelf ook door... :)
aceka
%Europe/Berlin %452 %2005, 11:51
ik heb het meerdere malen geprobeerd maar ik ga het ff posten wat ik heb zodadelijk
dan kan iemand mij mss helpen als hij weet wat ik heb
grharold
aceka
%Europe/Berlin %457 %2005, 11:59
ik heb een keer een soort van topografie gemaakt en daar heb ik nu het as van gebruikt
alleen weet ik niet wat er uit mag en wat niet
hier is het gehele script
// init score
score = 0;
aantal = score;
plaats = " ";
correctie = " ";
// init nummers
zoekwoord = new Array("1001", "2001", "3001" );
zoekwoordteller = 0;
// vraag stellen
zoekwoordteller = Math.round(Math.random()*(zoekwoord.length-1));
_root.nummer = zoekwoord[zoekwoordteller]+"";
// controle functie die uitgevoerd wordt als op een plaats geklikt is
function controle(plaats) {
if (plaats == zoekwoord[zoekwoordteller]) {
// goed-acties
resultaat = "GOED!!";
score += 1;
scoretekst = score;
correctie = " ";
} else {
// fout-acties
resultaat = "FOUT";
score += 1;
aantal = score;
correctie = " ";
}
// nieuwe plaats bepalen
zoekwoord.splice(zoekwoordteller, 1);
if (zoekwoord.length == 0) {
gotoAndStop("einde");
}
zoekwoordteller = Math.round(Math.random()*(zoekwoord.length-1));
nummer = zoekwoord[zoekwoordteller]+"";
}
dus hier staat eenheleboel in wat teveel is maar weet nie tjuis twat
kan iemand mij helpen
?
mvg harold
theFlashWizard
%Europe/Berlin %494 %2005, 12:52
gaas zelf stukje voor stukje weghalen en kijk tot wanneer hij blijft werken, kijk ondertussen bij dingen die je niet snapt in flash help en je leer n boel bij :)
aceka
%Europe/Berlin %587 %2005, 15:06
ik ben al een heel eind gekomen maar weet alleen nog niet hoe ik nu die nummers van 2000 tot 9000 in mijn as krijg moet ik hiervoor nog iets extra's aan toevoegen in as of hoe zit dit precies?
harold
theFlashWizard
%Europe/Berlin %621 %2005, 15:55
met die post van TrueChaoZ kom je er niet uit?
mshn kun je het zelf:
Arrays:
http://www.actionscripts.org/tutorials/intermediate/Arrays/index.shtml
Loops
http://www.actionscripts.org/tutorials/intermediate/loops/index.shtml
http://www.actionscripts.org/tutorials/intermediate/Nested_loops/index.shtml
aceka
%Europe/Berlin %813 %2005, 20:31
ja het enige wat ik vraag is hoe ik nu die nummers in Mijn as kan krijgen dus hoe vul ik hier
zoekwoord = new Array("1001", "2001", "3001" );
de nummers in van 2000 tot 9000 zonder dat ik deze allemaal handmatig in moet voeren zoals ik hierboven met 3 gedaan heb (2001 2002 en 2003)
als iemand me hier bij kan helpen ben ik er uit
dus alleen de verkorte versie van hoe ik deze nummers er in zet zonder dat ik een compleet nieuwe opzet moet maken zoals die van TrueChaoZ
ik heb namelijk een lotto werkend gekregen maar als ik al die getallen handmatig in moet voeren dan ben ik wel ff bezig en als het alleen op de manier van true chaos kan dan zal ik zeker nog maar wat door zoeken
hopenlijk snappen jullie wat ik bedoel en zijn jullie bereid me nogmaals te helpen
vast bedankt en gr
harold
theFlashWizard
%Europe/Berlin %817 %2005, 20:37
slap dat je het zelf niet wilt proberen aan de hand van onze help of de tuturials..
zoekwoord = new Array()
for(i=2000;i<=9000;i++){
zoekwoord.push(i)
}
That does the trick
maar je kan beter wanneer je dit opvraagt een random cijfer op vragen in die catogorie..
zoek maaris op random op dit forum.. :)
en doe et nou is echt ook..
check is:
http://www.flashfocus.nl/forum/showthread.php?t=238&highlight=random
aceka
%Europe/Berlin %881 %2005, 22:10
ben al dagen aan het proberen dus moet het niet slap noemen
beter was geweest onkunde en als je denkt dat ik het niet wil proberen had je beter ook niet gepost
maar goed ga der over ophouden in iedergeval bedankt
zo valt er hier toch nog wat te leren
zal het laten weten zodra het me gelukt is
gr harold
aceka
%Europe/Berlin %938 %2005, 23:30
jongens nogmaals bedankt hij werkt nu perfect
harold
TrueChaoZ
%Europe/Berlin %005 %2005, 01:08
Mooi ik ben blij dat het toch nog gelukt is :)
veel succes verder met de loterij, ik hoop dat je geluk hebt bij de trekking ;)
theFlashWizard
%Europe/Berlin %092 %2005, 03:12
dat dagen proberen kwam er in deze post anders niet uit..
maar vraag me nu best wel af hoe je het uiteindelijk gedaan heb.. :P
is ook wel interesant voor de personen die deze post mischien ooit, met hetzelfde probleem teruglezen..
aceka
%Europe/Berlin %374 %2005, 09:59
zal het posten zodra hij helemal af is
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.