Sudoku

  • Hallo.

    Habe eine Idee, die durch ein Hobby, das ich vor AutoIt fast täglich gespielt hatte, entstanden war und wo ich immer noch nach einer super umsetzung suche. Würde mich freuen, wenn einer Lust hast mit mir zusammen das Projekt zu machen.

    Wer hat LUST, mit mir zusammen ein Sudoku in Angriff zu nehmen ???

    Habe schon das Gerüst fertig und jeweils 5 Levels für die Stufen 1 - 3

    Gerüst:
    Imput 1 = erste zahl
    Imput 2 = zweite Zahl usw.
    Von oben links nach unten rechts

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=D:\Sudoku\sudoku.kxf
    $Form1 = GUICreate("Form1", 332, 567, 191, 128)
    $Input1 = GUICtrlCreateInput("Input1", 16, 80, 25, 21)
    $Input2 = GUICtrlCreateInput("Input2", 48, 80, 25, 21)
    $Input3 = GUICtrlCreateInput("Input3", 80, 80, 25, 21)
    $Input4 = GUICtrlCreateInput("Input4", 120, 80, 25, 21)
    $Input5 = GUICtrlCreateInput("Input5", 152, 80, 25, 21)
    $Input6 = GUICtrlCreateInput("Input6", 184, 80, 25, 21)
    $Input7 = GUICtrlCreateInput("Input7", 224, 80, 25, 21)
    $Input8 = GUICtrlCreateInput("Input8", 256, 80, 25, 21)
    $Input9 = GUICtrlCreateInput("Input9", 288, 80, 25, 21)
    $Input10 = GUICtrlCreateInput("Input10", 16, 104, 25, 21)
    $Input11 = GUICtrlCreateInput("Input11", 48, 104, 25, 21)
    $Input12 = GUICtrlCreateInput("Input12", 80, 104, 25, 21)
    $Input13 = GUICtrlCreateInput("Input13", 120, 104, 25, 21)
    $Input14 = GUICtrlCreateInput("Input14", 152, 104, 25, 21)
    $Input15 = GUICtrlCreateInput("Input15", 184, 104, 25, 21)
    $Input16 = GUICtrlCreateInput("Input16", 224, 104, 25, 21)
    $Input17 = GUICtrlCreateInput("Input17", 256, 104, 25, 21)
    $Input18 = GUICtrlCreateInput("Input18", 288, 104, 25, 21)
    $Input19 = GUICtrlCreateInput("Input19", 16, 128, 25, 21)
    $Input20 = GUICtrlCreateInput("Input20", 48, 128, 25, 21)
    $Input21 = GUICtrlCreateInput("Input21", 80, 128, 25, 21)
    $Input22 = GUICtrlCreateInput("Input22", 120, 128, 25, 21)
    $Input23 = GUICtrlCreateInput("Input23", 152, 128, 25, 21)
    $Input24 = GUICtrlCreateInput("Input24", 184, 128, 25, 21)
    $Input25 = GUICtrlCreateInput("Input25", 224, 128, 25, 21)
    $Input26 = GUICtrlCreateInput("Input26", 256, 128, 25, 21)
    $Input27 = GUICtrlCreateInput("Input27", 288, 128, 25, 21)
    $Input28 = GUICtrlCreateInput("Input28", 16, 160, 25, 21)
    $Input29 = GUICtrlCreateInput("Input29", 48, 160, 25, 21)
    $Input30 = GUICtrlCreateInput("Input30", 80, 160, 25, 21)
    $Input31 = GUICtrlCreateInput("Input31", 120, 160, 25, 21)
    $Input32 = GUICtrlCreateInput("Input32", 152, 160, 25, 21)
    $Input33 = GUICtrlCreateInput("Input33", 184, 160, 25, 21)
    $Input34 = GUICtrlCreateInput("Input34", 224, 160, 25, 21)
    $Input35 = GUICtrlCreateInput("Input35", 256, 160, 25, 21)
    $Input36 = GUICtrlCreateInput("Input36", 288, 160, 25, 21)
    $Input37 = GUICtrlCreateInput("Input37", 16, 184, 25, 21)
    $Input38 = GUICtrlCreateInput("Input38", 48, 184, 25, 21)
    $Input39 = GUICtrlCreateInput("Input39", 80, 184, 25, 21)
    $Input40 = GUICtrlCreateInput("Input40", 120, 184, 25, 21)
    $Input41 = GUICtrlCreateInput("Input41", 152, 184, 25, 21)
    $Input42 = GUICtrlCreateInput("Input42", 184, 184, 25, 21)
    $Input43 = GUICtrlCreateInput("Input43", 224, 184, 25, 21)
    $Input44 = GUICtrlCreateInput("Input44", 256, 184, 25, 21)
    $Input45 = GUICtrlCreateInput("Input45", 288, 184, 25, 21)
    $Input46 = GUICtrlCreateInput("Input46", 16, 208, 25, 21)
    $Input47 = GUICtrlCreateInput("Input47", 48, 208, 25, 21)
    $Input48 = GUICtrlCreateInput("Input48", 80, 208, 25, 21)
    $Input49 = GUICtrlCreateInput("Input49", 120, 208, 25, 21)
    $Input50 = GUICtrlCreateInput("Input50", 152, 208, 25, 21)
    $Input51 = GUICtrlCreateInput("Input51", 184, 208, 25, 21)
    $Input52 = GUICtrlCreateInput("Input52", 225, 208, 23, 21)
    $Input53 = GUICtrlCreateInput("Input53", 256, 208, 25, 21)
    $Input54 = GUICtrlCreateInput("Input54", 288, 208, 25, 21)
    $Input55 = GUICtrlCreateInput("Input55", 16, 240, 25, 21)
    $Input56 = GUICtrlCreateInput("Input56", 48, 240, 25, 21)
    $Input57 = GUICtrlCreateInput("Input57", 80, 240, 25, 21)
    $Input58 = GUICtrlCreateInput("Input58", 120, 240, 25, 21)
    $Input59 = GUICtrlCreateInput("Input59", 152, 240, 25, 21)
    $Input60 = GUICtrlCreateInput("Input60", 184, 240, 25, 21)
    $Input61 = GUICtrlCreateInput("Input61", 224, 240, 25, 21)
    $Input62 = GUICtrlCreateInput("Input62", 256, 240, 25, 21)
    $Input63 = GUICtrlCreateInput("Input63", 288, 240, 25, 21)
    $Input64 = GUICtrlCreateInput("Input64", 16, 264, 25, 21)
    $Input65 = GUICtrlCreateInput("Input65", 48, 264, 25, 21)
    $Input66 = GUICtrlCreateInput("Input66", 80, 264, 25, 21)
    $Input67 = GUICtrlCreateInput("Input67", 120, 264, 25, 21)
    $Input68 = GUICtrlCreateInput("Input68", 152, 264, 25, 21)
    $Input69 = GUICtrlCreateInput("Input69", 184, 264, 25, 21)
    $Input70 = GUICtrlCreateInput("Input70", 224, 264, 25, 21)
    $Input71 = GUICtrlCreateInput("Input71", 256, 264, 25, 21)
    $Input72 = GUICtrlCreateInput("Input72", 288, 264, 25, 21)
    $Input73 = GUICtrlCreateInput("Input73", 16, 288, 25, 21)
    $Input74 = GUICtrlCreateInput("Input74", 48, 288, 25, 21)
    $Input75 = GUICtrlCreateInput("Input75", 80, 288, 25, 21)
    $Input76 = GUICtrlCreateInput("Input76", 120, 288, 25, 21)
    $Input77 = GUICtrlCreateInput("Input77", 152, 288, 25, 21)
    $Input78 = GUICtrlCreateInput("Input78", 184, 288, 25, 21)
    $Input79 = GUICtrlCreateInput("Input79", 224, 288, 25, 21)
    $Input80 = GUICtrlCreateInput("Input80", 256, 288, 25, 21)
    $Input81 = GUICtrlCreateInput("Input81", 288, 288, 25, 21)
    $Label1 = GUICtrlCreateLabel("S U D O K U", 64, 16, 185, 41)
    GUICtrlSetFont(-1, 24, 400, 4, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x0000FF)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Zahlen für das Spiel:
    001 = Spiel1
    **Stufe1** = Stufe 1
    Die ersten neun Zahlen sind die oberste Reihe von links nach rechts.
    Die nächsten neun Zahlen die zweite Reihe von links nach rechts.
    usw.

    Spoiler anzeigen
    [autoit]


    001**Stufe1**000670900360005028805002100020506004009407000700100583070054261000703000084090050
    002**Stufe1**628009000109056004500872001900510467807000030060020900004907103000201709091000280
    003**Stufe1**076930000000108400300026000045080130010567090200310058068002005704000982020003710
    004**Stufe1**120500360300009020007208004019000873403897001002350400000000087850016900200980140
    005**Stufe1**906020100020050460000009730004260070700030608030871204800700041213000090490308006
    001**Stufe2**007000300050908004900030060070004080102070900000500006800010000000000405060007000
    002**Stufe2**060070008900104070003000500200007000008050906030900020000600010805000000000030007
    003**Stufe2**000400050107000000000060003800003000001070904060900080040030001900502030006000700
    004**Stufe2**004010050050900208300006000020000100000403000005000060000700005901004030070060900
    005**Stufe2**500000006004902010070050900020004060900060803007100000000080200401000000000006070
    001**Stufe3**009050200500000004000907000000204000100000005003010600035060720010000080074080510
    002**Stufe3**700100002010070000008005300800000650006809000400300000009004000503600000000003071
    003**Stufe3**200000140001209000500800000600700003070060000002004800009005000408100000000008067
    004**Stufe3**000300150309001000200800000008009000100502000002000046600400007040060000005003200
    005**Stufe3**003500100000010050700004008240000800000809002000700600000006009000200407015007000

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

    Na Klar sollte dr User nicht jedes mal wieder von vorne anfangen, sonden Spiel-Nummer und Stufe wählen können.

    Ich werde für Stufe 1->150, für Stufe 2->300 und für Stufe 3->150 Spiele tippen.
    Da ich hier massen kleine Sudoku Helfte habe, komme ich beim abtippen vllt. sogar auf wesentlich mehr, aber die kann man ja auch später einbauen.

    Als Anhang noch mal die *.au3, die *.txt und die *.kxf

    LG Lina

    Dateien

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hi Alina,

    hab zwar nicht die Zeit dabei mitzumachen, aber mal ein Vorschlag.
    Verwende OnEvent Mode, dann kannst du bereits während der Eingabe prüfen und z.B. farblich markieren.
    Für die grafische Darstellung würde ich quadratische Inputs empfehlen, Style: zentriert und immer in 9-er Blöcken etwas gruppiert.
    Mal mein Vorschlag:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    ; erster 9-er Block oben links: Input 1-9
    ; Blöcke von oben li. nach rechts, dann mitte li.nach rechts, dann unten links nach rechts
    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("AForm1", 267, 283, 193, 115)
    GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")
    $Input1 = GUICtrlCreateInput("", 30, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput1Change")
    $Input2 = GUICtrlCreateInput("", 51, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput2Change")
    $Input3 = GUICtrlCreateInput("", 72, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput3Change")
    $Input4 = GUICtrlCreateInput("", 30, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput4Change")
    $Input5 = GUICtrlCreateInput("", 51, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput5Change")
    $Input6 = GUICtrlCreateInput("", 72, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput6Change")
    $Input7 = GUICtrlCreateInput("", 30, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput7Change")
    $Input8 = GUICtrlCreateInput("", 51, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput8Change")
    $Input9 = GUICtrlCreateInput("", 72, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput9Change")
    $Input10 = GUICtrlCreateInput("", 100, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput10Change")
    $Input11 = GUICtrlCreateInput("", 121, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput11Change")
    $Input12 = GUICtrlCreateInput("", 142, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput12Change")
    $Input13 = GUICtrlCreateInput("", 100, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput13Change")
    $Input14 = GUICtrlCreateInput("", 121, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput14Change")
    $Input15 = GUICtrlCreateInput("", 142, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput15Change")
    $Input16 = GUICtrlCreateInput("", 100, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput16Change")
    $Input17 = GUICtrlCreateInput("", 121, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput17Change")
    $Input18 = GUICtrlCreateInput("", 142, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput18Change")
    $Input19 = GUICtrlCreateInput("", 170, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput19Change")
    $Input20 = GUICtrlCreateInput("", 191, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput20Change")
    $Input21 = GUICtrlCreateInput("", 212, 50, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput21Change")
    $Input22 = GUICtrlCreateInput("", 170, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput22Change")
    $Input23 = GUICtrlCreateInput("", 191, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput23Change")
    $Input24 = GUICtrlCreateInput("", 212, 71, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput24Change")
    $Input25 = GUICtrlCreateInput("", 170, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput25Change")
    $Input26 = GUICtrlCreateInput("", 191, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput26Change")
    $Input27 = GUICtrlCreateInput("", 212, 92, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput27Change")
    $Input28 = GUICtrlCreateInput("", 30, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput28Change")
    $Input29 = GUICtrlCreateInput("", 51, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput29Change")
    $Input30 = GUICtrlCreateInput("", 72, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput30Change")
    $Input31 = GUICtrlCreateInput("", 30, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput31Change")
    $Input32 = GUICtrlCreateInput("", 51, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput32Change")
    $Input33 = GUICtrlCreateInput("", 72, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput33Change")
    $Input34 = GUICtrlCreateInput("", 30, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput34Change")
    $Input35 = GUICtrlCreateInput("", 51, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput35Change")
    $Input36 = GUICtrlCreateInput("", 72, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput36Change")
    $Input37 = GUICtrlCreateInput("", 100, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput37Change")
    $Input38 = GUICtrlCreateInput("", 121, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput38Change")
    $Input39 = GUICtrlCreateInput("", 142, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput39Change")
    $Input40 = GUICtrlCreateInput("", 100, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput40Change")
    $Input41 = GUICtrlCreateInput("", 121, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput41Change")
    $Input42 = GUICtrlCreateInput("", 142, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput42Change")
    $Input43 = GUICtrlCreateInput("", 100, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput43Change")
    $Input44 = GUICtrlCreateInput("", 121, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput44Change")
    $Input45 = GUICtrlCreateInput("", 142, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput45Change")
    $Input46 = GUICtrlCreateInput("", 170, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput46Change")
    $Input47 = GUICtrlCreateInput("", 191, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput47Change")
    $Input48 = GUICtrlCreateInput("", 212, 120, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput48Change")
    $Input49 = GUICtrlCreateInput("", 170, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput49Change")
    $Input50 = GUICtrlCreateInput("", 191, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput50Change")
    $Input51 = GUICtrlCreateInput("", 212, 141, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput51Change")
    $Input52 = GUICtrlCreateInput("", 170, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput52Change")
    $Input53 = GUICtrlCreateInput("", 191, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput53Change")
    $Input54 = GUICtrlCreateInput("", 212, 162, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput54Change")
    $Input55 = GUICtrlCreateInput("", 30, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput55Change")
    $Input56 = GUICtrlCreateInput("", 51, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput56Change")
    $Input57 = GUICtrlCreateInput("", 72, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput57Change")
    $Input58 = GUICtrlCreateInput("", 30, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput58Change")
    $Input59 = GUICtrlCreateInput("", 51, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput59Change")
    $Input60 = GUICtrlCreateInput("", 72, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput60Change")
    $Input61 = GUICtrlCreateInput("", 30, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput61Change")
    $Input62 = GUICtrlCreateInput("", 51, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput62Change")
    $Input63 = GUICtrlCreateInput("", 72, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput63Change")
    $Input64 = GUICtrlCreateInput("", 100, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput64Change")
    $Input65 = GUICtrlCreateInput("", 121, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput65Change")
    $Input66 = GUICtrlCreateInput("", 142, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput66Change")
    $Input67 = GUICtrlCreateInput("", 100, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput67Change")
    $Input68 = GUICtrlCreateInput("", 121, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput68Change")
    $Input69 = GUICtrlCreateInput("", 142, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput69Change")
    $Input70 = GUICtrlCreateInput("", 100, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput70Change")
    $Input71 = GUICtrlCreateInput("", 121, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput71Change")
    $Input72 = GUICtrlCreateInput("", 142, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput72Change")
    $Input73 = GUICtrlCreateInput("", 170, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput73Change")
    $Input74 = GUICtrlCreateInput("", 191, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput74Change")
    $Input75 = GUICtrlCreateInput("", 212, 190, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput75Change")
    $Input76 = GUICtrlCreateInput("", 170, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput76Change")
    $Input77 = GUICtrlCreateInput("", 191, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput77Change")
    $Input78 = GUICtrlCreateInput("", 212, 211, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput78Change")
    $Input79 = GUICtrlCreateInput("", 170, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput79Change")
    $Input80 = GUICtrlCreateInput("", 191, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput80Change")
    $Input81 = GUICtrlCreateInput("", 212, 232, 21, 21, BitOR($ES_NUMBER, $ES_CENTER))
    GUICtrlSetOnEvent(-1, "AInput81Change")
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

    Func AForm1Close()
    Exit
    EndFunc

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


    Func AInput10Change()

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

    EndFunc

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


    Func AInput11Change()

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

    EndFunc

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


    Func AInput12Change()

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

    EndFunc

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


    Func AInput13Change()

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

    EndFunc

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


    Func AInput14Change()

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

    EndFunc

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


    Func AInput15Change()

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

    EndFunc

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


    Func AInput16Change()

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

    EndFunc

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


    Func AInput17Change()

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

    EndFunc

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


    Func AInput18Change()

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

    EndFunc

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


    Func AInput19Change()

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

    EndFunc

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


    Func AInput1Change()
    MsgBox(0, '', "Hat sich was geändert")
    EndFunc

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


    Func AInput20Change()

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

    EndFunc

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


    Func AInput21Change()

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

    EndFunc

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


    Func AInput22Change()

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

    EndFunc

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


    Func AInput23Change()

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

    EndFunc

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


    Func AInput24Change()

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

    EndFunc

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


    Func AInput25Change()

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

    EndFunc

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


    Func AInput26Change()

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

    EndFunc

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


    Func AInput27Change()

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

    EndFunc

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


    Func AInput28Change()

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

    EndFunc

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


    Func AInput29Change()

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

    EndFunc

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


    Func AInput2Change()

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

    EndFunc

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


    Func AInput30Change()

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

    EndFunc

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


    Func AInput31Change()

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

    EndFunc

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


    Func AInput32Change()

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

    EndFunc

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


    Func AInput33Change()

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

    EndFunc

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


    Func AInput34Change()

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

    EndFunc

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


    Func AInput35Change()

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

    EndFunc

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


    Func AInput36Change()

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

    EndFunc

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


    Func AInput37Change()

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

    EndFunc

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


    Func AInput38Change()

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

    EndFunc

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


    Func AInput39Change()

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

    EndFunc

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


    Func AInput3Change()

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

    EndFunc

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


    Func AInput40Change()

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

    EndFunc

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


    Func AInput41Change()

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

    EndFunc

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


    Func AInput42Change()

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

    EndFunc

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


    Func AInput43Change()

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

    EndFunc

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


    Func AInput44Change()

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

    EndFunc

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


    Func AInput45Change()

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

    EndFunc

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


    Func AInput46Change()

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

    EndFunc

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


    Func AInput47Change()

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

    EndFunc

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


    Func AInput48Change()

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

    EndFunc

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


    Func AInput49Change()

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

    EndFunc

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


    Func AInput4Change()

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

    EndFunc

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


    Func AInput50Change()

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

    EndFunc

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


    Func AInput51Change()

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

    EndFunc

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


    Func AInput52Change()

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

    EndFunc

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


    Func AInput53Change()

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

    EndFunc

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


    Func AInput54Change()

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

    EndFunc

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


    Func AInput55Change()

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

    EndFunc

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


    Func AInput56Change()

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

    EndFunc

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


    Func AInput57Change()

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

    EndFunc

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


    Func AInput58Change()

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

    EndFunc

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


    Func AInput59Change()

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

    EndFunc

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


    Func AInput5Change()

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

    EndFunc

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


    Func AInput60Change()

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

    EndFunc

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


    Func AInput61Change()

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

    EndFunc

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


    Func AInput62Change()

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

    EndFunc

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


    Func AInput63Change()

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

    EndFunc

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


    Func AInput64Change()

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

    EndFunc

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


    Func AInput65Change()

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

    EndFunc

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


    Func AInput66Change()

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

    EndFunc

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


    Func AInput67Change()

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

    EndFunc

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


    Func AInput68Change()

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

    EndFunc

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


    Func AInput69Change()

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

    EndFunc

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


    Func AInput6Change()

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

    EndFunc

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


    Func AInput70Change()

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

    EndFunc

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


    Func AInput71Change()

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

    EndFunc

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


    Func AInput72Change()

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

    EndFunc

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


    Func AInput73Change()

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

    EndFunc

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


    Func AInput74Change()

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

    EndFunc

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


    Func AInput75Change()

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

    EndFunc

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


    Func AInput76Change()

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

    EndFunc

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


    Func AInput77Change()

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

    EndFunc

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


    Func AInput78Change()

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

    EndFunc

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


    Func AInput79Change()

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

    EndFunc

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


    Func AInput7Change()

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

    EndFunc

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


    Func AInput80Change()

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

    EndFunc

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


    Func AInput81Change()

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

    EndFunc

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


    Func AInput8Change()

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

    EndFunc

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


    Func AInput9Change()

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

    EndFunc

    [/autoit]
  • Hallo BugFix und th.meger.

    @ BugFix:
    Die Vorschläge sind notiert.

    @ th.meger:
    Hast Du dir mal die Beiträge und Lösdungen im englischen Forum angesehen? Also cih bekommen die schnell geläßt, aber ich glaube ich, das einer der wenig erfahrugn damit hat, die Lösungen findet bzw. dann auch noch spaß hat sich mit Sudoku weiter zu beschäftigen. Man fängt eigentlich bei einem Spiel vorsichtig (leicht) an und nciht gleich mit den schweren 14-er oder so.

    Hier haben ja auch einige Beoträge dazu gemacht, da ist mir nur aufgefallen, das schon die vorgegebenen Zahlen fehlerhaft sind, da Zahlen in den Vorgaben schon doppelt sind. Ist ja nciht böse gemeint, nur vielleicht findet man im gemeinsamen Projekt eine gute Lösung.

    Wie geschrieben, es soll ein Gemeinschaftsprojekt werden !!!

    Liebe Grüße.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Also, Projekte und so find ich ja immer gut, nur Soduku....
    Ich selbst wollte das mal machen, das endete in einer 2 Stündigen Konsultation mit BugFix...es ist einfach verdammt schwer, fand ich zumindest :D


    Also ich rat dir davon ab....kann dir aber auch nicht wirklich einen anderen Vorschlag machen ;)


    Naja, war nur ein gutgemeinter Rat, am Ende entscheidest ja du....


    Also

    man liest sich


    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

  • Hallo ihr beiden.

    Bevor es hier gleich blitzt und donnert, werde ich noch schnelle antworten und dann mal den pc ausschalten, sobald es beginnt :-(((

    Ich werde mal schauen ob jemand einfach lust dazu hat. Das es nicht ganz einfach ist, das glaube ich sehr sehr gerne, aber das Spiel wird ja dann auch nicht einfach LOL. Leich anfangen und mit Power später die letzten Levels schaffen.

    Liebe Grüße,

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Ich denke mal, dass Probleme Autoit betreffend wohl weniger aufkommen.
    Das Hauptproblem bei Sudoku ist, einen effektiven mathematischen Ansatz zu finden, der alle Bedingungen dieses Spiels berücksichtigt. Da gibt es sicher Unmengen an Varianten. Das ist ziemlich komplex. Wenn man das hat, ist die Umsetzung in den Programmcode sicher das wenigste.

    Alina, da du Formeln magst, ist das genau das richtige für dich. Viel Spaß!

  • Hallo BugFix.

    Formeln sind doch was feines, oder nicht?

    Die überprüfung ist doch eigentlvch ganz einfach, wenn es um die Grundfunktion geht.

    1. Prüfung:
    Summer der Horizontallinie muß jeweils 45 ergeben.

    2. Prüfung:
    Summe der Vertikallinien muß jeweils 45 ergeben.

    3. Prüfung:
    Summer eines Blockes muß jeweils 45 ergeben

    4.) Prüfung:
    Die Querrsumme der neun Blöcke muß 45 ergeben.

    Ich kann auch eine Textdatei machen, die Levels_au3.txt gleicht, wo dann die richtigen Zahlen drinne stehen. Dann braucht nicht mehr berehcnet werden, sondern nur noch direkt überprüft werden.


    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo leviathan.

    Klar steht da bereits alles.

    Was aber BugFix aber meint ist, das die Umsetzung der bekannten Formel ein großer Aufwand ist. das ganze umsetzen der Formel ist eigentlich bei vielen Softwarepaketen auch umgangen wurden und wieso soll man es hier nicht genauso machen?
    Deshalb habe ich ja vorgeschlagen, das ich eine weitere Datei erstelle, wo dann die Lösung drinne ist.
    Gleicher Aufbau wie die Levels_au3.txt, nur das die Zahlen ohne Nullen sind, sondern mit den Zahlen, die dann da rein kommen.

    Wenn ich jemanden finde, der an Projekt mit machen möchte, erstelle ich gerne so cirka eintausend Levels und die Lösungen dazu. Na klar nicht von heute auf Morgen, da ich ja auch gerade die "schweren" erst einmal lösen muß. Für die schweren (19-er Vorgabe) benötige ich cirka 20-30 Minuten, für die richtig schweren (14-er Vorgabe) cirka 45 Minuten.

    Es gibt sogar schon die EM und WM Listen von 2006 und die sind richtig geil. aber die wären dann eher was für User, die wirklich auch um mehr als vier Ecken denken können. ;)

    LG Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • mir schon klar, aber ich fände es halt so besser also selbst erstellen und lösen

  • hallo leviathan.

    klaro selber lösen und ein gui für selber welche dazu eingeben ist in arbeit. soll aber dann später ins fertige sudoku eingearbeitet werden.

    erst mal sehen ob sich jemand an den ersten schritt traut. die erweiterungen folgen dann nach und nach.

    lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hallo!

    Ich habe mal ein Programm geschrieben das die Grundfunktionen für Sudoku enthält. Damit sollte der Grundstein gelegt sein... =)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Const $ciTop = 40
    Const $ciLeft = 20
    Const $cstrIniFile = @ScriptDir & "\Sudoku.ini"

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

    Dim $arSudokuFeld[9][9] ; Speichert die ControlID's der Inputfelder
    Dim $arErgebnis[3][9] ; Zur Berechnung der Ergebnisse [0][x] = Zeile, [1][x] = Spalte, [2][x] = Block
    Dim $arLevels ; Array für die Spielstufen
    Dim $arGames ; Array für die Spiele in den Spielstufen

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

    Global $geloest = False ; Rätsel gelöst

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

    $FrmMain = GUICreate("Sudoku", 633, 454, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "FormMainClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "FormMainMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "FormMainMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "FormMainRestore")

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

    $PicLeft = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerLeft = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 113, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerRight = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 226, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicRight = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 339, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicTop = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop, 344, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerTop = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 5, $ciTop + 113, 334, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerBottom = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 5, $ciTop + 226, 334, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicBottom = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop + 339, 344, 5, BitOR($SS_NOTIFY, $WS_GROUP))

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

    For $iZeile = 0 To 8
    $iTop = $ciTop + 8 + $iZeile * 35 + Int($iZeile / 3) * 8
    For $iSpalte = 0 To 8
    $iLeft = $ciLeft + 8 + $iSpalte * 35 + Int($iSpalte / 3) * 8
    $arSudokuFeld[$iZeile][$iSpalte] = GUICtrlCreateInput("", $iLeft, $iTop, 32, 32, BitOR($ES_CENTER, $ES_NUMBER))
    GUICtrlSetOnEvent(-1, "FieldChange")
    GUICtrlSetLimit(-1, 1)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    Next
    Next

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

    $LblLevels = GUICtrlCreateLabel("Level:", $ciLeft + 360, $ciTop + 5, 50)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    $CBLevels = GUICtrlCreateCombo("", $ciLeft + 420, $ciTop + 5, 100, 100)
    GUICtrlSetOnEvent(-1, "LevelChange")

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

    $LblGames = GUICtrlCreateLabel("Spiel:", $ciLeft + 360, $ciTop + 30, 50)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    $CBGames = GUICtrlCreateCombo("", $ciLeft + 420, $ciTop + 30, 100, 100)
    GUICtrlSetOnEvent(-1, "GameChange")

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

    GUISetState(@SW_SHOW)

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

    #region -- Initialisierung
    $arLevels = IniReadSection($cstrIniFile, "Levels")
    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf

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

    $strLevels = ""
    For $iIndex = 1 To $arLevels[0][0]
    $strLevels &= $arLevels[$iIndex][1] & "|"
    Next
    $strLevels = StringTrimRight($strLevels, 1)

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

    GUICtrlSetData($CBLevels, $strLevels, StringLeft($strLevels, StringInStr($strLevels, "|") - 1))
    LevelChange()
    #endregion

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

    While 1
    If $geloest = True Then
    If MsgBox(262148, "", "Sudoku wurde gelöst!" & @CRLF & "Glückwunsch!" & @CRLF & @CRLF & "Weiterspielen ?") = 7 Then ExitLoop
    $geloest = False
    EndIf
    Sleep(100)
    WEnd

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

    Func FormMainClose()
    Exit
    EndFunc ;==>FormMainClose
    Func FormMainMaximize()

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

    EndFunc ;==>FormMainMaximize
    Func FormMainMinimize()

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

    EndFunc ;==>FormMainMinimize
    Func FormMainRestore()

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

    EndFunc ;==>FormMainRestore

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

    ; FieldChange -> eines der Inputfelder wurde geändert
    Func FieldChange()
    For $iZeile = 0 To 8
    $arErgebnis[0][$iZeile] = 0
    For $iSpalte = 0 To 8
    If $iZeile = 0 Then
    $arErgebnis[1][$iSpalte] = 0
    $arErgebnis[2][$iSpalte] = 0
    EndIf
    $iWert = Int(GUICtrlRead($arSudokuFeld[$iZeile][$iSpalte]))
    $arErgebnis[0][$iZeile] += $iWert ; Zeilenergebnis
    $arErgebnis[1][$iSpalte] += $iWert ; Spaltenergebnis
    $arErgebnis[2][Int($iZeile / 3) * 3 + Int($iSpalte / 3) ] += $iWert ; Blockergebnis
    Next
    Next

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

    $geloest = True
    For $iIndex = 0 To 8
    If $arErgebnis[0][$iIndex] <> 45 Or $arErgebnis[1][$iIndex] <> 45 Or $arErgebnis[2][$iIndex] <> 45 Then
    $geloest = False
    ExitLoop
    EndIf
    Next
    EndFunc ;==>FieldChange

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

    ; LevelChange -> Schwierigkeitsstufe wurde geändert
    Func LevelChange()
    $strLevel = GUICtrlRead($CBLevels)
    For $iIndex = 1 To $arLevels[0][0]
    If $arLevels[$iIndex][1] == $strLevel Then ExitLoop
    Next
    $arGames = IniReadSection($cstrIniFile, $arLevels[$iIndex][0])

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

    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf

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

    $strGames = ""
    For $iIndex = 1 To $arGames[0][0]
    $strGames &= $arGames[$iIndex][0] & "|"
    Next
    $strGames = StringTrimRight($strGames, 1)

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

    GUICtrlSetData($CBGames, "|" & $strGames, StringLeft($strGames, StringInStr($strGames, "|") - 1))
    GameChange()
    EndFunc ;==>LevelChange

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

    ; GameChange -> Neues Spiel wurde gewählt
    Func GameChange()
    $strGame = GUICtrlRead($CBGames)
    For $iIndex = 1 To $arGames[0][0]
    If $arGames[$iIndex][0] == $strGame Then ExitLoop
    Next

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

    For $iZeile = 0 To 8
    For $iSpalte = 0 To 8
    $iWert = StringMid($arGames[$iIndex][1], $iZeile * 9 + $iSpalte + 1, 1)
    If $iWert <> 0 Then
    GUICtrlSetData($arSudokuFeld[$iZeile][$iSpalte], $iWert)
    GUICtrlSetStyle($arSudokuFeld[$iZeile][$iSpalte], BitOR($ES_CENTER, $ES_NUMBER, $ES_READONLY))
    Else
    GUICtrlSetData($arSudokuFeld[$iZeile][$iSpalte], "")
    GUICtrlSetStyle($arSudokuFeld[$iZeile][$iSpalte], BitOR($ES_CENTER, $ES_NUMBER))
    EndIf
    Next
    Next
    EndFunc ;==>GameChange

    [/autoit]

    Ich war mal so frei die Levels in eine Ini-Datei zu schreiben (ist einfacher zu händeln). Dabei ist nur zu beachten das die Schlüsselnamen unter der Section [Levels] als Sectionnamen für die Spiele verwendet werden.

    Spoiler anzeigen


    Edit: Dateianhang entfernt -> veraltet

  • Hallo Bernd und alle.

    erst einmal Dank bis hier her.

    Bernd, wenn das nicht super ausschaut, dann weiß ich auch nicht. Die Idee mit der INI-Datei ist super. Bis halt echt ein sehr helles "Köpfchen" <-- ist Spaß und nicht beleidigend auffassen bitte.

    Dann noch ein Restore-Button und dann war es das doch schon.

    Ich werde mal versuchen ein Level-Greator her zu stellen, aber weiß noch nicht wie ich das machen soll.
    Gibt es eine möglichkeit, aus der INI zu sehen, welche Levels schon vergeben sind und wie das nächste Level heißen muß? Wenn ja, wie ?

    Wie machen wir da weiter?

    Ich werde mal cirka 1.000 Levels eingeben. ;)

    Liebe Grüß,

    Lina

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    2 Mal editiert, zuletzt von Alina (8. Mai 2007 um 17:31)

  • mmh na mit Random, und sagst dann halt das es solange gemacht werden soll bis alle ergebnisse des Inireads (die in einem Array ausgegeben werden) nicht mit der aktuellen Zusammenstellung übereinstimmen


    Do
    _Restore
    Until Not$Restore = $Iniread[$i]


    oda iwie so :D


    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    Einmal editiert, zuletzt von Waluev (8. Mai 2007 um 17:36)

    • Offizieller Beitrag
    Zitat

    Original von Alina
    ...

    Bernd, wenn das nicht super ausschaut, dann weiß ich auch nicht. Die Idee mit der INI-Datei ist super. Bis halt echt ein sehr helles "Köpfchen" <-- ist Spaß und nicht beleidigend auffassen bitte.

    ...

    Warum sollte ich das als beleidigend auffassen, wenns doch stimmt! ;)


    Level-Generator wird schwierig aber ein Level-Editor wäre kein Problem!

  • Also son Sudoku spiel wollt ich schon immer mal machen.
    ich würd da mal mitmachen.

    also ich denk das man dafür nen generator machen sollte wobei ich auch nich weis wie^^

    Waluev : wenn mans nich hinkricht dann kann mans ja immer noch lassen.

  • hä? war das jez auf meinen 1. Post oder auf das mit dem Iniread bezogen?

    Und wegen LevelEditor, seh ich auch so, generator passt doch. "Einfach" in die Inputs ein Random zwischen 1 und 9 oda 14 oda was auch immer setzen..


    Waluev

    Edit:

    Ich weiß nicht langsam reizt mich die Sache auch, weil ich es ja schonmal begonnen hatte und dann will ich es natürlich auch beenden.

    Ich hab ja zur Zeit aber auch das Pokerprjekt laufen, also wenn ihr das ganz in Ruhe ohne Zeitdruck angehen wollt bin ich dabei, falls ihr schnell viel Zeit investieren wollt leider nicht...


    Waluev zum Zweiten

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    Einmal editiert, zuletzt von Waluev (8. Mai 2007 um 18:45)

  • waluev es ist nicht so einfach nur ein paar zahlen zu generieren XD

    Alina ich werde natürlich gerne testen