µit für Mathematiker und Zocker

  • Hallo Oscar,

    nachdem ich die Jury bin finde ich Deinen Vorschlag richtig gut... :rofl:
    Nein, Spaß beiseite. Wenn Du willst, können wir das ja durchziehen.

    Ich hatte extra ein so langes Ende anberaumt, damit man ein paar Wochen hat, um an seinem Script zu "feilen"... :D
    Man kann es ja schließlich nur einmal pro Woche testen.

    Wäre aber schön, wenn wir unsere Scripte mit der dann aktuellen Liste Lottozahlen für den anberaumten Termin bereitstellen, damit alle was zu lachen haben.

    PS: die Liste der Lottozahlen aktualisiere ich natürlich jede Woche ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    • Offizieller Beitrag

    Ja, also ich mache mit. Sch**ss auf die Logik! Wenn man die über Bord wirft, kann was interessantes bei rauskommen. :D

    Die Lottozahlen-Liste hat übrigens zwei kleine "Fehler". Bei den Zahlen kommt einmal "09" vor und bei den Zusatzzahlen "03" (glaub ich).
    Hab's in meinem Skript jetzt so gemacht, dass die Zahlen mit Number() konvertiert werden.

  • Danke Oscar,

    hab die Liste fehlerbereinigt.
    Sollten jetzt keine Zahlen mit vorangestellter 0 mehr drin sein.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    • Offizieller Beitrag

    Sieht ja so aus, als ob wir nur zu zweit sind. :whistling:
    Naja, letztendlich ist es ja auch mehr ein Spass-Skript. Hier also mein Skript:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $aZiehung = StringSplit(FileRead(@ScriptDir & '\Lottozahlen.txt'), @CRLF, 1)

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

    Global $oZahl = ObjCreate('Scripting.Dictionary'), $oZusatz = ObjCreate('Scripting.Dictionary')
    Global $aZahlen, $iZusatz
    For $i = 1 To $aZiehung[0]
    $aZahlen = StringSplit($aZiehung[$i], ',')
    For $j = 2 To $aZahlen[0] - 1
    $aZahlen[$j] = Number($aZahlen[$j])
    If $oZahl.Exists($aZahlen[$j]) Then
    $oZahl.Item($aZahlen[$j]) = $oZahl.Item($aZahlen[$j]) + 1
    Else
    $oZahl.Add($aZahlen[$j], 1)
    EndIf
    Next
    $iZusatz = Number($aZahlen[$aZahlen[0]])
    If $iZusatz <> 0 Then
    If $oZusatz.Exists($iZusatz) Then
    $oZusatz.Item($iZusatz) = $oZusatz.Item($iZusatz) + 1
    Else
    $oZusatz.Add($iZusatz, 1)
    EndIf
    EndIf
    Next

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

    Global $aVerteilung[$oZahl.Count][2], $i = 0
    For $key In $oZahl.Keys
    $aVerteilung[$i][0] = $key
    $aVerteilung[$i][1] = $oZahl.Item($key)
    $i += 1
    Next
    _ArraySort($aVerteilung, 0, 0, 0, 1)
    ;~ _ArrayDisplay($aVerteilung, 'Häufigkeitsverteilung')

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

    Global $aZusatz[$oZusatz.Count][2], $i = 0
    For $key In $oZusatz.Keys
    $aZusatz[$i][0] = $key
    $aZusatz[$i][1] = $oZusatz.Item($key)
    $i += 1
    Next
    _ArraySort($aZusatz, 0, 0, 0, 1)
    ;~ _ArrayDisplay($aZusatz, 'Zusatzzahl')

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

    Dim $ahLotto[4][50]
    $hGui = GUICreate('Mein Lottotip', 640, 640)
    GUISetBkColor(0xDDDDDD) ; 0xFFAA66
    For $z = 0 To 3 ; vier "Spielscheine" erstellen
    GUICtrlCreateGroup('Tip ' & $z + 1, 5 + Mod($z, 2) * 320, 5 + Int($z / 2) * 320, 300, 300)
    For $y = 0 To 6
    For $x = 0 To 6
    $iLeft = 20 + Mod($z, 2) * 320 + $x * 40
    $iTop = 25 + Int($z / 2) * 320 + $y * 40
    $ahLotto[$z][$y * 7 + $x + 1] = GUICtrlCreateLabel($y * 7 + $x + 1, $iLeft, $iTop, 32, 28, $SS_CENTER, $WS_EX_CLIENTEDGE)
    GUICtrlSetBkColor(-1, 0xAAAAAA)
    GUICtrlSetColor(-1, 0x909090)
    GUICtrlSetFont(-1, 14, 400, 0, 'Verdana')
    Next
    Next
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    Next
    For $i = 0 To 1 ; zwei Scheine mit Zahlen (Häufigkeitsverteilung) "füllen"
    For $j = 0 To 5 ; dabei die Zahlen auswählen, die am seltesten gezogen wurden
    GUICtrlSetBkColor($ahLotto[$i][$aVerteilung[$i * 6 + $j][0]], 0x4466FF)
    GUICtrlSetColor($ahLotto[$i][$aVerteilung[$i * 6 + $j][0]], 0xFFFFFF)
    Next
    Next
    For $i = 0 To 1 ; und die anderen zwei Scheine mit Zahlen (Häufigkeitsverteilung) "füllen"
    For $j = 0 To 5 ; dabei die Zahlen auswählen, die am häufigsten gezogen wurden
    GUICtrlSetBkColor($ahLotto[2 + $i][$aVerteilung[37 + $i * 6 + $j][0]], 0x4466FF)
    GUICtrlSetColor($ahLotto[2 + $i][$aVerteilung[37 + $i * 6 + $j][0]], 0xFFFFFF)
    Next
    Next
    GUISetState()
    ;~ _ArrayDisplay($aVerteilung, 'Häufigkeitsverteilung')
    Do
    Until GUIGetMsg() = -3

    [/autoit]

    Die Datei "Lottozahlen.txt" aus Post#1 muss sich im Skriptverzeichnis befinden.
    Die "Logik" dahinter habe ich in den Kommentaren untergebracht. :)
    Da sollte eigentlich noch eine genauere Auflistung der Zusatzzahlen rein, aber das habe ich nicht mehr geschafft, da ich momentan noch an einem anderen Projekt arbeite.

  • Zitat von Oskar

    Die "Logik" dahinter habe ich in den Kommentaren untergebracht.

    :D
    Dann sei ein Mann und fülle nicht 2 Spielscheine aus, sondern plündere das Konto und lass es krachen! Die "Logik" is so verständlich, das wirst du auch (im unwahrscheinlichen Fall daß du alles verlierst) dem Scheidungsanwalt vermitteln können, da KANN garnichts schiefgehen... :rofl:

  • Na dann will ich mein Script auch nicht verstecken. ;)

    Hat natürlich genauso viel Nährwert, aber ich fand es lustig.

    PS: ich bin doch tatsächlich losgezogen und hab 2 Kästchen mit meinen Zahlen gespielt. Na was soll ich sagen...
    Nicht ein Treffer :rofl:

    Ach ja. Hiermit erkläre ich den µIt für beendet.
    Sieger ist die Vernunft...

    Danke an Oscar, dass er den Spaß mitgemacht hat :thumbup:

    Edit: auch mein Script erwartet die Datei Lottozahlen.txt im ScriptDir

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (31. März 2010 um 19:16)

  • ich sagte ja, keine Logik ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)