Zufallszahlen

  • Hallo,ich hab hier ein kleines Problem beim Generieren von Zufallszahlen,die ich für ein kleines Farbcodespiel brauche,um die Anfangssequenz zu definieren.Und zwar sollen aus 9 verschiedenen Farben Random(1,9,1) zu Anfang des Spiels 4 ausgesucht werden,die in einer Schleife in einem Array adressiert werden.Soweit so gut.Bei mehrmaligen Check in der Console stelle ich aber fest,daß sich manche Zahlen im Array wiederholen.Ich hab zwar eine diesbezügliche Checkroutine eingebaut,die schein aber nicht zu helfen.

    hier mein Code

    Spoiler anzeigen

    Wie muss ich die Überprüfung abändern,sodaß jede der 4 Zahlen von 1-9 nur einmal vorkommt

    Einmal editiert, zuletzt von TAFFY (22. August 2010 um 13:04)

  • Hallo,

    Ich würde das ganze so lösen:

    [autoit]

    Func _Zufallsfarben()
    Local $aFarben[4],$sFarben="123456789"
    For $Index=0 To 3
    $aFarben[$Index]=StringMid($sFarben,Random(1,StringLen($sFarben),1),1)
    $sFarben = StringReplace($sFarben,$aFarben[$Index],"")
    Next
    Return $aFarben
    EndFunc

    [/autoit]

    Lg, Fabian

  • oder so:

    [autoit]

    #include <Array.au3>
    Global $neuefarben
    zufallsfarben()

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($neuefarben)

    [/autoit][autoit][/autoit][autoit]

    func zufallsfarben()
    Local $zahlen
    for $i=0 to 3
    While 1
    $a = Random(1,9,1)
    If StringInStr($zahlen, $a) = 0 Then
    $zahlen &= $a
    ExitLoop
    EndIf
    WEnd
    Next
    ConsoleWrite($zahlen & @CRLF)
    $neuefarben = StringSplit($zahlen,'')
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (22. August 2010 um 12:54)