Dette er jo simpelt nok når man kun skal bruge 3 kort, men problemet bliver lidt uoverskueligt når man så skal bruge 10 ;o) Lige nu er min hjerne brændt sammen, så 50 point til den der lige hinter i den rigtige retning.
Well, skal du bruge 3 tilfældige tal ud af en 78, så er det hurtigere at generere tre tilfældige tal og sikre sig at de ikke er valgt, end at lave en liste på 78 tal, shuffle den og tage de 3 første.
De to metoder kunne se ud som:
function randomA(a, b, num) { // num tilfældige tal fra a til b, hvor b-a markant større end num var ret = new Array(); var selected = new Object(); var t, i; for (i = 0; i < num; i++) { do { t = a + Math.floor(Math.random() * (b - a + 1)); } while (selected[t] != undefined); selected[t] = true; ret.push(t); } return ret; } function randomB(a, b, num) { // num tilfældige tal fra a til b, hvor b-a kun er lidt større end num var ret = new Array(); var i, r, t, l = b-a+1; for (i = a; i <= b; i++) { ret.push(i); } for (i = 0; i < l; i++) { r = Math.floor(Math.random() * l); t = ret[r]; ret[r] = ret[i]; ret[i] = t; } return ret.splice(0, num); } trace(randomA(1, 10, 3)); trace(randomB(1, 10, 8));
tricket er bare at jeg skal bruge 10 kort ind i mellem... Den kode jeg selv har lavet fungerer fint i forhold til 3 kort... Men jeg skal finte noget så jeg kan få op til 15 tilfældige kort ud.
Tark for points - held og lykke og kom snart igen :D
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.