Ich habe ein Gitter mit Plättchen in einem Spiel und jedes Plättchen kann eine bestimmte einfache Form haben.
Ich möchte in der Lage sein zu bestimmen, ob die kombinierte Form aus einer bestimmten Anordnung dieser Kacheln zu einer "ungebrochenen" oder "gebrochenen" größeren Form führt.
Zum Beispiel; Dies ist ein Beispiel für eine "ungebrochene" Form ...
Und dies ist ein Beispiel für eine "gebrochene" Form ...
Ich werde in der Lage sein, den erforderlichen Code zu schreiben, sobald ich die Logik dieses Problems herausgefunden habe, aber bisher habe ich Probleme.
Ich habe Datentabellen ausprobiert, die jeder Kachel zugeordnet sind und deren Kanten beschreiben, zum Beispiel:
var edges = {
top : false,
right : true,
bottom : true,
left : false
}
Und daraus kann ich feststellen, ob jede Kachel mit ihren Nachbarn verbunden ist. Dies hilft jedoch nicht in allen Situationen.
EDIT 1: Mehrere Cluster von isolierten "ungebrochenen" Formen würden als "gebrochene" Form betrachtet ...
EDIT 2:
Eine "ungebrochene" Form kann auch erreicht werden, wenn die Kante einer Formkachel nicht mit jeder benachbarten Kachel verbunden ist, sondern nur eine Verbindung. Zum Beispiel würde ich dies als "ungebrochen" betrachten ...
Hat jemand Ideen dazu?