Zufällig Farben Generieren lassen?

  • Hi liebe Autoitler und Autoitlerinnen,
    ich habe ein Frage unzwar kann man ja Wörter und Zahlen zufällige generieren lassen. Jetzt will ich fragen ob man auch Farben irgendwie generieren lassen kann?
    Bei Google hab ich schon gesucht,habe aber nichts gefunden hoffe irgendeiner von euch ob es möglich ist und wenn ja wie. ;)

    MFG
    MeyerMeyer11

    Momentanes Projekt

    -Textadventure

    Fertige Projekte

    Nichts

  • Hier ist das von hauke96 in Code gegossen:

    [autoit]

    Func RandomColor()
    $r = Hex(Random(0, 255, 1), 2) ;red
    $g = Hex(Random(0, 255, 1), 2) ;green
    $b = Hex(Random(0, 255, 1), 2) ;blue
    Return "0x" & $r & $g & $b
    EndFunc ;==>RandomColor

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

    Const $hGUI_EXIT = -3
    Const $hGUI = GUICreate("RandomColor", 200, 100)
    Const $hButtonSetColor = GUICtrlCreateButton("set random backgroundcolor", 25, 25, 150, 50)

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

    GUISetState(@SW_SHOW)

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

    While True
    $msg = GUIGetMsg()
    If ($hGUI_EXIT == $msg) Then
    Exit
    ElseIf ($msg == $hButtonSetColor) Then
    $sColor = RandomColor()
    ConsoleWrite($sColor & @CRLF)
    GUISetBkColor($sColor)
    EndIf
    WEnd

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Von mir auch noch etwas... :)

    Spoiler anzeigen
    [autoit]

    GUICreate('')
    GUISetState()

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

    GUISetBkColor(_RandomColor())
    Global $i_Timer = TimerInit()

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

    While GUIGetMsg() <> -3
    If TimerDiff($i_Timer) >= 2000 Then
    GUISetBkColor(_RandomColor())
    $i_Timer = TimerInit()
    EndIf
    WEnd

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

    Func _RandomColor()
    Return '0x' & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2)
    EndFunc

    [/autoit]
  • Das ist leider nich ganz das was ich meinte,ich meinte das er zum Beispiel das Wort Rot generiert(oder halt eine andere Farbe).
    Tschuldigung das ich mich falsch ausgedrückt hab. :pinch:

    MFG
    MeyerMeyer11

    Momentanes Projekt

    -Textadventure

    Fertige Projekte

    Nichts

  • [autoit]

    Global $a_Farben[8] = ['rot', 'grün', 'blau', 'gelb', 'schwarz', 'weiß', 'lila', 'pink']

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

    While MsgBox(1, '', $a_Farben[Random(0, 7, 1)]) = 1
    WEnd

    [/autoit]

    So etwas? oO

  • Ja sowas hab ich gemeint :D
    Habs jetzt schon anderes gelöst bloß deins ist wesentlich kurz.
    Hier mal meine Version

    Mein Code
    [autoit]

    $Zahl1 = Random(1,6,1)$Zahl2 = Random(1,6,1)$Zahl3 = Random(1,6,1)$Zahl4 = Random(1,6,1)$Zahl5 = Random(1,6,1)$Zahl6 = Random(1,6,1)
    $Farbe1 = ""$Farbe2 = ""$Farbe3 = ""$Farbe4 = ""$Farbe5 = ""$Farbe6 = ""
    Farbe1zuOrdnen()Farbe2zuOrdnen()Farbe3zuOrdnen()Farbe4zuOrdnen()Farbe5zuOrdnen()Farbe6zuOrdnen()MsgBox(0,"",$Farbe1&$Farbe2&$Farbe3&$Farbe4&$Farbe5&$Farbe6)

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

    Func Farbe1zuOrdnen() If $Zahl1 = 1 Then $Farbe1 = "Rot" EndIf If $Zahl1 = 2 Then $Farbe1 = "Blau" EndIf If $Zahl1 = 3 Then $Farbe1 = "Orange" EndIf If $Zahl1 = 4 Then $Farbe1 = "Lila" EndIf If $Zahl1 = 5 Then $Farbe1 = "Gelb" EndIf If $Zahl1 = 6 Then $Farbe1 = "Grün" EndIfEndFunc
    Func Farbe2zuOrdnen() If $Zahl2 = 1 Then $Farbe2 = "Rot" EndIf If $Zahl2 = 2 Then $Farbe2 = "Blau" EndIf If $Zahl2 = 3 Then $Farbe2 = "Orange" EndIf If $Zahl2 = 4 Then $Farbe2 = "Lila" EndIf If $Zahl2 = 5 Then $Farbe2 = "Gelb" EndIf If $Zahl2 = 6 Then $Farbe2 = "Grün" EndIfEndFunc
    Func Farbe3zuOrdnen() If $Zahl3 = 1 Then $Farbe3 = "Rot" EndIf If $Zahl3 = 2 Then $Farbe3 = "Blau" EndIf If $Zahl3 = 3 Then $Farbe3 = "Orange" EndIf If $Zahl3 = 4 Then $Farbe3 = "Lila" EndIf If $Zahl3 = 5 Then $Farbe3 = "Gelb" EndIf If $Zahl3 = 6 Then $Farbe3 = "Grün" EndIfEndFunc
    Func Farbe4zuOrdnen() If $Zahl4 = 1 Then $Farbe4 = "Rot" EndIf If $Zahl4 = 2 Then $Farbe4 = "Blau" EndIf If $Zahl4 = 3 Then $Farbe4 = "Orange" EndIf If $Zahl4 = 4 Then $Farbr4 = "Lila" EndIf If $Zahl4 = 5 Then $Farbe4 = "Gelb" EndIf If $Zahl4 = 6 Then $Farbe4 = "Grün" EndIfEndFunc
    Func Farbe5zuOrdnen() If $Zahl5 = 1 Then $Farbe5 = "Rot" EndIf If $Zahl5 = 2 Then $Farbe5 = "Blau" EndIf If $Zahl5 = 3 Then $Farbe5 = "Orange" EndIf If $Zahl5 = 4 Then $Farbe5 = "Lila" EndIf If $Zahl5 = 5 Then $Farbe5 = "Gelb" EndIf If $Zahl5 = 6 Then $Farbe5 = "Grün" EndIfEndFunc
    Func Farbe6zuOrdnen() If $Zahl6 = 1 Then $Farbe6 = "Rot" EndIf If $Zahl6 = 2 Then $Farbe6 = "Blau" EndIf If $Zahl6 = 3 Then $Farbe6 = "Orange" EndIf If $Zahl6 = 4 Then $Farbe6 = "Lila" EndIf If $Zahl6 = 5 Then $Farbe6 = "Gelb" EndIf If $Zahl6 = 6 Then $Farbe6 = "Grün" EndIfEndFunc

    [/autoit]


    Das Programm generiert 6 Zahlen und sagt dann welche Zahl welche Farbe ist.Außerdem gibt es die Farben dann noch aus.

    MFG
    MeyerMeyer11

    Momentanes Projekt

    -Textadventure

    Fertige Projekte

    Nichts

  • Ich würde in jedem Fall den Code von $var nutzen, denn der ist viel übersichtlicher und um einiges leichter erweiterbar.
    Deine Version ist ehrlich gesagt nicht besonders effizient. :D

    Das "Szenario" ist ein gutes Beispiel für die Verwendung(snotwendigkeit) von Arrays.
    Die würde ich mir mal genauer anschauen:

    Tutorial 1 | Tutorial 2 | Tutorial 3 (engl.)

    2 Mal editiert, zuletzt von CyRoX (16. Oktober 2012 um 17:49)

  • Sorry, aber der Code ist ja wohl einfach nur schlimm. :wacko:

    [autoit]


    Local $sReturnString
    For $i = 1 To 6
    $sReturnString &= _GetColorByNumber(Random(1,6,1)) & @CRLF
    Next

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

    MsgBox(0,"",$sReturnString)

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

    Func _GetColorByNumber($iNum)
    Local $aColors[6] = ["Rot", "Blau", "Orange", "Lila", "Gelb", "Grün"]
    If $iNum >= 1 And $iNum <= UBound($aColors) Then Return $aColors[$iNum - 1]
    EndFunc

    [/autoit]


    Kürzer, effizienter und dynamischer.
    Du solltest dich nochmal mit Funktionsparametern & Abfragen (z.B. Switch) auseinander setzen!

    lg chess