From cdabef59bb6c39276b53849c75046454ca4ae995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Justus=20G=C3=B6rgens?= Date: Wed, 22 Dec 2021 12:17:09 +0100 Subject: [PATCH] first commit --- src/Life.java | 96 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 6 deletions(-) diff --git a/src/Life.java b/src/Life.java index 84ab855..a946842 100644 --- a/src/Life.java +++ b/src/Life.java @@ -1,11 +1,15 @@ +import java.util.Arrays; + public class Life implements ILife { + + static String[] zelle =new String[]{ " ", + " ", + " *** ", + " ", + " " }; public static void main(String[] args) { - Life l = new Life(new String[] { " ", - " ", - " *** ", - " ", - " " }); + Life l = new Life(zelle); l = (Life) l.nextGeneration(); } @@ -20,36 +24,116 @@ public class Life implements ILife { for (int x = 0; x < setup[y].length(); x++) if (setup[y].charAt(x) != ' ') setAlive(x, y); + printZelle(); } + private void printZelle() { + for (int i = 0; i < zelle.length; i++) + System.out.println(Arrays.toString(new String[]{zelle[i]})); + } @Override public void nukeAll() { // TODO Auto-generated method stub + for (int y = 0; y < zelle.length; y++) + for (int x = 0; x < zelle[y].length(); x++) + setDead(x, y); } @Override public void setAlive(int x, int y) { // TODO Auto-generated method stub + zelle[y] = zelle[y].substring(0, x) + '*' + zelle[y].substring(x+1); } @Override public void setDead(int x, int y) { // TODO Auto-generated method stub + zelle[y] = zelle[y].substring(0, x) + ' ' + zelle[y].substring(x+1); } @Override public boolean isAlive(int x, int y) { // TODO Auto-generated method stub - return false; + + if(zelle[x].charAt(y) == '*') + return true; + else + return false; } @Override public ILife nextGeneration() { // TODO Auto-generated method stub + + String[] nextZelle =new String[]{ " ", + " ", + " ", + " ", + " " }; + + for (int y = 0; y < zelle.length; y++) + for (int x = 0; x < zelle[y].length(); x++){ + + //anzahl der lebenden nachbarn + float nachbarn = lebendeNachbarn(y, x); + + //neuer * + if(nachbarn == 3) + zelle[y] = zelle[y].substring(0, x) + '*' + zelle[y].substring(x+1); + + //ein * stirbt an überpopulation + if(nachbarn < 2 || nachbarn > 3) + zelle[y] = zelle[y].substring(0, x) + ' ' + zelle[y].substring(x+1); + } return null; } + + private float lebendeNachbarn(int y, int x) { + + float nachbarn = 0; + + if(y == 0) { + if (zelle[y + 1].charAt(x - 1) == '*') { + nachbarn++; + } + if (zelle[y].charAt(x - 1) == '*') { + nachbarn++; + } + } + + if(x == 4 && y == 4) { + if (zelle[y - 1].charAt(x - 1) == '*') { + nachbarn++; + } + if (zelle[y - 1].charAt(x) == '*') { + nachbarn++; + } + if (zelle[y - 1].charAt(x + 1) == '*') { + nachbarn++; + } + } + + if(!(x == 0 && y== 0)) { + if (zelle[y].charAt(x + 1) == '*') { + nachbarn++; + } + if (zelle[y + 1].charAt(x + 1) == '*') { + nachbarn++; + } + if (zelle[y + 1].charAt(x) == '*') { + nachbarn++; + } + } + + return nachbarn; + } + + @Override + public String toString() { + return super.toString(); + } } \ No newline at end of file