Gibt noch kein code weil das der beginn des programms is ;-)
der benutzer gibt ne dizimalzahl ein und das programm rechnet die in binärcode um und speichert den binärcode in ein array
insgesmt geht des darum:
Eine Population von Rauten (# ) lebt in einer ringförmigen Welt aus nebeneinanderliegenden Feldern. Jede Raute belegt ein Feld und die Population entwickelt sich in diskreten Entwicklungsschritten (Zeitintervallen, z.B. Jahren).
Die Population entwickelt sich abhängig von den Nachbarschaftsbeziehungen eines Feldes. Es gibt acht mögliche Nachbarschaftssituationen. Eine Raute kann einen rechten Nachbarn haben, einen linken, beides oder keinen Nachbarn. Das Gleiche gilt für ein Feld, auf dem sich keine Raute befindet. Für jede dieser acht möglichen Nachbarschafts-Situationen ist in einem Array eine Regel abgelegt, wie die Folgesituation sein wird (das Lebewesen stirbt (0), überlebt oder entsteht neu (beides 1)). Das Regel-Array ist dabei durch die binäre Darstellung einer Zahl zwischen 0 und 255 gegeben. Die Zahl 42 liefert beispielsweise das Regel-Array [01010100] (Achtung: kleinstes Bit zuerst!).
Um für ein Feld die Belegung des Folgejahres zu berechnen, muss zunächst der aktuelle Nachbarschaftszustand festgestellt werden. Den acht Nachbarschaftszuständen ist dabei jeweils ein fester Index im Regel-Array zugeordnet. Welcher Index zu welchem Zustand gehört, ist wiederum über die binäre Codierung der Indizes ersichtlich, wobei eine 1 ein Lebewesen darstellt. Das mittlere Bit ist das aktuell betrachtete Feld.
aktueller Zustand: ___ __# _#_ _## #__ #_# ##_ ###
binaercodiert: 000 001 010 011 100 101 110 111
Index im Regel-Array: 0 1 2 3 4 5 6 7
Beispiel-Regel : 0 1 0 1 0 1 0 0
neuer Zustand: ___ _## ___ _## #__ ### #__ #_#
Enthält ein Feld beispielsweise ein Lebewesen, das zwar einen linken, aber keinen rechten Nachbarn besitzt (##_ ), befindet man sich an Indexposition 6 und muss an der entsprechenden Stelle im Regel-Array nachschauen, ob das Lebewesen überlebt. Da sich im Beispiel eine 0 im Regel-Array befindet, stirbt das Lebewesen.
Vervollständigen Sie das Programm Population.java. Lesen Sie mit den AlgoTools eine vom Benutzer anzugebende Zahl ein, die die Regel der Fortpflanzung festlegt. Die Binärcodierung legen Sie in einem weiteren boolean-Array der Länge 8 ab. Lesen Sie eine vom Benutzer anzugebende Zahl von Jahren ein, über die sich die Population weiterentwickelt und geben Sie die Population in jedem Jahr als Rauten (vorhandenes Lebewesen) und Unterstriche (kein Lebewesen) aus. Zur Berechnung der neuen Population müssen Sie für jede Position feststellen, welche aktuelle Nachbarschaftssituation vorliegt und daraus den Index im Array mit der binär codierten Regel bestimmen.
Beachten Sie, dass die neue Population anhand der Daten der Population im vorhergehenden Zeitpunkt berechnet werden muss. Die neuen Daten dürfen also die alten Daten nicht oder nicht sofort überschreiben. Beachten Sie, dass die Welt ringförmig ist.