From 092fb1dc01c02e1c4a6db927e5e7dfc26c96f958 Mon Sep 17 00:00:00 2001 From: Susanne Date: Sun, 16 Feb 2025 16:50:18 +0100 Subject: [PATCH] =?UTF-8?q?OPTIONALES=20(=3F)=20Refactoring=20zum=20Codeve?= =?UTF-8?q?rst=C3=A4ndnis=20und=20Eindeutigkeit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GameOfLifeAssignment/Life.class | Bin 2051 -> 2097 bytes src/Life.java | 16 ++++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/out/production/GameOfLifeAssignment/Life.class b/out/production/GameOfLifeAssignment/Life.class index dfb5eabfd118e8b00d8a5692c8ef73c912041550..8a8ecef311a5da93e0e0d6a5639bfb022c5090a1 100644 GIT binary patch delta 445 zcmYjNO-lk%6g|)9I5v%Bloh36SePSPXXj?mPFK^X|txx87SjX*MpZ)p$j%ml=fFOvZB{fni?80s>l! zxuzFogrG2p)p9LSE|zq8Nyak##HrQ2Vnr=I+_Dg7A??Fh;6C`Zh;Z0o92`af^%teFSKgiZ)npZiaJ(s@44qY=ljmR+i zQ?x z#6{SNVb~DCG@_VCjE|1f+dM^cHm`k@&slK+T9l^Ic8+03yIiRR910 diff --git a/src/Life.java b/src/Life.java index 8553f16..68a4d7f 100644 --- a/src/Life.java +++ b/src/Life.java @@ -52,13 +52,17 @@ public class Life implements ILife { for (int y = 0; y < grid.length; y++) { for (int x = 0; x < grid[y].length; x++) { - // Refactoring: vermeide zwei fast identische Codeblöcke (if-Abfragen) - if (countAliveNeighbours(x, y) == 3 || countAliveNeighbours(x, y) == 2) { + + // Dieser Schritt wäre nun noch ein mögliches Refactoring, um die Fallunterscheidungen zwischen keepAlive und + // setAlive nochmal deutlicher zu machen, ändert aber eigentlich (soweit ich es sehe) nichts am Codeverhalten. + // mMn Ansichtssache, ob das nun redundanter Code ist oder tatsächlich das Verständnis bedeutend verbessert. + + if (isAlive(x, y) && (countAliveNeighbours(x, y) == 3 || countAliveNeighbours(x, y) == 2)) { next.setAlive(x, y); - } - // Refactoring: zuvor gesetzte Bedingungen machen weitere Überprüfungen redundant - else { - next.setDead(x, y); + } else if (!isAlive(x, y) && countAliveNeighbours(x, y) == 3) { + next.setAlive(x, y); + } else { + next.setDead(x, y); // das hier ist mMn im Grunde ja auch redundant, da eben die Zellen standardmäßig tot initialisiert werden } } }