Die Winkel sind ja vorgegeben. Dadurch kann man das tatsächlich einfach als eine Verkettung angeben. Dann hat man ein Streichholz, welches einen Winkel hat und verbundene Streichhölzer.
Das geht prinzipiell. Damit hat man dann eine Representation.
Aber um gleich liegende Streichhölzer zu finden, muss man erkennen, welche Streichhölzer gleich liegen, Da könnte es also helfen, Positionen zumindest ermitteln zu können. Beispiel:
Streichholz gerade, dann geht es schräg hoch, dann wieder schräg runter und wieder ein gerades Streichholz.
Das Ziel ist gleich, nur eben geht es nicht hoch sondern runter. Die beiden geraden Streichhölzer sind also auf der gleichen Position. Das muss auch erkannt werden.
Da muss man sich also überlegen, wie man das macht.... Durch die Begrenzung auf jeweils 30° hat man das etwas vereinfacht. Dadurch hat man Bewegungen in x bzw y Richtung von 0, 0,5, 0,866 oder 1, also (0/1), (0,5/0,866), (0,866/0,5), (1/0) wenn man nur einen Sektor betrachtet. Das natürlich beliebig gespiegelt also auch alles mit - oder eben nicht dabei. Und Angabe in Streichholzlängen. Also wenn ich ein Streichholz in 30° hinlege, dann geht es in eine Richtung um 0,86 Streichholzlängen und in die andere Richtung um 0,5 Streichholzlängen.
Oder anders ausgedrückt: Dreieck mit Seitenlänge 1, 0,5 und 0,86 ist ein rechtwinklinges Dreieck mit den beiden anderen Winkeln: 30° und 60°.
Die 0,866 ist natürlich nur ein Näherungswert. sin(60°) ist 0,86602540378443864676372317075294....
Ich würde Koordinaten angeben als Menge an 0,5er und 0,866er Schritte. Damit hat man dann Punkte, deren x und y Koordinate immer als zwei int Werte dargestellt werden. Dadurch vermeidet man Ungenauigkeiten bei Double Werten und man kann diese Punkte gut erfassen.
Dann hat man also zwei Darstellungen.
Eine Darstellung ist eine Menge von Punkten, deren Koordinaten (und Winkel) ich wie oben beschrieben speichere.
Eine Darstellung kann ich verschieben. Ich kann also die Position jedes Streichholz einer Darstellung so verändern, dass ein gewähltes Streichholz einen bestimmten Anfangspunkt hat.
Dann kann ich also einfach hin gehen und für jedes Streichholz der ersten Darstellung hin gehen und:
- Jedes Streichholz der zweiten Darstellung prüfen, ob es die gleiche Lage hat. Ist dies der Fall, dann verschiebe ich die zweite Darstellung, so dass das verglichene Streichholz die gleiche Position hat.
--> Dann prüfe ich für jedes Streichholz der ersten Darstellung, ob es ein Streichholz mit der gleichen Position und Lage in der zweiten Darstellung gibt. (Achtung - die Richtung ist egal! Also entweder beim Vergleich beide Fälle betrachten oder einfach alle Lagen standardisieren, d.h. es wird beim einlesen direkt verändert. Also wenn nur der Winkel 0° erlaubt ist, dann wird beim Winkel 180° das Streichholz sozusagen direkt gedreht.)
--> So habe ich nun eine Summe an übereinstimmenden Streichhölzern.
Und ich merke mir in der äußeren Schleife das Maximum der übereinstimmenden Streichhölzer.
Das Ergebnis ist dann: n - maximum der übereinstimmenden Streichhölzer, d.h. es können das gefundene Maximum an Streichhölzern beibehalten werden und die übrigen (n-maximum) Streichhölzer müssen bewegt werden.
Damit haben wir natürlich auch ein Kriterium: Die Anzahl der Streichhölzer muss gleich sein. Falls wegnehmen erlaubt ist, dann muss die Anzahl der Streichhölzer im ersten größer gleich sein und n oben bezieht sich dann auf das erste (original) Bild.
Aber damit sind wir bei einer Betrachtung, die der TE so als solche nicht erfassen kann fürchte ich... Aber das ist evtl. ein Text, den er der Lehrerin um die Ohren hauen kann
