Entscheidungshelfer

  • Kennt ihr das, ihr steht zwischen zwei oder mehr Entscheidungen und beide sind gleich gut?
    Ihr könnt euch einfach nicht entscheiden???
    Ihr wollt jemanden oder etwas der kein vielleicht als Antwort gibt?

    Dann benutzt einfach dafür den von mir entwickelten Entscheidungshelfer!
    Bei richtiger Einstellung wird er garantiert eine genaue Antwort geben.

    Download -> Ebay_Widget.zip

    Und so stellt man ihn ein:
    In das Textfeld trägt man die Dinge ein, für die der Entscheidungshelfer entscheiden soll.
    z.B.:

    Code
    Ja
    Nein


    Also in jeder Zeile eine Entscheidung.
    Dann trägt man bei Anzahl ein wie oft er denn Entscheidungen geben soll.
    Wenn man da nun eine 3 einträgt findet er den "best of three".
    Mit einer Anzahl von 2 wird er Warscheinlich ein ungenaues ergebnis zeigen. Weil 2(Entscheidungen)/2(Anzahl) ist 1 und deshalb kann es dazu kommen das beide Entscheidungen 1 mal genommen werden.

    Die Zeit ist eigentlich nur da um es ein wenig spannender zu machen,
    so kann man bei wirklich wichtigen Entscheidungen einen Countdown machen zwischen jedem einzelnen Entscheiden.

    Wenn man eher für "Nein" stimmen würde als für "Ja", wenn man keine 50/50 Chance haben will, dann schreibt man "Nein" einfach mehrmals rein:

    Code
    Ja
    Nein
    Nein


    So besteht die Chance, dass "Ja" gewinnt nun 1 zu 3.

    Source:

    Spoiler anzeigen
    [autoit]


    #notrayicon
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    Global $aEnts[1][2] = [[0, 0]], $start = False, $timer = 0, $iTimerCount = 0, $iCount = 0, $iSec = 1000
    $GUI = GUICreate("Entscheidungshelfer", 450, 223, 193, 165, $WS_SIZEBOX)
    $GUIGrp = GUICtrlCreateGroup("Einstellungen", 8, 0, 233, 185)
    $GUIEnts = GUICtrlCreateEdit("Ja" & @CRLF & "Nein", 16, 16, 217, 97)
    $GUIInterval = GUICtrlCreateInput("1", 16, 120, 49, 21)
    $GUIKKTHX = GUICtrlCreateButton("START", 16, 144, 219, 33, 0)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $GUIValue = GUICtrlCreateInput("3", 184, 120, 49, 21)
    $GUILabel1 = GUICtrlCreateLabel("<-Sec", 68, 120, 36, 17)
    $GUILabel2 = GUICtrlCreateLabel("Anzahl->", 115, 120, 67, 17, $SS_RIGHT)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $GUIList = GUICtrlCreateListView("", 248, 8, 193, 177, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_GRIDLINES))
    _GUICtrlListView_InsertColumn(-1, 0, "Entscheidung", 157)
    _GUICtrlListView_InsertColumn(-1, 1, "#", 30)
    _GUICtrlListView_RegisterSortCallBack($GUIList, True, False)

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

    GUICtrlSetResizing($GUIGrp, 64 + 32 + 2 + 256)
    GUICtrlSetResizing($GUIEnts, 64 + 32 + 2 + 256)
    GUICtrlSetResizing($GUIInterval, 64 + 2 + 256 + 512)
    GUICtrlSetResizing($GUIKKTHX, 64 + 2 + 256 + 512)
    GUICtrlSetResizing($GUIValue, 64 + 2 + 256 + 512)
    GUICtrlSetResizing($GUILabel1, 64 + 2 + 256 + 512)
    GUICtrlSetResizing($GUILabel2, 64 + 2 + 256 + 512)
    GUICtrlSetResizing($GUIList, 2 + 4 + 32 + 64)

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

    GUISetState(@SW_SHOW)
    While "Langeweile" <> "False"
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUIKKTHX
    If Not $start Then
    _GUICtrlListView_DeleteAllItems($GUIList)
    Dim $aEnts[1][2] = [[0, 0]]
    $iLines = ControlCommand($GUI, "", $GUIEnts, "GetLineCount", "")
    For $i = 1 To $iLines
    $chLine = ControlCommand($GUI, "", $GUIEnts, "GetLine", $i)
    While StringRight($chLine, 1) == " "
    $chLine = StringTrimRight($chLine, 1)
    WEnd
    If $chLine <> "" Then
    If _ArraySearch($aEnts, $chLine, 0, 0, 1, 0, 1, 0) == -1 Then GUICtrlCreateListViewItem($chLine & "|" & "0", $GUIList)
    $aEnts[0][0] += 1
    ReDim $aEnts[UBound($aEnts) + 1][2]
    $aEnts[UBound($aEnts) - 1][0] = $chLine
    $aEnts[UBound($aEnts) - 1][1] = 0
    EndIf
    Next
    $start = True
    $iTimerCount = GUICtrlRead($GUIInterval)
    $iCount = 0
    If $iTimerCount <= 0 Then
    $iSec = 0
    $iTimerCount = 0
    Else
    $iSec = 1000
    EndIf
    GUICtrlSetData($GUIKKTHX, "Stop")
    GUICtrlSetData($GUILabel1, $iTimerCount)
    GUICtrlSetData($GUILabel2, "0/" & GUICtrlRead($GUIValue))

    Else
    GUICtrlSetData($GUIKKTHX, "Start")
    GUICtrlSetData($GUILabel1, "<-Sec")
    GUICtrlSetData($GUILabel2, "Anzahl->")
    $start = False
    EndIf
    Case $GUIList
    _GUICtrlListView_SortItems($GUIList, GUICtrlGetState($GUIList))
    EndSwitch

    If $start Then
    If TimerDiff($timer) >= $iSec Then
    $timer = TimerInit()
    $iTimerCount -= 1
    GUICtrlSetData($GUILabel1, $iTimerCount + 1)
    If $iTimerCount < 0 Then
    $iTimerCount = GUICtrlRead($GUIInterval)
    $iCount += 1
    GUICtrlSetData($GUILabel2, $iCount & "/" & GUICtrlRead($GUIValue))
    $iRand = Random(1, $aEnts[0][0], 1)
    If $iRand == 0 Then $iRand = 1
    If UBound($aEnts) == 1 Then
    $iRand = 0
    $aEnts[$iRand][0] = ""
    EndIf
    $aEnts[$iRand][1] += 1
    $iMulti = UBound(_ArrayFindAll($aEnts, $aEnts[$iRand][0]))
    If $iMulti > 1 Then
    $aMulti = _ArrayFindAll($aEnts, $aEnts[$iRand][0])
    For $i = 1 To $iMulti - 1
    $aEnts[$aMulti[0]][1] += $aEnts[$aMulti[$i]][1]
    $aEnts[$aMulti[$i]][1] = 0
    Next
    $iRand = $aMulti[0]
    EndIf
    _GUICtrlListView_DeleteItem($GUIList, _GUICtrlListView_FindText($GUIList, $aEnts[$iRand][0], -1, False))
    GUICtrlCreateListViewItem($aEnts[$iRand][0] & "|" & $aEnts[$iRand][1], $GUIList)
    $B_Desc = _GUICtrlListView_GetColumnCount($GUIList); sort
    _GUICtrlListView_SimpleSort($GUIList, $B_Desc, 1); sort
    If $iCount >= GUICtrlRead($GUIValue) Then
    GUICtrlSetData($GUIKKTHX, "Start")
    GUICtrlSetData($GUILabel1, "<-Sec")
    GUICtrlSetData($GUILabel2, "Anzahl->")
    $start = False
    EndIf
    EndIf
    EndIf
    EndIf
    WEnd

    [/autoit]

    3 Mal editiert, zuletzt von Worfox (18. Dezember 2008 um 13:08)

  • Hej, da sieht man mal auf was für Ideen die Einzelnen kommen. Nette Idee wäre nie im Leben auf soetwas gekommen ;)

    Naja benutzen werde ich es aber denke ich mal nicht (nichts gegen dein Programm oder dich), denn ich finde meistens die gute Entscheidung.

    Vllt postest du den Code noch, wäre nett, denn immer gleich etwas downloaden zu müssen will auch nicht jeder :thumbup:


    Mfg
    Jautois