Zum Inhalt springen
VEYRAPLAY
Deutsch
Sudoku
StrategienAnfänger

Zeilen und Spalten in Nonogrammen scannen

Entwickle eine zuverlässige Scan-Routine, die neue Informationen zwischen Zeilen und Spalten weitergibt, statt unveränderte Linien immer wieder ohne Ergebnis zu prüfen.

Scannen bedeutet bei Nonogrammen nicht, jede Zeile der Reihe nach anzusehen. Eine gute Scan-Routine folgt neuer Information: Eine produktive Linie verändert Kreuzlinien, und diese Änderungen bestimmen, wo du als Nächstes hinschaust.

Konzeptdiagramm

Warum Scannen funktioniert

Jede Zelle verbindet genau eine Zeile mit genau einer Spalte.

Wenn eine Zeile eine Zelle sicher füllt oder leert, hat die zugehörige Spalte eine neue Bedingung. Dort können dadurch Blockpositionen entfallen, Grenzen entstehen oder neue Überlappungen sichtbar werden.

So entsteht eine Schleife:

Zeile → Zelle → Spalte → neue Zelle → Zeile

Nicht jede Linie gleich behandeln

Eine Linie mit vielen möglichen Anordnungen und keiner neuen Information kann im Moment tatsächlich nichts liefern.

Bevorzuge Linien, die:

  • gerade verändert wurden;
  • wenig Spielraum besitzen;
  • bekannte gefüllte Fragmente enthalten;
  • durch X in enge Segmente geteilt sind;
  • beinahe abgeschlossene Blöcke enthalten;
  • nur wenige gültige Muster übrig haben.

Eine änderungsgetriebene Schleife verwenden

Nach einer produktiven Linie:

  1. notiere die neu veränderten Zellen;
  2. priorisiere ihre Kreuzlinien;
  3. löse dort alle direkten Folgen;
  4. füge wiederum deren Kreuzlinien zur mentalen Arbeitsliste hinzu;
  5. fahre fort, bis die Kette keine neuen Zellen mehr erzeugt.

Das ist die menschliche Form von Constraint-Propagation.

Beim Scannen nach mehr als Füllungen suchen

Kann eine Zelle gefüllt werden?

Prüfe exakten Fit, Überlappung, Blockverlängerung und gültige Muster.

Kann eine Zelle leer markiert werden?

Prüfe abgeschlossene Grenzen, Reichweite, zu kleine Lücken und ausgeschöpfte Hinweise.

Ist ein Block identifizierbar geworden?

Ein Fragment kann jetzt vielleicht eindeutig einem Hinweis zugeordnet werden. Dadurch ändern sich seine legalen Grenzen.

Hat sich der nutzbare Raum verändert?

Neue X-Markierungen können aus einer langen Linie mehrere kleinere Segmente machen.

Zeilen und Spalten sind logisch symmetrisch

Es gibt keine grundsätzlich wichtigere Richtung. Dieselbe Linienlogik gilt horizontal und vertikal.

Die richtige Richtung ist diejenige, die gerade stärkere Bedingungen besitzt.

Wann solltest du das ganze Raster scannen?

Ein kompletter Durchlauf ist sinnvoll:

  • am Anfang;
  • nachdem eine große Kaskade endet;
  • wenn du nicht mehr weißt, welche Linien verändert wurden;
  • nach der Korrektur eines Fehlers;
  • wenn lokale Arbeit keinen Fortschritt mehr liefert.

Bei einem Vollscan verlangst du nicht von jeder Linie eine komplette Lösung. Du suchst die nächste Linie, die mindestens eine sichere Zelle geben kann.

Ein Recovery-Scan in zwei Durchgängen

Durchgang 1: Abschlüsse und Leerzellen

Prüfe jede Linie auf:

  • abgeschlossene Hinweise;
  • fehlende Trennzellen;
  • Zellen außerhalb jeder verbleibenden Blockreichweite;
  • Lücken, die für alle übrigen Blöcke zu klein sind.

Durchgang 2: Platzierungsdruck

Prüfe danach:

  • Überlappung;
  • engen Mindestplatz;
  • Randbeschränkungen;
  • Blöcke, die nur noch in ein Segment passen;
  • bekannte Füllungen, die den möglichen Bereich eines Blocks verkleinern.

Verfolge, was sich geändert hat

Erfahrene Solver führen oft eine mentale Queue: Eine Zeile ändert sich, also werden die betroffenen Spalten geprüft; deren Änderungen setzen wiederum Zeilen auf die Liste.

Digitale Oberflächen können aktive Zeilen hervorheben oder erledigte Hinweise markieren, aber die Logik bleibt dieselbe.

Die wichtigste Gewohnheit lautet:

Neue Information sollte eine neue Prüfung auslösen.

Endloses erneutes Scannen vermeiden

Wenn du dieselbe unveränderte Linie immer wieder prüfst, wechsle den Bereich.

Eine Linie mit mehreren gültigen Anordnungen kann aktuell wirklich nichts weiter hergeben. Später wird sie durch Kreuzinformationen erneut produktiv.

Das ist normal und Teil der Constraint-Propagation.

Ein kompakter Scan-Ablauf

  1. Mit informationsreichen Linien beginnen.
  2. Sowohl sichere Füllungen als auch sichere Leerzellen markieren.
  3. Veränderte Kreuzlinien sofort priorisieren.
  4. Abgeschlossene Blöcke schließen und Grenzen aktualisieren.
  5. Nutzbare Segmente nach neuen X neu berechnen.
  6. Wenn die lokale Kette endet, global nach der nächsten engen Linie suchen.
  7. Liefert ein kompletter Pass nichts, zu einer tieferen Technik wechseln statt zu raten.

FAQ

Ist es besser, zuerst Zeilen oder zuerst Spalten zu scannen?

Keine Richtung ist grundsätzlich besser. Beginne mit den stärksten Constraints und propagiere jede neue Markierung in die kreuzende Richtung.

Muss ich eine Linie nach jeder einzelnen Zelle sofort erneut prüfen?

Nicht zwingend nach jeder einzelnen Markierung. Aber sobald eine Linie ein nützliches Paket neuer Zustände liefert, sollten die betroffenen Kreuzlinien hohe Priorität bekommen.

Warum prüfe ich immer wieder Linien, die nichts liefern?

Meist hat sich dort seit der letzten Prüfung nichts verändert. Wechsle zu veränderten oder stärker eingeschränkten Linien oder nutze einen strukturierten Recovery-Scan.