Jede Nonogramm-Zelle gehört genau zu einer Zeile und einer Spalte. Beim kreuzweisen Auswerten nutzt du einen sicheren Zustand, der in einer Richtung bewiesen wurde, sofort als neue Einschränkung in der senkrechten Richtung.
Dieser Informationsfluss verwandelt isolierte Linienschlüsse in Fortschritt über das gesamte Raster.
Eine Zelle hat in beiden Richtungen dieselbe Wahrheit
Beweist Zeilenlogik, dass R3C5 gefüllt ist, besitzt Spalte 5 ab sofort an Zeile 3 eine bestätigte Füllung.
Beweist Spaltenlogik, dass R3C2 leer ist, enthält Zeile 3 an Spalte 2 ein bestätigtes X.
Es gibt keinen getrennten „Zeilenzustand“ und „Spaltenzustand“. Beide Hinweisfolgen beschreiben dieselbe Zelle.
Beispiel: Ein X aus einer Spalte entsperrt eine Zeile
Angenommen, Zeile 3 hat Hinweis 3. Sie enthält bereits eine sichere Füllung in Spalte 3. Spalte 2 beweist zusätzlich, dass R3C2 leer ist.
Die Zeile sieht nun so aus:
? × ■ ? ?
Ein Dreierblock muss die bekannte Füllung abdecken und darf das X nicht kreuzen. Die einzige legale Platzierung ist damit Spalte 3–5. R3C4 und R3C5 werden gefüllt.
Diese beiden neuen Füllungen werden sofort zu Informationen für Spalten 4 und 5.
Genau das ist die Grundform der Kreuzreferenzierung: Eine senkrechte Schlussfolgerung reduziert die legalen Muster einer Linie, die wiederum andere senkrechte Linien verändert.
Warum der Wechsel der Richtung so wichtig ist
Wenn du nur Zeilen löst, bis sie scheinbar nichts mehr liefern, ignorierst du die Information, die diese Zeilen längst an die Spalten abgegeben haben.
Ein produktiver Rhythmus ist:
- eine aussichtsreiche Zeile auswerten;
- die Spalten prüfen, deren Zellen sich geändert haben;
- neu eingeschränkte Spalten lösen;
- zu den Zeilen zurückkehren, die dadurch neue Zustände erhalten haben;
- die Kette fortsetzen, bis sie endet.
Gefüllte und leere Zellen sind gleich wertvoll
Einsteiger übertragen gedanklich oft nur Füllungen. X-Markierungen sind genauso starke Informationen.
Eine Leerzelle kann:
- eine Linie in Segmente teilen;
- die Reichweite eines Blocks verkleinern;
- zwei Fragmente am Verbinden hindern;
- einen Hinweis in ein anderes Segment zwingen;
- exakte Einpassung oder Überlappung erzeugen.
Kreuzweises Auswerten ist kein Raten aus dem Bild
Das entstehende Motiv kann suggerieren, dass eine Zelle „offensichtlich“ gefüllt sein sollte. Das ist keine Kreuzreferenzierung.
Eine gültige Übertragung hat immer eine nachvollziehbare Quelle:
Diese Zeilen- oder Spaltenbedingung hat den Zellzustand bewiesen; deshalb muss die senkrechte Linie denselben Zustand respektieren.
Das Bild entsteht aus der Logik. Es ist kein zusätzlicher Hinweis.
Geänderte Linien zuerst prüfen
Nach jedem Zug musst du nicht das ganze Raster neu scannen.
Wenn eine Zelle ihren Zustand ändert, hat genau ihre senkrechte Linie neue Information erhalten. Prüfe sie zuerst.
Diese einfache Gewohnheit beschleunigt manuelles Lösen deutlich und entspricht dem Prinzip einer Arbeitswarteschlange, das auch viele Solver verwenden.
Bewahre bei schwierigen Zellen die Herkunft der Schlussfolgerung
Auf leichten Puzzles erinnerst du dich meist automatisch, warum eine Zelle gefüllt oder leer ist. Auf großen Rastern hilft eine einfache Provenienz: Welche Linie und welche Regel haben diesen Zustand bewiesen?
Zum Beispiel:
Zeile 8 zwang C12 leer, weil ihr letzter Viererblock abgeschlossen war; dadurch verlor Spalte 12 alle Muster, die R8 füllen.
Diese Rückverfolgbarkeit ist besonders hilfreich, wenn du einen vermuteten Fehler suchst, eine lange Kaskade nachvollziehst oder mit einem provisorischen Testzweig arbeitest. Sie trennt einen echten Puzzle-Widerspruch von einer versehentlich falsch gesetzten Zelle.
Kreuzreferenziere auch innerhalb kontrollierter Fallanalyse korrekt
Erkundest du einen hypothetischen Zweig, schränken seine Zellzustände die senkrechten Linien innerhalb dieses Zweigs ganz normal ein. Sie sind aber keine dauerhaften Fakten des Hauptpuzzles.
Halte solche branch-lokalen Kreuzinformationen getrennt. Übertrage einen Zustand erst zurück, wenn ein Zweig einen Widerspruch beweist oder jede vollständige Fallalternative dieselbe Konsequenz liefert.
Von einer Kreuzreferenz zur Kaskade
Eine Zeile erzwingt vielleicht eine Zelle. Diese Zelle verändert eine Spalte. Die Spalte erzwingt zwei weitere Zellen, die wiederum zwei Zeilen verändern.
Sobald du diesen Prozess systematisch bis zum Ende verfolgst, sprichst du von einer Constraint-Propagation-Kaskade.
Schritt-für-Schritt-Schleife
- Beweise einen Zellzustand in einer Linie.
- Markiere ihn im Raster.
- Bestimme die senkrechte Linie durch diese Zelle.
- Werte deren Hinweise gegen alle bekannten Zustände neu aus.
- Markiere neue sichere Zellen.
- Wiederhole den Prozess für jede dadurch veränderte senkrechte Linie.
- Stoppe erst, wenn keine geänderte Linie eine weitere sichere Schlussfolgerung liefert.
Häufige Fehler
Eine Zeile abschließen und zu einer völlig anderen Zeile springen
Prüfe zuerst die Spalten, die du gerade verändert hast. Dort liegt die frischeste Information.
Füllungen übertragen, aber X-Markierungen ignorieren
Beide Zustände reduzieren legale Muster.
Eine plausible Bildkante als Kreuzreferenz behandeln
Nur bewiesene Zeilen-/Spaltenlogik darf Information übertragen.
Unveränderte Linien immer wieder prüfen, während geänderte liegen bleiben
Nutze geänderte Zellen als Navigationssystem.
Was du als Nächstes lernen solltest
Kreuzreferenzierung wird zu Constraint-Propagation, wenn du den Informationsfluss konsequent wiederholst, bis sämtliche unmittelbaren Folgen ausgeschöpft sind.
FAQ
Ist Kreuzreferenzierung eine fortgeschrittene Technik?
Nein. Sie ist grundlegend. Schon einfache Nonogramme funktionieren durch den wiederholten Informationsaustausch zwischen Zeilen und Spalten.
Sollte ich zuerst alle Zeilen und danach alle Spalten lösen?
In der Regel nein. Wechsle dorthin, wo neue Information entstanden ist.
Kann eine einzige Zelle mehrere spätere Schlussfolgerungen auslösen?
Ja. Genau dieser Ketteneffekt bildet die Grundlage für Propagation und Kaskaden.