Gerade-ungerade Sudoku

Auch als Sudokulino ist mir diese Form eines Sudoku begegnet. Naben den üblichen Bedingungen – jede Ziffer nur einmal pro Reihe und Spalte – gilt hier noch: Rechts, links, oben, unten benachbarte Zahlen dürfen keine Nachbarzahlen sein, sie müssen sich um mehr als 1 unterscheiden.

XML-Struktur

In Erinnerung an Michael Kays XSLT-Lösung des Rösselsprungs (»Knight’s Tour«) fassen wir das XML ganz einfach, indem wir alle Felder einfach der Reihe nach angeben.

<fields max="6">
 <field val="5"/><field /><field /><field /><field /><field val="2" />
 <field /><field /><field /><field /><field val="4" /><field val="6" />
 <field /><field val="5" /><field val="3" /><field /><field /><field />
 <field val="4"/><field /><field /><field /><field val="5" /><field />
 <field val="2"/><field val="6" /><field /><field /><field /><field />
 <field /><field /><field /><field /><field val="1" /><field val="3" />
</fields>

Jetzt benötigt es Methoden, um für ein beliebiges Feld festzustellen, welche Ziffern gültig sind. Damit lassen sich alle eindeutigen Zuordnungen durchführen und nach ein paar Runden ist das Quiz gelöst. Was aber, wenn es einmal keine eindeutige Lösung gibt?