Sunblood Posted November 8, 2004 Posted November 8, 2004 I've got a list of 16 people, and I want them sorted into 4 random teams of 4. Halo 2 party this weekend Dim $NAME[16], $SPOT[16] $NAME[0] = "Jack" $NAME[1] = "Keegan" $NAME[2] = "Clark" $NAME[3] = "Peter" $NAME[4] = "Tom" $NAME[5] = "Austin" $NAME[6] = "Jacob" $NAME[7] = "Jory" $NAME[8] = "Justin" $NAME[9] = "Marcus" $NAME[10] = "Kalhid" $NAME[11] = "Adam" $NAME[12] = "Taylor" $NAME[13] = "Luke" $NAME[14] = "Ben" $NAME[15] = "Ethan" $S = 0 While 1 $I = Round(Random(0, 15), 0) ToolTip($S, 0, 0) If $NAME[$I] = 0 Then ContinueLoop $SPOT[$S] = $NAME[$I] $NAME[$I] = 0 $S = $S + 1 If $S > 15 Then ExitLoop EndIf Wend MsgBox(0, "Halo 2", "Team 1:" & $SPOT[0] & ", " & $SPOT[1] & ", " & $SPOT[2] & ", " & $SPOT[3] & @CRLF & "Team 2:" & $SPOT[4] & ", " & $SPOT[5] & ", " & $SPOT[6] & ", " & $SPOT[7] & @CRLF & "Team 3:" & $SPOT[8] & ", " & $SPOT[9] & ", " & $SPOT[10] & ", " & $SPOT[11] & @CRLF & "Team 4:" & $SPOT[12] & ", " & $SPOT[13] & ", " & $SPOT[14] & ", " & $SPOT[15]) For some reason, it won't assign anybody to anywhere... Could someone either A.) Fix my script, or B.) Supply your own replacement script? Thankee
scriptkitty Posted November 8, 2004 Posted November 8, 2004 (edited) Not the most efficient way, but this should get you through it. Dim $NAME[18], $SPOT[18] $NAME[0] = "Jack" $NAME[1] = "Keegan" $NAME[2] = "Clark" $NAME[3] = "Peter" $NAME[4] = "Tom" $NAME[5] = "Austin" $NAME[6] = "Jacob" $NAME[7] = "Jory" $NAME[8] = "Justin" $NAME[9] = "Marcus" $NAME[10] = "Kalhid" $NAME[11] = "Adam" $NAME[12] = "Taylor" $NAME[13] = "Luke" $NAME[14] = "Ben" $NAME[15] = "Ethan" $S = 0 $names="|" While 1 $I = int(Random(0,16)) ToolTip($S, 0, 0) If StringInStr($names,"|" & $name[$i])>0 and $s<15 Then ContinueLoop Else $names=$names&$name[$i]&"|" $SPOT[$s]=$name[$i] $s=$s+1 EndIf If $s>16 Then ExitLoop Wend MsgBox(0, "Halo 2", "Team 1:" & $SPOT[0] & ", " & $SPOT[1] & ", " & $SPOT[2] & ", " & $SPOT[3] & @CRLF & "Team 2:" & $SPOT[4] & ", " & $SPOT[5] & ", " & $SPOT[6] & ", " & $SPOT[7] & @CRLF & "Team 3:" & $SPOT[8] & ", " & $SPOT[9] & ", " & $SPOT[10] & ", " & $SPOT[11] & @CRLF & "Team 4:" & $SPOT[12] & ", " & $SPOT[13] & ", " & $SPOT[14] & ", " & $SPOT[15]) Edited November 8, 2004 by scriptkitty AutoIt3, the MACGYVER Pocket Knife for computers.
Sunblood Posted November 8, 2004 Author Posted November 8, 2004 (edited) Thanks, scriptkitty, that works... for the most part, EXCEPT: The last name is always duplicated somewhere. EDIT: Nevermind, I fixed it. If StringInStr($NAMES, "|" & $NAME[$I]) > 0 And $S < 15 Then had to be changed to If StringInStr($NAMES, "|" & $NAME[$I]) > 0 And $S < 16 Then Edited November 8, 2004 by Sunblood
scriptkitty Posted November 8, 2004 Posted November 8, 2004 Added this if you wanted to change to 2 teams of 8 or such. expandcollapse popupDim $NAME[16], $SPOT[16] $NAME[0] = "Jack" $NAME[1] = "Keegan" $NAME[2] = "Clark" $NAME[3] = "Peter" $NAME[4] = "Tom" $NAME[5] = "Austin" $NAME[6] = "Jacob" $NAME[7] = "Jory" $NAME[8] = "Justin" $NAME[9] = "Marcus" $NAME[10] = "Kalhid" $NAME[11] = "Adam" $NAME[12] = "Taylor" $NAME[13] = "Luke" $NAME[14] = "Ben" $NAME[15] = "Ethan" $S = 0 $names="|" While 1 $I = int(Random(0,16)) ToolTip($S, 0, 0) If StringInStr($names,"|" & $name[$i])>0 Then ContinueLoop Else $names=$names&$name[$i]&"|" $SPOT[$s]=$name[$i] $s=$s+1 EndIf If $s>15 Then ExitLoop Wend $output="" $count=0 $perteam=4 $teams=4 For $team=1 To $teams $output=$output & @CRLF &"Team " & $team & ":" For $players=1 To $perteam $output=$output & $spot[$count] & "," $count=$count+1 Next $output=StringTrimRight($output,1) Next MsgBox(1,"Halo 2-->",$output) AutoIt3, the MACGYVER Pocket Knife for computers.
Sunblood Posted November 8, 2004 Author Posted November 8, 2004 Hah, thanks! Will come in useful, no doubt!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now