_RandomDistance()

  • Ich hatte gerade die Fragestellung, wie ich zufällig den ersten Index von jeweils 3 aufeinanderfolgenden, zusammenhängenden Werten eines Arrays anspreche.
    Das könnte vielleicht auch für jemand anderen interessant sein, z.B. um auf dem Display zufällig den ersten Pixel einer Gruppe bestimmter Breite anzusprechen (Pixelblöcke zeichnen mit 4x4 Größe o.ä.)


    Die Funktion lieferten den ersten Wert zurück für einen Bereich dessen Breite mit $_iDistance festgelegt wird.


    Code
    1. z.B. $_iDistance = 3
    2. Random _RandomDistance
    3. 0 0
    4. 1 0
    5. 2 0
    6. 3 3
    7. 4 3
    8. 5 3
    9. 6 6


    ; #FUNCTION# =======================================================================================
    ; Name ..........: _RandomDistance
    ; Description ...: Determines a random positive integer at the start position of a given distance
    ; Syntax ........: _RandomDistance($_iFrom, $_iTo, $_iDistance)
    ; Parameters ....: $_iFrom - value from ( >= 0 )
    ; ...............: $_iTo - value to
    ; ...............: $_iDistance - count of elements in range
    ; Return values .: Success First integer in a random range
    ; ...............: Failure -1 set error=1 invalid parameter(s)
    ; Author ........: BugFix
    ; ==================================================================================================
    Func _RandomDistance($_iFrom, $_iTo, $_iDistance)
    If $_iFrom < 0 Or $_iTo <= $_iFrom Or $_iDistance < 1 Then Return SetError(1,0,-1)
    Local $iR = Random($_iFrom, $_iTo, 1)
    Return $iR + ($_iDistance - Mod($iR, $_iDistance)) - $_iDistance
    EndFunc ;==>_RandomDistance