Erstlingswerk : Farbspiel

  • Guten Abend

    Ich will hier nun mein erstes, kleines Programm vorstellen.
    Es ist ein kleines Spiel:
    Auf einem 3x3 großen Feld werden nacheinander Farben in zufälliger Reihenfolge und an zufälliger Stelle aufblinken.
    Aufgabe ist es diese danach wieder in die richtige Reihenfolge zu bringen, dazu einfach auf die Buttons klicken.

    Freue mich auf Meinungen, Verbesserungen und Anregungen.
    Bitte geht mit mir nicht so hart ins Gericht
    Bin halt ein totaler Anfänger^^

    Edit: Variablen werden jetzt vorher deklariert
    Hier das Skript:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $anz = 5
    $anzcheck = $anz
    $code = ""
    $answer = ""
    $trans = 255
    $auf = 0
    $Form1 = GUICreate("Farbspiel", 541, 371, 192, 124)
    $Label1 = GUICtrlCreateLabel("", 8, 8, 76, 33)
    $MenuItem1 = GUICtrlCreateMenu("Start")
    $MenuItem2 = GUICtrlCreateMenuItem("Start", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenuItem("Anzahl Farbkombinationen", $MenuItem1)
    Global $Button [10]
    _Buttons(1,0xFF0000,80,56,121,81)
    _Buttons(2,0x666666,208,56,121,81)
    _Buttons(3,0x00FF00,336,56,121,81)
    _Buttons(4,0x666666,80,144,121,81)
    _Buttons(5,0x000000,208,144,121,81)
    _Buttons(6,0x666666,336,144,121,81)
    _Buttons(7,0xFFFF00,80,232,121,81)
    _Buttons(8,0x666666,208,232,121,81)
    _Buttons(9,0x0000FF,336,232,121,81)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    If $anzcheck = 0 Then
    If $answer = $code Then
    MsgBox(0,"Richtig","Die Lösung stimmt")
    GUICtrlSetData($label1,"")
    $answer = ""
    $anzcheck = $anz
    Else
    MsgBox(0,"Falsche Lösung","Die Lösung ist nicht korrekt")
    GUICtrlSetData($label1,"")
    $answer = ""
    $anzcheck = $anz
    EndIf
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $MenuItem3
    $anz = InputBox("Anzahl der Farbkombinationen festlegen","Geben sie die Anzahl der Farbkombinationen ein","5")
    $anzcheck = $anz
    Case $Button[1]
    _Faerben2(1,0xFF0000)
    Case $Button[2]
    _Faerben2(2,0x666666)
    Case $Button[3]
    _Faerben2(3,0x00FF00)
    Case $Button[4]
    _Faerben2(4,0x666666)
    Case $Button[5]
    _Faerben2(5,0x000000)
    Case $Button[6]
    _Faerben2(6,0x666666)
    Case $Button[7]
    _Faerben2(7,0xFFFF00)
    Case $Button[8]
    _Faerben2(8,0x666666)
    Case $Button[9]
    _Faerben2(9,0x0000FF)
    Case $MenuItem2
    GUICtrlSetData($label1,"")
    For $y = 1 To 9
    GUICtrlSetBkColor($Button[$y],0xFFFFFF)
    Next
    $code = ""
    For $x = 1 To $anz

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

    For $y = 1 To 9
    GUICtrlSetBkColor($Button[$y],0xFFFFFF)
    GUICtrlSetState($Button[$y],$GUI_DISABLE)
    Next
    sleep(1000)
    $but = Random(1,9,1)
    If $but = 1 Then _Faerben(1,0xFF0000)
    If $but = 2 Then _Faerben(2,0x666666)
    If $but = 3 Then _Faerben(3,0x00FF00)
    If $but = 4 Then _Faerben(4,0x666666)
    If $but = 5 Then _Faerben(5,0x000000)
    If $but = 6 Then _Faerben(6,0x666666)
    If $but = 7 Then _Faerben(7,0xFFFF00)
    If $but = 8 Then _Faerben(8,0x666666)
    If $but = 9 Then _Faerben(9,0x0000FF)
    Sleep(1000)
    Next

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

    For $y = 1 To 9
    GUICtrlSetBkColor($Button[$y],0xFFFFFF)
    GUICtrlSetState($Button[$y],$GUI_ENABLE)
    Next
    $answer = ""
    $trans = 255
    $auf = 0
    WinSetTrans("Farbspiel","",$trans)
    GUICtrlSetData($label1,$anz)
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _Faerben($butt,$farbe)
    GUICtrlSetBkColor($Button[$butt],$farbe)
    WinSetTrans("Farbspiel","",$trans)
    If $auf = 0 Then $trans -= 20
    If $auf = 1 Then $trans += 20
    If $trans = 255 Then $auf = 0
    If $trans = 35 Then $auf = 1
    $code &= $butt
    EndFunc

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

    Func _Faerben2($butt,$farbe)
    $anzcheck -= 1
    $answer &= $butt
    GUICtrlSetData($label1,$anzcheck)
    GUICtrlSetBkColor($Button[$butt],$farbe)
    sleep(400)
    GUICtrlSetBkColor($Button[$butt],0xFFFFFF)
    EndFunc

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

    Func _Buttons($buttonn,$farbe,$left,$top,$breite,$hoehe)
    $Button[$buttonn] = GUICtrlCreateButton("", $left, $top, $breite, $hoehe)
    GUICtrlSetBkColor($Button[$buttonn],$farbe)
    GUICtrlSetState($Button[$buttonn],$GUI_DISABLE)
    EndFunc

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

    Einmal editiert, zuletzt von N0THING (18. März 2011 um 15:26)

  • Für nen Anfänger ist das doch richtig gut!

    Allerdings wird die GUI, wenn die Buttons in der Reihenfolge eingefärbt werden bei mir leicht transparent...Wie geht das bzw. ist das gewollt? :D
    und wenn ich bei Kombinationen 16 eingebe wird die GUI immer heller, im Sinne von sie färbt sich weiß und die Farben verlieren an intensität

    LG

  • Bei mir kommt eine Fehlermeldung wenn ich 4 Felder anklicke... die Variablen müssen vorher deklariert werden.
    Fehlermdeldung:
    ==> WARNING: $code: possibly used before declaration.
    If $answer = $code Then
    ~~~~~~~~~~~~~~~~~~~~~~~^


    ==> Variable used without being declared.:
    If $answer = $code Then
    If $answer = ^ ERROR

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake