Permalänk
Medlem

Slumpa ASP

Hej. Sitter här och försöker göra ett slumpa script men lyckas inte riktigt så jag vänder mig hit till sweclockers om hjälp.

Det jag vill göra är att jag vill slumpa fram x antal lag som innehåller 5 spelare i varje lag.

Säg att jag har 20 anmälda. Med 20 anmälda så blir det 4 lag. Jag vill att datorn ska slumpa fram de här 4 lagen åt mig men har ingen anning hur jag ska göra det. Någon här inne som kan något om detta?

Script språk : ASP

Tack på förhand
// Lamish

Permalänk
Medlem

ASP Classic, inte .NET alltså? Du har redan dessa personer i en databas nu? Börja med att ta ut dessa (t.ex. 20 st) personer från databasen. Samla dem i en array eller nånting. Sen tar du bara 5 st i taget från denna array tills det är slut på personer.

Jag gissar att det egentligen är något mer specifikt du vill ha hjälp med, t.ex. att få ut dessa ur databasen eller att samla dem till en array. Du kan också göra det hela i samma steg, men jag misstänker att du inte behöver optimera speciellt mycket

Permalänk
Medlem

jag har redan dessa personer i databasen det stämmer

jag måste bara slumpa ut de i och ställe de i grupper med 5 i varje? det är inte .net om du skulle kunna dra ett snabbt kod exempel skulle jag uppskatta det hjärtligt

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av lamish
jag måste bara slumpa ut de i och ställe de i grupper med 5 i varje?

Börja med att dra ut alla 20 personer till en enda array. Sedan slumpar du ordningen i arrayen. Sedan drar du ut 5 st åt gången och bildar så många lag det blir. Har tyvärr inte tid att ge kodexempel. Exempel på hur man använder en array (VB): http://joshua-go.blogspot.com/2007/02/arrays-in-visual-basic-...

EDIT: Hittade kodexempel på att slumpa ordningen i en array:

Function ReOrderArrayQuickNDirty(ByVal aArray) Dim iUpper, iLower, iLoop, iSwapPos, varTmp iUpper = UBound(aArray) iLower = LBound(aArray) Randomize Timer 'Loop through the array, randomly swapping values' For iLoop = iLower to iUpper 'Get an array index to swap' iSwapPos = Int(Rnd * (iUpper + 1)) 'Swap the current element with the element at iSwapPos' varTmp = aArray(iLoop) aArray(iLoop) = aArray(iSwapPos) aArray(iSwapPos) = varTmp Next ReOrderArrayQuickNDirty = aArray 'Return the jumbled array' End Function

Permalänk
Medlem

Använder du MSSQL så kan du hämta ut dem random ur databasen med

SELECT * FROM INFORMATION_SCHEMA.tables ORDERY BY NEWID()

Och om du använder MySQL kan du använda

SELECT * FROM SCHEMA.tables ORDER BY RAND()

så slipper du randomisera arrayen sen.

Visa signatur

”I do not fear computers. I fear the lack of them.” --- Isaac Asimov

Permalänk
Medlem

Problemet fixat tack för all hjälp killar