Hallöle ihr Alle,
ich habe da ein kleines mathematisches Problemchen. Mein Quellcode ist mir viel zu lang und manuell geprägt, ich überlege die ganze Zeit, wie man das als mathematischen Ansatz mit Schleifen machen kann.
Folgendes:
Wir hier zu sehen habe ich ein Spielfeld mit 12 Orangenen Feldern (Tische) und 24 Roten Feldern. Das sind Stühle, die an den Tischen stehen.
Ich habe eine Klasse Stuhl und eine Klasse Tisch und füge jeweils 12 bzw. 24 Stück davon in mein Projekt ein.
Ich speichere je sie in einer ArrayList in einer anderen Klasse:
private ArrayList<Spielzelle> spielfeldstuhl = new ArrayList<Spielzelle>(24);```
Nun muss ich jedem Tisch zuordnen, welche Stühle an ihm dran stehen und jedem Stuhl sagen, an welchen Tischen er steht.
Es gilt: Die Elemente die gemeinsame Seiten auf dem Bild haben, stehen auch nebeneinander. ;)
Ich habe zwei Settermethoden.
Für die Stühle:
```public void setTische(Tisch...tische) {
this.tische = tische;
}```
Und für die Tische:
```public void setStuehle(Stuhl... stuhl) {
this.stuhl = stuhl;
}```
Das Spielfeld sieht ja eigentlich so regelmäßig aus, aber ich finde da kein mathematisches Modell, um das einzukürzen.
Aktuell sieht das nämlich so aus, wenn ich alles zuordne:
```Spielklasse sk = new Spielklasse();
sk.getTische().get(0).setStuehle(sk.getStuehle().get(11),sk.getStuehle().get(12),sk.getStuehle().get(13),sk.getStuehle().get(0));
sk.getTische().get(1).setStuehle(sk.getStuehle().get(1),sk.getStuehle().get(2),sk.getStuehle().get(12),sk.getStuehle().get(13));
sk.getTische().get(2).setStuehle(sk.getStuehle().get(2),sk.getStuehle().get(3),sk.getStuehle().get(13),sk.getStuehle().get(14));
sk.getTische().get(3).setStuehle(sk.getStuehle().get(3),sk.getStuehle().get(4),sk.getStuehle().get(5),sk.getStuehle().get(14));
sk.getTische().get(4).setStuehle(sk.getStuehle().get(4),sk.getStuehle().get(5),sk.getStuehle().get(15),sk.getStuehle().get(16));
sk.getTische().get(5).setStuehle(sk.getStuehle().get(5),sk.getStuehle().get(6),sk.getStuehle().get(16),sk.getStuehle().get(17));
sk.getTische().get(6).setStuehle(sk.getStuehle().get(6),sk.getStuehle().get(7),sk.getStuehle().get(17),sk.getStuehle().get(18));
sk.getTische().get(7).setStuehle(sk.getStuehle().get(7),sk.getStuehle().get(18),sk.getStuehle().get(19),sk.getStuehle().get(20));
sk.getTische().get(8).setStuehle(sk.getStuehle().get(7),sk.getStuehle().get(8),sk.getStuehle().get(20),sk.getStuehle().get(21));
sk.getTische().get(9).setStuehle(sk.getStuehle().get(8),sk.getStuehle().get(9),sk.getStuehle().get(21),sk.getStuehle().get(22));
sk.getTische().get(10).setStuehle(sk.getStuehle().get(9),sk.getStuehle().get(10),sk.getStuehle().get(22),sk.getStuehle().get(23));
sk.getTische().get(11).setStuehle(sk.getStuehle().get(9),sk.getStuehle().get(10),sk.getStuehle().get(11),sk.getStuehle().get(0));
sk.getStuehle().get(0).setTische(sk.getTische().get(11),sk.getTische().get(0));
sk.getStuehle().get(1).setTische(sk.getTische().get(1));
sk.getStuehle().get(2).setTische(sk.getTische().get(1),sk.getTische().get(2));
sk.getStuehle().get(3).setTische(sk.getTische().get(2),sk.getTische().get(3));
sk.getStuehle().get(4).setTische(sk.getTische().get(3),sk.getTische().get(4));
sk.getStuehle().get(5).setTische(sk.getTische().get(3),sk.getTische().get(4),sk.getTische().get(5));
sk.getStuehle().get(6).setTische(sk.getTische().get(5),sk.getTische().get(6));
sk.getStuehle().get(7).setTische(sk.getTische().get(6),sk.getTische().get(7),sk.getTische().get(8));
sk.getStuehle().get(8).setTische(sk.getTische().get(8),sk.getTische().get(9));
sk.getStuehle().get(9).setTische(sk.getTische().get(9),sk.getTische().get(10),sk.getTische().get(11));
sk.getStuehle().get(10).setTische(sk.getTische().get(10),sk.getTische().get(11));
sk.getStuehle().get(11).setTische(sk.getTische().get(11),sk.getTische().get(0));
sk.getStuehle().get(12).setTische(sk.getTische().get(0),sk.getTische().get(1));
sk.getStuehle().get(13).setTische(sk.getTische().get(1),sk.getTische().get(2),sk.getTische().get(0));
sk.getStuehle().get(14).setTische(sk.getTische().get(2),sk.getTische().get(3));
sk.getStuehle().get(15).setTische(sk.getTische().get(4));
sk.getStuehle().get(16).setTische(sk.getTische().get(4),sk.getTische().get(5));
sk.getStuehle().get(17).setTische(sk.getTische().get(5),sk.getTische().get(6));
sk.getStuehle().get(18).setTische(sk.getTische().get(6),sk.getTische().get(7));
sk.getStuehle().get(19).setTische(sk.getTische().get(7));
sk.getStuehle().get(20).setTische(sk.getTische().get(7),sk.getTische().get(8));
sk.getStuehle().get(21).setTische(sk.getTische().get(8),sk.getTische().get(9));
sk.getStuehle().get(22).setTische(sk.getTische().get(9),sk.getTische().get(10));
sk.getStuehle().get(23).setTische(sk.getTische().get(10));```
Hat da jemand eine Idee, wie man diesen riesigen Klopper kürzen könnte?
Ihr könnt auch die Nummern der Tische und Stühle vertauschen, das ist jetzt nur mein Modell da oben.
Achso und: Tisch12 ist Element 0 und Stuhl24 ist Element 0, als ich das Bild erstellte vergaß ich, dass der bei 0 loszählt.
Schöne Grüße und Vielen Dank
Gruß
Lukas