Sodoku Lösen etc

  • Nun ich weiß, sowas gibt es schon. aber ich frage mich, wie ein script aussehen müsste, damit sowas klappen kann.
    Wer es nicht kennt: sodoku besteht aus 9x9 feldern, wo in jeder spalte, zeile und in jedem der vier blöcke die zahlen 1-9 einmal vorkommen müssen.

    Als ich mir das erste mal gedanken drüber gemacht habe, hab ich mir überlegt,
    eine art schleife zu schrieben wo erst alle fehlenden zahl pro spalte eingretragen werden, danahc lasse ich senkrecht und pro block nach wiederholungen suchen und ersetzten.
    nach 20-30 wiederholungen sollte es schnell gehen :)

    nun ich hatte mal eher aus spass vor sowas zu schreiben, aber wenn man davor sitzt sieht es echt kompliziert aus....
    was habt ihr fuer ideen wie sowas gelöst werden kann?

  • Du kannst ja mal am anfang - jedem feld auch eine Farbe geben (farbsudokus), und auf jeder farbe darf nur 1x die Zahl sein, so ist es sicher wesentlich einfacher

  • verschiedene sodoku lösungen anschauen und einen algorithmus suchen (viel spass)

    ich hatte mal ein ähnliches programm geschrieben.

    Da gab es ein rätsel indem vorgegeben wird, wieviel kästchen es sein sollen z.b. 9

    0 0 0

    0 0 0

    0 0 0

    Bedingung:

    - jede Zahl nur einmal
    - Summe diagonal, waagerecht und senkrecht immer gleich

    Lösung:
    Summe= Quersumme / Anzahl der Summanten
    Summe = 15

    Die Mitte lässt sich auch errechnen, unzwar Quersumme / Anzahl der also Felder
    Mitte = 5

    Lösung z.B.:

    4 3 8

    9 5 1

    2 7 6

    Dabei fällt auf, dass äußere Werte gerade und innere ungerade sind.

    Soweit so gut...

    Das Beispiel hier ist zwar etwas einfacher, als wie bei Sodoku.

    Man schaut sich jetzt die Lösung an, am besten mehrere und versucht Regelmäßigenkeiten herauszufinden, welcher in den Fall Grundlage ist.

    Wenn Intresse besteht schreib ich den COde nochmal :P

    Einmal editiert, zuletzt von daflowjoe (7. November 2006 um 14:47)

  • nen algorythmus bei sodoku?^^ oha -.-'
    nun im moment prob ich mich am GUI (komm nicht sehr gut drauf klar, lerne grade etc^^)
    bei gelegenheit (meist am wochenende) guck ich mir immer den script an und schreib 10zeilen dazu...
    naja zwar bezweifle ich das es fertig wird aber die hoffnung besteht :D solange bis der nächste format c: {enter} kommt^^
    -----------------
    ich hab vor jedet zahl eine art "bit zahl" zuzuordnen, anhand der ich errechnen kann welche zahl fehlt etc.

    Code
    Zahl  |  Bit
    1     |   1
    2     |   2
    3     |   4
    4     |   8


    und so weiter. dann rechne ich einfach die "bits" zusammen, pro zeile/spalte/zahlen block darf nur ein bit wert von 15 existieren.(1+2+4+8=15)
    wenn ich jez alle felder belegt hab und in einer zeile meinetwegen die bit zahl 14 ist, kann man mitsicherheit sagen, das es keine 2 aber zwei 1ser gibt. undso weiter...
    testweise probier ich mich übrigends an einem 4x4 feld ^^

    Einmal editiert, zuletzt von Phillipk (7. November 2006 um 18:43)