Lotto Zahlen errechner

  • Hallo,

    ich habe einen Algorithmus entwickelt, der die genauen 6 Zahlen für die nächste Lotto ziehung errechnet...^^ nein scherz.
    der Vater eines Freundes wollte aus Spaß son programm haben, ich habs ihm gecodet. Am nächsten tag hat er die Zahlen in den Schein eingetragen und hat folgendes gewonnen: ...... nichts xDD

    also der erfolg ist nciht garantiert^^

    Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Global $Z1 = 1, $Z2 = 42, $Z3 = 26, $Z4 = 18, $Z5 = 39, $Z6 = 8, $msg
    GUICreate("Lotto Zahlen", 230, 100)
    GUICtrlCreateLabel( "Zahlen für die nächste Lotto Ziehung:", 5, 10)
    Global $btn_generic = GUICtrlCreateButton( "Generieren", 10, 30, 100, 20)
    Global $btn_beenden = GUIctrlcreatebutton( "Beenden", 116, 30, 100, 20)
    $I1 = GUICtrlCreateInput( "", 10, 60, 30, 20)
    $I2 = GUICtrlCreateInput( "", 45, 60, 30, 20)
    $I3 = GUICtrlCreateInput( "", 80, 60, 30, 20)
    $I4 = GUICtrlCreateInput( "", 115, 60, 30, 20)
    $I5 = GUICtrlCreateInput( "", 150, 60, 30, 20)
    $I6 = GUICtrlCreateInput( "", 185, 60, 30, 20)
    GUISetState()
    start()
    func start()
    while 1
    $msg = GUIGetMsg()
    Select
    case $msg = -3
    Exit
    case $msg = $btn_beenden
    Exit
    case $msg = $btn_generic
    show()
    EndSelect
    WEnd
    EndFunc
    func show()
    GUICtrlSetData($btn_generic, "Stop")
    while 1
    $msg = GUIGetMsg()
    $Z1 = $Z1 + 1
    $Z2 = $Z2 + 2
    $Z3 = $Z3 + 3
    $Z4 = $Z4 + 8
    $Z5 = $Z5 + 3
    $Z6 = $Z6 + 9
    Select
    case $msg = $btn_generic
    GUICtrlSetData($btn_generic, "Generieren")
    start()
    case $Z1 > 49
    $Z1 = Random(0, 11, 1)
    case $Z2 > 49
    $Z2 = Random(5, 21, 1)
    case $Z3 > 49
    $Z3 = Random(1, 5, 1)
    case $Z4 > 49
    $Z4 = Random(0, 6, 1)
    case $Z5 > 49
    $Z5 = Random(11, 28, 1)
    case $Z6 > 49
    $Z6 = Random(8, 15, 1)
    EndSelect
    GUICtrlSetData($I1, $Z1)
    GUICtrlSetData($I2, $Z2)
    GUICtrlSetData($I3, $Z3)
    GUICtrlSetData($I4, $Z4)
    GUICtrlSetData($I5, $Z5)
    GUICtrlSetData($I6, $Z6)
    sleep(20)
    WEnd
    EndFunc

    [/autoit]

    Ist ein total simples Prinzip. Bitte verbesserungen, kritiken, Tipps etc. nennen, danke!

    mfg
    hauke96

  • Von der Aufmachung her schön gemacht.
    Zur Verbesserung:

    • Lottozahlen werden aus einem Topf herausgenommen. Daher kann eine Zahl immer nur einmal vorkommen. Bei dir jedoch kann eine Zahl mehrmals vorkommen.
    • Der Übersicht halber werden Lottozahlen glaube ich sortiert angegeben. Wär sicher ein nettes Feature.
    • Die 0, welche bei dir vorkommen kann, ist keine Zahl des 6 aus 49 Systems. Ebenso Zahlen größer als 49:
      autoit.de/wcf/attachment/13721/
  • Also dann bin ich wohl dran mit Berichten :D

    Dass Programm ist sehr einfach gehalten, funktioniert auch soweit, nur verstehe ich die Zeilen 31-60 nicht. Da wird die Zahl ausgerechnet, aber wieso so kompliziert? ?(?(?(

    Außerdem wird in zeile 41 und 24 eine neue Funktion aufgerufen,ohne die alte zu beenden, was infolge hat, das es autoIT mehere Funktionen inneinander ausführt.

    Außerdem könnte noch die Superzahl eingebunden werden :rofl:

    Ich hab als 'Schon Mittlerer Halb Experte gedrittelt' ;) das Programm auch mal geschrieben. (Mit den gleichen Bug, das mehrere gleiche Zahlen vorkommen können)

    Spoiler anzeigen
    [autoit]

    $button=0
    GUICreate("Lotto Zahlen", 230, 100)
    GUICtrlCreateLabel( "Zahlen für die nächste Lotto Ziehung:", 5, 10)
    $btn_generic = GUICtrlCreateButton( "Generieren", 10, 30, 100, 20)
    $btn_beenden = GUIctrlcreatebutton( "Beenden", 116, 30, 100, 20)
    Global $I[6]
    For $n=1 to 6
    $I[$n-1] = GUICtrlCreateInput( "", 10+35*($n-1), 60, 30, 20)
    Next
    GUISetState()

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

    While 1
    $msg=GUIGetMsg()
    Select
    Case $msg=-3 or $msg=$btn_beenden
    Exit
    Case $msg=$btn_generic
    if $button=0 Then
    $button=1
    Else
    $button=0
    EndIf
    if $button=1 then
    GUICtrlSetData($btn_generic,'Stop')
    AdlibRegister('random1',50)
    EndIf
    if $button=0 then
    GUICtrlSetData($btn_generic,'Generieren')
    AdlibUnRegister('random1')
    EndIf
    EndSelect
    WEnd

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

    Func random1()
    For $n=1 to 6
    GUICtrlSetData($I[$n-1],Random(1,49,1))
    Next
    EndFunc

    [/autoit]
  • Moin,

    also das mit dem "Gleiche Zahlen Bug" kann cih dem nächst ändern, aber das manachmal Zahlen größer 49 rauskommen, verstehe ich NICHT, weil ja in Zeile 42-53 alle Zahlen ÜBER 49 verkleinert werden, somit müsste z.B. 50 auch verkleinert werden, aber warum wird 50 nicht verkleinert? ich verstehe es nicht!!! :cursing:

    ansonsten mit der sortierung etc. kenn ich mich nciht aus. Ich weiß nur es gibt 48 zahlen und wer 6 richtige hat gewinnt n paar Millionen.

    mfg
    hauke96

  • Ähm...das ist nun nicht so ganz so kompliziert wie deins aber mir gefällts trotzdem :D

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Lotto-Ziehung", 392, 153, 192, 114)
    $Button1 = GUICtrlCreateButton("Generieren", 72, 112, 89, 25)
    $Button2 = GUICtrlCreateButton("Beenden", 216, 112, 97, 25)

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

    $Label1 = GUICtrlCreateLabel("", 8, 72, 36, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("", 72, 72, 36, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label3 = GUICtrlCreateLabel("", 136, 72, 36, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("", 200, 72, 36, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label5 = GUICtrlCreateLabel("", 264, 72, 36, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label6 = GUICtrlCreateLabel("", 328, 72, 36, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Label7 = GUICtrlCreateLabel("Zahlen für die nächste Lotto-Ziehung:", 8, 40, 182, 17)
    GUISetState(@SW_SHOW)
    Global $array[6]

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

    While 1
    $nMsg = GUIGetMsg()
    If $nMsg = $Button1 Then
    $zaehler = 6
    While $zaehler > 0
    $zahl = Random(1, 49, 1)
    _ArraySearch($array, $zahl)
    If @error Then
    _ArrayInsert($array, "", $zahl)
    $zaehler = $zaehler - 1
    EndIf
    WEnd
    $Progress1 = GUICtrlCreateProgress(192, 24, 193, 9)
    $Label8 = GUICtrlCreateLabel("Generiere...", 192, 0, 59, 17)
    GUICtrlSetData($Progress1, 10)
    Sleep(1000)
    GUICtrlSetData($Label1, $array[0])
    GUICtrlSetData($Progress1, 20)
    Sleep(800)
    GUICtrlSetData($Label2, $array[1])
    GUICtrlSetData($Progress1, 35)
    Sleep(600)
    GUICtrlSetData($Label3, $array[2])
    GUICtrlSetData($Progress1, 50)
    Sleep(400)
    GUICtrlSetData($Label4, $array[3])
    GUICtrlSetData($Progress1, 70)
    Sleep(200)
    GUICtrlSetData($Label5, $array[4])
    GUICtrlSetData($Progress1, 100)
    GUICtrlSetData($Label6, $array[5])
    GUICtrlSetData($Label8, "Generiert!")
    EndIf
    If $nMsg = $Button2 Then
    Exit
    EndIf
    WEnd

    [/autoit]

    Edit: Ja, ich weiss das die Generierungszeit gefaked ist, aber wo bleibt denn sonst die Spannung :D

    Bild1: Ich beim debuggen

    Einmal editiert, zuletzt von General Kaboom (13. Juli 2011 um 14:47)

  • ich habe einen Algorithmus entwickelt, der die genauen 6 Zahlen für die nächste Lotto ziehung errechnet...

    Das wärs doch gewesen. Jetzt habe ich mir umsonst Hoffnungen gemacht. :party: Ich spiele schon seit Ewigkeit und habe noch nie die 6 Richtigen gehabt. Ich denke es geht aber den meisten Spielern so.

    Einmal editiert, zuletzt von Slater00 (24. November 2011 um 16:50)

  • hauke96:
    Es wär doch viel einfacher und realistischer da nur mit Random werten zu arbeiten ohne array oder sonst noch was, was nur nen puren umweg macht XDD

    Gruß
    Fabi

  • random wollte ihc ja grade NICHT benutzen, sonst wäre das ja zu einfach ;)

    Wieso einfach wenns auch kompliziert geht?

    ->Wieso sollte man eine Sache, die man erdenkt zu machen einfach gestalten, wenn auch ein Komplizierter Weg zum Ziel der erdachten Sache in Aussicht steht?

    kapiert?^^

    mfg
    Hauke

  • achso :D
    wenn du damit sagen wolltest dass es extra kompliziert sein sollte dann "gut" ^^
    Und den Input bei den Zahlen solltest du noch auf $ES_READONLY setzen, könnte sein dass man es verfälscht ^^

    :D

    Gruß
    Fabi