From 1ce44d8ec8fc37a6d4dbb6d1d46946b3fb9f40e5 Mon Sep 17 00:00:00 2001 From: arthur <c19222814> Date: Tue, 6 Oct 2020 22:17:24 +0200 Subject: [PATCH] =?UTF-8?q?implementation=20de=20la=20variante=20color?= =?UTF-8?q?=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cell.java | 7 +++++++ GameOfLifeGUI.java | 8 ++++++-- Grid.java | 27 ++++++++++++++++++++++--- out/production/tp3/Cell.class | Bin 920 -> 1159 bytes out/production/tp3/GameOfLifeGUI.class | Bin 2047 -> 2114 bytes out/production/tp3/Grid.class | Bin 3771 -> 4232 bytes 6 files changed, 37 insertions(+), 5 deletions(-) diff --git a/Cell.java b/Cell.java index 9a0b4bd..05af5cf 100644 --- a/Cell.java +++ b/Cell.java @@ -4,9 +4,11 @@ public class Cell { private boolean isAlive; + private boolean isRed; public Cell(){ this.isAlive = false; + this.isRed = false; } /** @@ -19,6 +21,8 @@ public class Cell { return this.isAlive; } + public boolean isRed() { return this.isRed; } + /** * Determines whether this {@link Cell} is dead or not. * @@ -39,6 +43,9 @@ public class Cell { this.isAlive = true; } + public void setBlue() { isRed = false; } + public void setRed() { isRed = true; } + /** * Sets the state of this {@link Cell} to dead. * diff --git a/GameOfLifeGUI.java b/GameOfLifeGUI.java index c162ce0..bd7d040 100644 --- a/GameOfLifeGUI.java +++ b/GameOfLifeGUI.java @@ -39,8 +39,12 @@ public class GameOfLifeGUI extends JFrame { for (int x = 0; x < numberOfColumns; x++) for (int y = 0; y < numberOfRows; y++){ JLabel label = labelGrid[x][y]; - if(g.getCell(x,y).isAlive()) - label.setForeground(Color.red); + if(g.getCell(x,y).isAlive()) { + if (g.getCell(x, y).isRed()) + label.setForeground(Color.red); + else + label.setForeground(Color.blue); + } else label.setForeground(Color.white); } diff --git a/Grid.java b/Grid.java index 2567832..ee2d084 100644 --- a/Grid.java +++ b/Grid.java @@ -109,6 +109,10 @@ public class Grid implements Iterable<Cell> { if (cell.isAlive()) { return aliveNeighbours >= 2 && aliveNeighbours <= 3; } + if (willBeRed(rowIndex, columnIndex)) + getCell(rowIndex, columnIndex).setRed(); + else + getCell(rowIndex, columnIndex).setBlue(); return aliveNeighbours == 3; } @@ -165,10 +169,27 @@ public class Grid implements Iterable<Cell> { void randomGeneration(Random random) { GridIterator iterator = new GridIterator(this); while (iterator.hasNext()) { - if (random.nextBoolean()) - iterator.next().setAlive(); + Cell cell = iterator.next(); + if (random.nextBoolean()) { + cell.setAlive(); + if (random.nextBoolean()) + cell.setRed(); + else + cell.setBlue(); + } else - iterator.next().setDead(); + cell.setDead(); } } + + private boolean willBeRed(int rowIndex, int cocolumnIndex) { + List<Cell> cells = getNeighbours(rowIndex, cocolumnIndex); + int redCells = 0; + for (Cell cell : cells) { + if (cell.isAlive() && cell.isRed()) + redCells++; + } + return redCells >= 2; + } + } diff --git a/out/production/tp3/Cell.class b/out/production/tp3/Cell.class index f25b7df31b6ba9bd790deb4f3f8a3631cf724d96..fc3dbe93e1e0f97985ae8a20c4e0e52d6780bc1a 100644 GIT binary patch literal 1159 zcmX^0Z`VEs1_nz8RW1f524;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3Th=hU1WMh5oGV#l1!vQ$O}#wd^qJ{|^skTh#% zaZqXs7Xt@_AV`A{*o-KUw)~V-Mh1SL%)C^;(%hufqL9R-oK!{zA)ox@#GJ6iqD&AU zD#%ijky*^hz~%$8%$kvbEwk7qH8F*efj77$F*(~eu>h)&qd2t$>JIke)Dowh(o{wU zw&K*1pwtvb29OX$A9qQ9dU{T3a7khb$WEx^J@fohD@ve(EE=AgQH%`Yd0^N1r-6<2 zOU+ErNXjoQDrRJ0^kih<3eGPrN=|jl1Ua1(<T^c2@G&Sda4;}2FfcGNFoA*z%;IO@ zVPIh3VqgS?GXo=oFaraFD+3b)BLf2izt(mJMlI&84D29+cOzJX2m=Fy5CaPX0|O@m z3j-GeCj&PF9|I4AC<6ln4@4V-7=t(i0|O%iH-iw=NPPxIupFz_76$e;aD&*uf}%*8 zS>c-bv1;Z;*DQfmvjkkT6Vzs2kj=9g*jbh{urPxRVP*h%1>yolBtv+iE|6qkU|?ln z;&uSJT#5mt5EM8j(7<8SV%f^TjtCP_f@NUPW?*H|K{AXDY8WGfG~5IOxCzW#8IVF1 zWCH_(9#-8lSah>s(XEeFw=7&Y!u6nNMR&ag11p0iRukmlCWJy=FA56JnGD>Zq`|(N zfdd{KkZ^@05l04g1}6r71{Veq23I75MWMk03S$-qCVmzMMh1BX1!!U^1E)|1205*5 z3<5J51f^N$GjK?=Enr|}S;M>r&R}3*fY>F+z|O$H;K9Jo;K?A!;Kd-!;KLxw;Ljk% s5WpbA5CpbY44m@ip!PB_$T27~C^0ZHfLy@Fz#_=V2nv2>aLQBx0L(swqW}N^ delta 543 zcmZqYoWag@>ff$?3=9mG3<?vu0=c*tI2ibN7`PeuCzj_;{E=7B$iT$F&A`LJz`)MH z$iT|L#=yuRz`(#@!@$JA$iTqBrL~=bQHyyi1N%k>1_mYuK?Vi}J_cq61_llW76wiR zP6jRpAqEBp9*AlNVFnQf1_nlu4N#Nx85qHGtXf+b*w?@f0a?VrAS;Zdn-#8Glz|_l zdvXAioDs-IsA43wyim1b3=9mc3{2b(AWOs{&Y!%1Nn9JGjf;Vafq_Atft5i6Nh=#v zD<gvhRDB#XvU)=XRt6)i>LsD-7ci^UgUlCVU}0cjuwr0mux8+Auw@WoutU-(3bhC1 zL>2}neijBs1}O$<kjEGp7|Ix!z^;?i+Qz^;lR;3Lbv^@!G}{6OR+cr)Yv2q91_owu zpvy6^GcYhXGO#l^F$gj^J240|xH5<`crZvYcrwT^c!Mn#gBS_5n1Ml#L54w=fsp~^ S1U3d1K}JSUNXmgDK^_3L_a=@2 diff --git a/out/production/tp3/GameOfLifeGUI.class b/out/production/tp3/GameOfLifeGUI.class index 34b3b75fedc0ad93a1ffac7106e0a17cd2618c0c..a8ecd1c3d3efaf7aeeb4ed0cc3acd1e31b8b6cab 100644 GIT binary patch delta 390 zcmey*e@KAq)W2Q(7#J8V8QL~-X|X7AG1xN{@-P%JI5RS^W)=sfrf@R2GL-NzlrnfS zGO#4&lx{X=;bCMgV_;+`-|WIF%*a?VIf5<Ou#$m+L5qQfA%Y=_p^AZrftkUNA&a4! zfro*Kfq{{Up@yNBfdR~_W2k3fWN4WDhD|xLkpXNF0|Ucv24)6U1_p*iW?LDpEew*2 z7$TYNWVN<12rpvr)Y`&eAY&wJWW}N_BfE{kY8!*yOa@gLyI>{*pCrpB2A6FNUdtK8 zK+NLFf$YNdTU(eIm;Yb7k%57MnW2J#fkBUfn}LBroq>x%gF%ErlR=I_i$RM)o574h zhry9SkHLq*kRgOYgCUARogsn2m;vM|69!fWIR-O^CWdAP76u*$KdASZ7~){wV@QN~ zk0Fr(>OBSq2308r_CE|vjDHw78UHYturnBQ{bFGM#lZTDft7)gp@o5gfr+6N07!X8 AuK)l5 delta 337 zcmX>k@SmUS)W2Q(7#J8V85%ZnX|Ze$XW?dKEnr||DBPURD$K}OG`X5B*|3;_fkBIb zg&~3=ilKyohk=>Fk0Fbpl!1qViGhKUiJ^?4oPhz%s$i&OU}UJ8%+Ib|U(EnEh=GCO zHUl#QD+2?A7qhL5))ofIMGQ{NcCuPq7=#xw7-?-`Fpx2lHL_ySmXY1YV6~0GZYBet zB+DiSmu(DQ%Ne*qOuuamUM<Xw%m1HgVPahVf6qn+1_ow^A_fKqH3m)w1_pHoE(Q$- z5e7{LIR-5TEe34{(?SMa23rOV24@C!22Tck29PIA7+4wP7~~mh7-|_<7<d@Wq26I) zaEEz^!3*Xc1}_GvcNiELBpKNLFfcLxVc=x^!=S;=VEl`L{TBo4F9ucyMus{D1_maE FdI0oPJKz8S diff --git a/out/production/tp3/Grid.class b/out/production/tp3/Grid.class index e700d5d726f22901bb94e808d42c7e2b105862f1..4e975479689867b0cf3bdc93bb0678ac8419c48f 100644 GIT binary patch delta 2261 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 DUyNmN delta 1813 zcmeBB+%3y>>ff$?3=9mG3{y68WiU<N&ZN%m$KcP-5WvF_$PhI7C6hU42tz14Ll_T3 z_+(9HWsVSrNFIhLhUm#5%nE9;j10nAiDilUr6rj;`i@0KiIqN?#U)$}F$~Py41Np= zJPe5pNt0(WD|w~xFr+fDF*0xzr<OS8WR|6JF{m=6^Dtz91lfyIOI%VDQ@9u;7(zir zHpq?~Mg|TIO&{mfoE&Q|hCGIRc7_5ThQi5gEXvI648@!6SWYueR$&WNFJfS35MtnF z;9+235Mtnm(qata3=9kc42%q{3?&SV45gFjuxV(QF)%QQF|aZ)Fo-a)Fo-g6GKewo zF^DsWF-S0!GcYhHFfcPPFo-i$FjP){&nC$p$PmQ9#85h!pIu5Hq?e6>k%56h2CS9` z%;p5CWnf^aVqjokVyI?dVh~~w2HO|G?!#C%c`3WHA;@Gc1{MZM1}TOb1|9}x27U%D zhFS(51||ju25YDZybO8_AXhUo)J^`$uE1D2S&Bo+8eyw3*j9)O1)+Kv7zDxQfLtXA zHk*loi9w4&8|;E|4%vEyesi#XF|eIHaQ!?`{Y(sc5M2xm3=Rw+Qy3U{q_ws&C?<f2 zf;C|OAxyKzVH(JPj0}tn@(c<fH`p>TFz7RY1Q-}twYD&@qnqObHU|=xtWZ}mGAKiI zPY&P|Q%Bh8i$yI1Lp=j1R!S%La!P^YmkaE}I0g=ecqH|(cw%BOWH17`Z1N?}K*qAk zDqP6%BhSzPjURo6MriyvKwZVlV9e0OV8H;2p9(Go-ckkzhPe#P;MAl$c`27-y(kOY z0tR-L<qRy$Aa61=fSfMGz{0@5ki)>ikjuc&kjJ3NPylw82}C191w$nR2<Sp1f`LI7 z8j&DYGeZjlGXn>MDnly+4+9HB9RmXc4+HBT26;vYMg~p?Mg}GZX9gFLhZuAj7_Krf zGq8hlG_#$Sw9GaJPb(HlmYoc~j0{$+lB_!!f*BcRGRT5h5tHX}%Yajd99TyQD4jEK zF_bZAGL$nIGE^{_FjO*_GgN^cYsbLGpvl0^0CEl+$b7i7E#c0#ggTpv!5r*ZW(F<> zeFiaxHU<`kcCfP<p&}hnj|k{8F#lr^W@KmZV`m6a_ytaO-V8oqr!X*r{0p)yeK$i) z<aUO*$!R=(_3=y$;VrC;%m43dVPRbUf3@xg1_lNea7ZgLa4>+90|!F`gD68IgAzj% zgBL?HLnK2ZLp(zRLn=cX+%r-PuHdL<W#DCq07o?_meS$gN{4$Z9qKJmauQ>3YGYuA z`vxM^!N3fT7EuPazYM(W41SD%7<d?kwSF<M{$gN-77U#XObn(BW}tYQT*_-upS+xb zM@vR_8-wLGhO`!D#^wKSv@kI)|9@g50|Nsj;Xu68#lXeT%^<?i!yv=Z%b>x~&tS;V z&0x;Z#bC=Y3G5wE$-={+4fYN*0~3Qa*gK$-#SZQrJBBVu$_1B^Y=0)J@CmVZLo<#o zpG1A;Oa@-<Z46o47}A#i|AcS^B=yc<;AEJ|Aiyw-L5g7x*iuL_A`P{GlR=0fkf8^Z zH5eEeI2oA!FmSRnNC+@6F!VC?fjrH?z|hCQ3@%-Db~8vsYHeqb^3~bKkU5h<PJ0_e zeeO&KULCOg$;<!0hOp9>|9^;Zi4+4UEi7Z;WLVB1z_5ZroM9z{BExD1ZHBdA7eNX} u9jJ>K7<3r=8743=GH@~|gWbjijwCJyW{BIwIT@IsaWj!&63A#KhRFbfo(EO{ -- GitLab