Gui spiel

  • Hey, Ich habe an einem kleinem "spiel" gearbeitet bei dem man 2 sek zeit hat bei einer Gui das richtige Button zu klicken.
    Man muss immer auf die richtige Farbe klicken, nicht das was in der Gui steht ;)

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Timers.au3>
    #include <Misc.au3>
    $schwierigkeit = 2000
    MsgBox (0,"Aufgabe", "Versuche so schnell wie möglich den richtigen Button zu klicken.")
    ;sleep(1000) , guiDelete()
    $richtig = 0
    $falsch = 0
    $zeit = _Timer_Init ()

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

    _naechstes_richtig()

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

    Func _naechstes_richtig()
    $zeit = _Timer_Init () ; Von dem Punkt zu Timer_diff
    While 1
    Dim $var[4]
    $var[0] = "Rot rechts richtig, links falsch"
    $var[1] = "Blau links falsch, rechts richtig"
    $var[2] = "Blau links richtig, rechts falsch"
    $var[3] = "Rot rechts falsch, links richtig"

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

    If $falsch = 10 Then
    MsgBox (0,"Verloren", "Du hast 10 Fehler, es ist vorbei")
    Exit
    EndIf
    If $richtig = 10 Then
    MsgBox (0,"Gewonnen","Du hast 10 richtig! Herzlichen Glückwunsch")
    Exit
    EndIf

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

    $rnd = Random(0, 4, 1)
    Switch $rnd

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

    Case 0

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

    $Gui = GUICreate ("Farben Spiel", 300,200, 300, 300)
    GUICtrlCreateLabel ("Blau Richtig: " & $richtig & " Falsch:" & $falsch , 50, 30, 150, 15)
    $rot_btn_links_falsch = GUICtrlCreateButton ("Blau", 30, 100, 50, 20)
    $blau_btn_rechts_richtig = GUICtrlCreateButton ("Rot", 200, 100, 50, 20)
    GUICtrlSetColor ($rot_btn_links_falsch, 0xFF0000);blau farbe
    GuiCtrlSetColor ($blau_btn_rechts_richtig, 0x0044aa);rot farbe
    GUISetState(@SW_SHOW)

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

    While 1

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

    $time = _Timer_Diff ($zeit)
    $nMsg = GUIGetMsg()
    If $time >= $schwierigkeit Then
    $falsch += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    EndIf
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $blau_btn_rechts_richtig
    $richtig += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    Case $rot_btn_links_falsch
    $falsch += 1
    GUIDelete ($Gui)
    _naechstes_richtig()

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

    EndSwitch

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

    WEnd

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

    Case 1

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

    $Gui = GUICreate ("Farben Spiel", 300,200, 300, 300)
    GUICtrlCreateLabel ("Rot Richtig: " & $richtig & " Falsch:" & $falsch , 50, 30, 150, 15)
    $blau_btn_links_falsch = GUICtrlCreateButton ("Rot", 30, 100, 50, 20)
    $rot_btn_rechts_richtig = GUICtrlCreateButton ("Blau", 200, 100, 50, 20)
    GUICtrlSetColor ($blau_btn_links_falsch, 0x0044aa);blau farbe
    GuiCtrlSetColor ($rot_btn_rechts_richtig, 0xFF0000);rot farbe
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()

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

    $time = _Timer_Diff ($zeit)
    If $time >= $schwierigkeit Then
    $falsch += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    EndIf
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $rot_btn_rechts_richtig
    $richtig += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    Case $blau_btn_links_falsch
    $falsch += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    EndSwitch

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

    WEnd

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

    Case 2
    $Gui =GUICreate ("Farben Spiel", 300,200, 300, 300)
    GUICtrlCreateLabel ("Blau Richtig: " & $richtig & " Falsch:" & $falsch , 50, 30, 150, 15)
    $blau_btn_links_richtig = GUICtrlCreateButton ("Rot", 30, 100, 50, 20)
    $rot_btn_rechts_falsch = GUICtrlCreateButton ("Blau", 200, 100, 50, 20)
    GUICtrlSetColor ($rot_btn_rechts_falsch, 0xFF0000)
    GuiCtrlSetColor ($blau_btn_links_richtig, 0x0044aa)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()

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

    $time = _Timer_Diff ($zeit)
    If $time >= $schwierigkeit Then
    $falsch += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    EndIf
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $blau_btn_links_richtig
    $richtig += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    Case $rot_btn_rechts_falsch
    $falsch += 1
    GUIDelete ($Gui)
    $time = 0
    _naechstes_richtig ()
    EndSwitch

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

    WEnd

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

    Case 3

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

    $Gui = GUICreate ("Farben Spiel", 300,200, 300, 300)
    GUICtrlCreateLabel ("Rot Richtig: " & $richtig & " Falsch:" & $falsch , 50, 30, 150, 15)
    $rot_btn_links_richtig = GUICtrlCreateButton ("Blau", 30, 100, 50, 20)
    $blau_btn_rechts_falsch = GUICtrlCreateButton ("Rot", 200, 100, 50, 20)
    GUICtrlSetColor ($blau_btn_rechts_falsch, 0x0044aa)
    GuiCtrlSetColor ($rot_btn_links_richtig, 0xFF0000)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()

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

    $time = _Timer_Diff ($zeit)
    If $time >= $schwierigkeit Then
    $falsch += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    EndIf
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $rot_btn_links_richtig
    $richtig += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig()
    Case $blau_btn_rechts_falsch
    $falsch += 1
    GUIDelete ($Gui)

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

    _naechstes_richtig ()
    EndSwitch

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

    WEnd

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

    EndSwitch

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

    WEnd
    EndFunc

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


    ich denke man kann das viel kürzer schreiben mit arrays aber es war mein erster Versuche für das Spiel.Ich werde auch demnächst noch lvl hinzufügen , das die zeit die man hat um den button zu klicken kürzer wird.
    Bitte ein kurzes Feedback geben oder verbesserungen und bugs.

    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

  • Guten Abend,

    Ich würde das ganze auf die kürze so Lösen

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $iSchwierigkeit = 2000
    Global $iRichtig = 0
    Global $iFalsch = 0
    Global $iSpieldauer = 10

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

    Global $aButton[2]
    Global $aColor[2][2]
    $aColor[0][0] = 0xFF0000
    $aColor[0][1] = "Blau"
    $aColor[1][0] = 0x0044aa
    $aColor[1][1] = "Rot"

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

    $hWindow = GUICreate ("Farben Spiel", 300,100)
    $hLabel_Spielstand = GUICtrlCreateLabel ("Richtig: 0 Falsch: 0" , 100, 20, 150, 15)
    $hLabel_Color = GUICtrlCreateLabel("Blau",40,20)
    $aButton[0] = GUICtrlCreateButton ("Blau", 30, 50, 50, 30)
    $aButton[1] = GUICtrlCreateButton ("Rot", 200, 50, 50, 30)
    GUISetState(@SW_SHOW)

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

    $hTimer = TimerInit()
    $aColorButton = _NewColor()

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

    While 1
    Local $aColorButton
    Sleep(50)
    $smsg = GUIGetMsg()
    Switch $smsg
    Case -3
    Exit
    Case $aColorButton[0]
    $iRichtig +=1
    _Spielstand($iRichtig,$iFalsch)
    $aColorButton = _NewColor()
    $hTimer = TimerInit()
    Case $aColorButton[1]
    $iFalsch +=1
    _Spielstand($iRichtig,$iFalsch)
    $aColorButton = _NewColor()
    $hTimer = TimerInit()
    EndSwitch

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

    If TimerDiff($hTimer) > $iSchwierigkeit Then
    $iFalsch +=1
    _Spielstand($iRichtig,$iFalsch)
    $aColorButton = _NewColor()
    $hTimer = TimerInit()
    EndIf
    WEnd

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

    Func _Spielstand($iRight,$iFalse)
    GUICtrlSetData($hLabel_Spielstand ,"Richtig: " & $iRight & " Falsch:" & $iFalse)
    If $iRight = $iSpieldauer Then
    MsgBox(0,"","Gewonnen")
    Exit
    EndIf
    If $iFalse = $iSpieldauer Then
    MsgBox(0,"","Verloren")
    Exit
    EndIf
    EndFunc

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

    Func _NewColor()
    Local $iRandom_Color = Random(0,1,1)
    Local $iRandom_Button = Random(0,1,1)
    Local $aNewButton[2]
    $aNewButton[0] = $aButton[$iRandom_Button]
    $aNewButton[1] = $aButton[_Flop($iRandom_Button)]

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

    GUICtrlSetData($hLabel_Color,$aColor[$iRandom_Color][1])
    GUICtrlSetColor($aNewButton[1],$aColor[$iRandom_Color][0])
    GUICtrlSetColor($aNewButton[0],$aColor[_Flop($iRandom_Color)][0])

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

    Return $aNewButton
    EndFunc

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

    Func _Flop($iNumber)
    If $iNumber = 0 Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]

    Lg, Fabian