ithelast Posted July 6, 2012 Share Posted July 6, 2012 I am trying to input three numbers (1,2,3 for example) into a form in a random order. Currently I am manually sending this information as follows: Send("1") Send("3") Send("2") Very simple but not random at all. I would like to be able to send these in a random order each time. Link to comment Share on other sites More sharing options...
gcue Posted July 6, 2012 Share Posted July 6, 2012 (edited) for $x = 1 to 3 ConsoleWrite(Random(1,3, 1) & @CRLF) next you can replace consolewrite with send Edited July 6, 2012 by gcue Link to comment Share on other sites More sharing options...
czardas Posted July 6, 2012 Share Posted July 6, 2012 #include <Array.au3> Dim $array[3] = [1,2,3] $array = _ArrayPermute($array) For $i = 1 To 100 ConsoleWrite($array[Random(1, $array[0], 1)] & @LF) Next operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
gcue Posted July 6, 2012 Share Posted July 6, 2012 (edited) props to tom and yashield expandcollapse popup#include <array.au3> Dim $numbers[3] = [1, 2, 3] _ArrayRandom($numbers) For $x = 0 To UBound($numbers) - 1 ConsoleWrite($numbers[$x] & @CRLF) Next ; #FUNCTION# ==================================================================================================================== ; Name...........: _ArrayRandom ; Description ...: Randomize the row order of (part of) a 1D or 2D array. ; Syntax.........: _ArrayRandom(ByRef $avArray, $iStart = 0, $iEnd = 0) ; Parameters ....: $avArray - Array to randomize ; $iStart - [optional] Index of array to start at ; $iEnd - [optional] Index of array to stop at ; Return values .: Success - 1 ; Failure - 0, sets @error: ; |1 - $avArray is not an array ; |2 - $iStart is greater than $iEnd ; Author ........: Tom Vernooij ; Modified.......: ; Remarks .......: Based on Yashied's method ; Related .......: ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func _ArrayRandom(ByRef $avArray, $iStart = 0, $iEnd = 0) If Not IsArray($avArray) Then Return SetError(1, 0, 0) Local $iRow, $iCol, $rRow, $Temp, $numCols = UBound($avArray, 2), $Ubound = UBound($avArray) - 1 ; Bounds checking If $iEnd < 1 Or $iEnd > $Ubound Then $iEnd = $Ubound If $iStart < 0 Then $iStart = 0 If $iStart > $iEnd Then Return SetError(2, 0, 0) ; for 2 dimentional arrays: If $numCols Then For $iRow = $iStart To $iEnd ;for each row... $rRow = Random($iStart, $iEnd, 1) ;...select a random row For $iCol = 0 To $numCols - 1 ;swich the values for each cell in the rows $Temp = $avArray[$iRow][$iCol] $avArray[$iRow][$iCol] = $avArray[$rRow][$iCol] $avArray[$rRow][$iCol] = $Temp Next Next ; for 1 dimentional arrays: Else For $iRow = $iStart To $iEnd ;for each cell... $rRow = Random($iStart, $iEnd, 1) ;...select a random cell $Temp = $avArray[$iRow] ;switch the values in the cells $avArray[$iRow] = $avArray[$rRow] $avArray[$rRow] = $Temp Next EndIf Return 1 EndFunc ;==>_ArrayRandom Edited July 6, 2012 by gcue Link to comment Share on other sites More sharing options...
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