From ff5f37927e48b793958d2c235fcb0c744e30e136 Mon Sep 17 00:00:00 2001 From: Celeste Madeline Samuel Nokto Dur Grossiord Date: Sun, 11 Oct 2026 15:42:51 +0200 Subject: [PATCH] 0.0.1.0 --- .classpath | 20 ++++++++ .project | 17 +++++++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 11 +++++ Libs/OTTK.jar | Bin 0 -> 3331 bytes bin/module-info.class | Bin 0 -> 170 bytes bin/org/kotama/game_of_life/GameTools.class | Bin 0 -> 2325 bytes bin/org/kotama/game_of_life/Main.class | Bin 0 -> 1673 bytes .../calculator/StatCalculator.class | Bin 0 -> 2220 bytes .../cards/LongDistanceRelationShip.class | Bin 0 -> 1850 bytes bin/org/kotama/game_of_life/cards/Plush.class | Bin 0 -> 1717 bytes .../kotama/game_of_life/commands/Dice.class | Bin 0 -> 883 bytes .../kotama/game_of_life/commands/Gamble.class | Bin 0 -> 1567 bytes .../kotama/game_of_life/commands/Hand.class | Bin 0 -> 2008 bytes .../game_of_life/commands/PlayerStats.class | Bin 0 -> 2259 bytes bin/org/kotama/game_of_life/games/Dice.class | Bin 0 -> 480 bytes .../kotama/game_of_life/games/Gamble.class | Bin 0 -> 1531 bytes bin/org/kotama/game_of_life/libs/Card.class | Bin 0 -> 467 bytes .../kotama/game_of_life/libs/Command.class | Bin 0 -> 243 bytes .../kotama/game_of_life/libs/GameState.class | Bin 0 -> 452 bytes bin/org/kotama/game_of_life/libs/Player.class | Bin 0 -> 815 bytes bin/org/kotama/game_of_life/libs/Stat.class | Bin 0 -> 1342 bytes .../kotama/game_of_life/parser/Parser.class | Bin 0 -> 1766 bytes src/module-info.java | 9 ++++ src/org/kotama/game_of_life/GameTools.java | 46 ++++++++++++++++++ src/org/kotama/game_of_life/Main.java | 26 ++++++++++ .../calculator/StatCalculator.java | 29 +++++++++++ .../cards/LongDistanceRelationShip.java | 17 +++++++ src/org/kotama/game_of_life/cards/Plush.java | 16 ++++++ .../kotama/game_of_life/commands/Dice.java | 17 +++++++ .../kotama/game_of_life/commands/Gamble.java | 30 ++++++++++++ .../kotama/game_of_life/commands/Hand.java | 22 +++++++++ .../game_of_life/commands/PlayerStats.java | 25 ++++++++++ src/org/kotama/game_of_life/games/Dice.java | 11 +++++ src/org/kotama/game_of_life/games/Gamble.java | 33 +++++++++++++ src/org/kotama/game_of_life/libs/Card.java | 8 +++ src/org/kotama/game_of_life/libs/Command.java | 6 +++ .../kotama/game_of_life/libs/GameState.java | 10 ++++ src/org/kotama/game_of_life/libs/Player.java | 12 +++++ src/org/kotama/game_of_life/libs/Stat.java | 19 ++++++++ .../kotama/game_of_life/parser/Parser.java | 33 +++++++++++++ 41 files changed, 419 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 Libs/OTTK.jar create mode 100644 bin/module-info.class create mode 100644 bin/org/kotama/game_of_life/GameTools.class create mode 100644 bin/org/kotama/game_of_life/Main.class create mode 100644 bin/org/kotama/game_of_life/calculator/StatCalculator.class create mode 100644 bin/org/kotama/game_of_life/cards/LongDistanceRelationShip.class create mode 100644 bin/org/kotama/game_of_life/cards/Plush.class create mode 100644 bin/org/kotama/game_of_life/commands/Dice.class create mode 100644 bin/org/kotama/game_of_life/commands/Gamble.class create mode 100644 bin/org/kotama/game_of_life/commands/Hand.class create mode 100644 bin/org/kotama/game_of_life/commands/PlayerStats.class create mode 100644 bin/org/kotama/game_of_life/games/Dice.class create mode 100644 bin/org/kotama/game_of_life/games/Gamble.class create mode 100644 bin/org/kotama/game_of_life/libs/Card.class create mode 100644 bin/org/kotama/game_of_life/libs/Command.class create mode 100644 bin/org/kotama/game_of_life/libs/GameState.class create mode 100644 bin/org/kotama/game_of_life/libs/Player.class create mode 100644 bin/org/kotama/game_of_life/libs/Stat.class create mode 100644 bin/org/kotama/game_of_life/parser/Parser.class create mode 100644 src/module-info.java create mode 100644 src/org/kotama/game_of_life/GameTools.java create mode 100644 src/org/kotama/game_of_life/Main.java create mode 100644 src/org/kotama/game_of_life/calculator/StatCalculator.java create mode 100644 src/org/kotama/game_of_life/cards/LongDistanceRelationShip.java create mode 100644 src/org/kotama/game_of_life/cards/Plush.java create mode 100644 src/org/kotama/game_of_life/commands/Dice.java create mode 100644 src/org/kotama/game_of_life/commands/Gamble.java create mode 100644 src/org/kotama/game_of_life/commands/Hand.java create mode 100644 src/org/kotama/game_of_life/commands/PlayerStats.java create mode 100644 src/org/kotama/game_of_life/games/Dice.java create mode 100644 src/org/kotama/game_of_life/games/Gamble.java create mode 100644 src/org/kotama/game_of_life/libs/Card.java create mode 100644 src/org/kotama/game_of_life/libs/Command.java create mode 100644 src/org/kotama/game_of_life/libs/GameState.java create mode 100644 src/org/kotama/game_of_life/libs/Player.java create mode 100644 src/org/kotama/game_of_life/libs/Stat.java create mode 100644 src/org/kotama/game_of_life/parser/Parser.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..c7638ec --- /dev/null +++ b/.classpath @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..4e5fb55 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + game_of_life + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3124684 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=25 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=25 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=25 diff --git a/Libs/OTTK.jar b/Libs/OTTK.jar new file mode 100644 index 0000000000000000000000000000000000000000..f20288ed5bce59c726d7c6153e52ab17380383b2 GIT binary patch literal 3331 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 G-uwj(61t24 literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/calculator/StatCalculator.class b/bin/org/kotama/game_of_life/calculator/StatCalculator.class new file mode 100644 index 0000000000000000000000000000000000000000..74ff3e6faa6519269019b7b390eafdc84a8dd05d GIT binary patch literal 2220 zcmbVNT~`}L7=DI?ED2j$AhboL+CpiiiX(Pda`BSvM3!>{nv#- zw`f)b&S(EOu#`Z!ftuDQWBZ!0%#}*wx+S*^Cl$~7u6V9#C1z}|G%Gihp#`&GOV@K~ z$a!T$QwJkZyryc``%GqR*C-IubV@_7K=*%uY3LI;xgRmUSITAtJvgRVKQ0iBHC>Rl zWTlddFGdi>YdT)X8w}f~v^;~1569xSUjlC!C-9brHw6X{1X80{$4Q(LXs-|!@92FF z*$VBDj?)-s>J$uS(r`28T6#6Y)Rb`~Db^sVnZ5|lU_{3##soS{+g()t`B|A!*e7%( z@HX?aDD731m3u6!(0Ae-E@(I}aHwTN$2&-pt#xB-L1FBUH75>5)VzpE4VPLpxuGM4 zDFwwf992#NM_Y6=bvX@8<9!Y9u`u?oZtUv#03Q;yZQSGS(T0UqKCZkdJJQlw?L-<^ zb$o=61vDd{XYn#Jt^Oz`6px?ixP~mx`AIULSJ*Rk$D29#X`9nAkLvVn~s)pyLKUCyJu1%=!Ma#oP)riErxo0!s{T$+QIo102O|9beXD z@?HdAnqi%L&2FJqZZJflwKl$KPvXz0kJK${yL(I=bHtNzeju=`_Y zrfm5AMd0+oMOAM@Y&ovu8LE644Z&~lU_HNi&;ysf+hStm7}^&qsra+I9c^vATN{n$ zd#$M&>do+#dl>707<22)CBL<6Ae}=m(_#c73uVvA8COm9O!O*O_uiig6-l-gMu_hi z(8d)X7>*kM5}XC+_K_#(_|@Nza8%ns7@ZvT+5ygod|4L`)5sC7+t96yi0=^OS>Wg2 z(X-SOeL})^(7!a<{xlg3Oh3Z+{p|ziW=9@lU~C(M&v0fN@nneqeqHLBQO@&L1q`T0m_x8(oOW%;u6FqfJ6gS8HxvdpgKt>X&9#COouA}$p`U8 ziw8fzU$V;b&SYYyz@X(r(mm7no^#K=r|0|6!*2kV@Ww!lVNSVKYgcK$$E_;g6Wgk? zZOe+VO581bR$e*PMd@kol*C(Mb1juqsL8s4Zic}fzRxY2J5}qgC@HsWpqF8?6QV7P zo|Pq7hHi(b7)Fw*d>f;nUFlRabedIV5l276SSNmlfxL9YT4S#$+zno|32iv9O5EP$ zuJoV7m)*K1J%&g5PF0<(ld3U9r6Nk2K!#f7Hng;@RbHplzJjbeTsK@QAb0e9z9VbU zi-P7l6KO!s(V{Bc%tEFQXK~KJ=-;~OBbXS&c`D?^^72x4Be%ZBF!c|-30%Zw1D8lv zdjw$xCdM&A%J;e55bG6&(PS<)6uyBuI^}mUZ_cgUe)brAjdLdA>nLrmFnz)Y#42gnj zxFxYH{kw9x)5V(g2T51^rBd3{F0Zc&T~lQ*fq5(#c*-!*wu{?vwA>R`bBJN2iD!6D zek`^S7!IOckj}o^6;?BPg*#~D*Fy{=eTeJ8(RBJ41cV^+G;R=`Uwbs^ zCh#!`Y1bc3vT!?0N)l6yBID^Bht!u7vY7AjFl&ZZUt>@D3+4_w5_RKIaP}BaXiZSc Ui$K^*EQZfZc!eC!<8=^+Uk51L$N&HU literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/cards/Plush.class b/bin/org/kotama/game_of_life/cards/Plush.class new file mode 100644 index 0000000000000000000000000000000000000000..8ccf1a31ed03b0f20a85874dc2e9474324e1a574 GIT binary patch literal 1717 zcma)6+g8&+6x~xUDIv&3K=A@1AZ=0N4HSwf6p(5Gm#}!i2iCNmwtDZ2Ux(|0QhS{Zr{_%YW_Zk6?qqF_5k1?>!@&ETeycl8W$Ftl34%g~=l<{BK^ zo?}?$G@WMbqKKoDp{*K-F?8n)OKkc_dExBvyh+f$oL%7NE_aOJIeOXZRScJ5BG)Vh z$pPsoqEr$Ej}X1}M10RM^$lL7(~fPUY;n(bNG*H*e4(jC=yKcRURtu2wLDQ4PI@uj zfdSl5F!;YZ1q>Q)Vu%u1T3cJq>}0n#sW(^9RdE}472F|Pjp9ZbXc)!_IX~v6FSbey zgNdx%gLOLB} zgoX!5GR!5KI+L3w=lXYE;uY>zf|+4xNhGrY?IR5-Ofw{|NSkG77oUA@(l8AC!&h=I zV124V$1{fctFc}zPjZiR77WYq7Q7p&$ zw&!{duWkshVi#Q%3s_X}ieaSDV#l{U<4EYW!bg!BUgHhTP`=KOs9=s_xE@l>(k`ITzN5cKJ;kk4+&j;8 zP2$obu3ow`^)x0U4kdMlN#H!3E^sIa5>H`@Wu1g35o>+9ib*@4Lr7`eqi>bsZc9khG%n_r&T4$QfO=$E79{R-Xe=3ybI&-2VShD A=>Px# literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/commands/Dice.class b/bin/org/kotama/game_of_life/commands/Dice.class new file mode 100644 index 0000000000000000000000000000000000000000..1067e180ed614574fe0baa23fc22895c1fd138a6 GIT binary patch literal 883 zcma)4%Wl(95Is{TapF3ZCM|F1gFft*))L#GZpuRu5kX3n4U6i=xixP6K+X-{1uG&J zd;lMXm}^HQs6=AnnLFb-bLRE)*Y_U)Ug6Zl3SmFZ0`EFiA{JgCVtJ8XUPR%g^!zlA zMKT(DFGF9NC=qU7iO<4|L=t%2;g$52i3(wFS%N4Wj=l3D3!(BNOhR==FdTP4D4nMx zX~Dp%4HH$uS|?28yGcBhSzinzNoaIZUql0uh1#AuOX_1dCLDH_vHn$di-{6$im>6h zoq72^m4!*rs-npOBkqq-{v@(7>oe!W&A_E>d5>?Hp{InBEq7qyF7BJSM_8ZJwG$-+ znb~-NhlFa*#6H5NbCb($TX>8u6Hf@c%evH?DmG(d8#@HkpNv%+kGLPFty4V3zKK0T zb0I~y-+$|MC(6bF4jJ>Fr=X&w!04rjEa2fb|1kkVO>^dL5}f}X2*K*5lgyW|L%q_P zzNJ$=80>&gfxj}}qSkx_ENg6etci8`=o_rB{8)j_vXVQisPo${0&oj!Z1H7couvk! zu-0Is(fGn@5xTknHU2<1usMTvIoe=M{kZgeiaS$0nqqg(Z}D$1pUrH#hV3GFmWW|+ S;O5+Q9O0Ow3D5EpPJRO#CC2{% literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/commands/Gamble.class b/bin/org/kotama/game_of_life/commands/Gamble.class new file mode 100644 index 0000000000000000000000000000000000000000..0e796bca1211ac635fa7bf007cda429e92d24936 GIT binary patch literal 1567 zcmaJ>%Tg0T6g{0x(h!FCGomQ(gx4s7C_xk>U^E0U77JWZO=!YElEKNul26eeaI006 ziVMq?3qQfn@B_r#lkkX07Bk&_yU)Gn-afZ~{`vY1z&w&19)>~7P8)lcBeKFsi>%zR zwl^~7wlq>!HY;*ld1FyzH#3q$V`$hFuZ58jxwNsoxhqo+ho7PEG8Y+hGjBwTei-~S zX3lhG8N8wJ8iN+KwqyWa)ac--VyKUsIhiPAH>LeTP(+5NxRnx_HDQ}-T{3FUj+ti& z$1jWe5Ag_v%28qrEunDyEPV(an>}B$JMC zWF)*+jdlb%Iv55nV_A;TaRr^kV#hpkoI2$u3_NL?$0g=PX-Bg_1;T=%OOR>x%mW9S`UQ_v4qi8h9!e6#)q^JVp@o#$hAEoQ zAxJNCCswGlRelq0SyoFVi4vY5=H|7Er+7wq50(+f68Y^zGZHk@$fEN19-{+(4#u&< X(ay;kr<$Tm*|jpeD%~o9Jb3;WB(Hl# literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/commands/Hand.class b/bin/org/kotama/game_of_life/commands/Hand.class new file mode 100644 index 0000000000000000000000000000000000000000..597461306a02aaea413f9387c11651dc904e270c GIT binary patch literal 2008 zcmah}ZBrXn6n<_JxJg(9LJP$zf`v3e==yGDD{9lyVnc!rrrN4_lU$M|o88RrhLIV6 zh~ppdtIl-B(hrUw{M1kVMb>jSTS+D%?#$kEU(Wk^&UyCF(?0>+#t}z^VbyW#deiYm zOXzjck_XP=fn^>_z3Q}D!mfGxU0OL}4AV#ASm>6p>w2+rB&$BhIK#?$3M{kY>A9{J zhVdJwZTedb(M-0?5X(6=nM4#58aUz%Q+d;tg-)v?-F;E9Btt6iRE1R*uBp!9Wz27w z9>dlAc~<+}Hpq}oK`~s&Wb>qZ>2#L%Gl7{=Pd^@wpR^JtLqTx&s$cgRA? z7rr#I=H+7wM<0hc*mWti>pxwyZ7PcL?S4X@#K2EIoQ`IgOaF*9gBTTb8& zEORU|qQC(@-dj}D>BW+bqRs~l;DD&hZg}=gjoWR}CLyQvpK$NY?uS(Z#dDaf4xbWav5J)+S(JOT#o~ zRIHzA_#8J0*mV_Ey0?Cz+Fs~|S4rH$HplJ0uIj>4!yViuNE{2RBa4UsuQEh)in{s> z4fl{|m~V-u%sF;d_zz6KK|9YEwojdNz1P1`atPuEuT*Xe8j9E>-x|Uz1Zkvhen>eL zZk=?`4rv{Rgo0_%9}Jn%Fg)ud(pjZU6A(vBsB%!3Pm=y>lh7B836A>=$&%A?t8&{^ zvm~Lq@tVQ}CH$u2_@3{I_OA3BPR&c=I~;I)PqQpQO)%k1``Bqpy_=zKCbvbEz;~ij z`~$a?Gh*ya+Wd9-8O(#=`I^Q6Z?kXjuGbeQWL4TirxwP*ED|v?l1J z6JK{FhwUS5@u*s!W%@Da5RXFtPA2wZIE! literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/commands/PlayerStats.class b/bin/org/kotama/game_of_life/commands/PlayerStats.class new file mode 100644 index 0000000000000000000000000000000000000000..8a614b6bf3e65a617f50b09f556fc3326d4cf0b5 GIT binary patch literal 2259 zcma)7Yf~Fl7=8|fEQF=BfkL5L!9p7<&7p;;P z%CfYIvaGhe-7Ux7RaU_(m!-QCSnG~FQhq*^VPGI3aB*KAO3RUM(OTQySB20(QefmP zJC3~_Sh=b(f#kI9+Tn~qYi4XyAd&NSR0^%=G-04!pnKVN)oP`@t^5tS?I?ltvR9DK zru1$7UOP;Ldv+i&xqOz_X6Uo@=Q2cr-pttYX%zX;x7}j49X$eVfsT{wf%F4P&Sai6 zN}lO8iglhYG+Qb=w%LJx3>df~aN{hb^*Sa7ag{VxNf#JB-&a*Eo5GuT%fK~(+h@5U zhlPqGL(jJ~xZKNE6GIpl=r|Ez&{LV$@>=7t655V6>sHDu@_-~>7wDScPkRaUCWTSl zG;l+pCkAe9V`Ir$tAr*p7!xqonS;=A1ukbA2_M@`;T=pE7#Fw{B`)sN#3U?oR#HcK z6;k3PyO9u&vYoh%_YJ&9Xs6n|FmVST2(;Uw@-;OAeRaBvwR0Ny2p=1`%W^z5aB^#6 z3Q=vTALzZlwyGVHHE>U0I2L|gt3@TC`AXpvd}`o+U6WPI)5HVh$kU;8Dr#+)1r_J1 z=B7ziYvN{2%we8ASJd>pO0i}u%^|U9;&Uts^p|Bx$ zHOXJ&k!Ezo#46Sp)Se7hBl0*E9*07YHk>DQW%B5O=Y>J&%Yzja?s+>w3g2Vf0Ix=(+Knc+?H+n1#ZjO~ zUp2FHvcMKN(kU+p{1i`YO}c7ufnNnj1tZIzSE?LjW5^rxU#GZ1mYRsiv)rVPYbH3b zoILw9+nvN#JJ^{XUEG^h0bD>g-GZE$ z;;I*7s;w_odvUp@`Y&-Lsk1QtJNl0C#%lWQV~k8Z#jR&}ms7m$7mNFCxd8tfvZRw5C)zY=r=gA h3{D3!-imK1(SmRB9aqiw4*v>8zNNU^!#*4g{13-ZVS@kw literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/games/Dice.class b/bin/org/kotama/game_of_life/games/Dice.class new file mode 100644 index 0000000000000000000000000000000000000000..3c774724f81b50de079729ecb58613d39d675f77 GIT binary patch literal 480 zcmah_%Syvg5Ir}2m?$$e zru>n65l<%G)o?1pjG=lW6PcYdlser$L-|aNgo6@n7Zp?)>VZteWgZVjddr8AU}y#^ zf5CaCW`{dV^f< literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/games/Gamble.class b/bin/org/kotama/game_of_life/games/Gamble.class new file mode 100644 index 0000000000000000000000000000000000000000..3082280e50d396192b802cd13e04c0d38d17f14b GIT binary patch literal 1531 zcmbVMOK%fN5dPY6V#k?~#6TXffeDY07aj8h`)zUnXk{`EJ2W#kix37qr%iuKA1 zWKCKXSyL~(trt~iOGQG%T9vhORV5G?=zl49q*aw}#VV9vDmxJ9ns;0$SP7pItay z>>eD&@dSl7^prkO2lLmgns6f(j zgLPRAnI{{ROX9S^Y}rw+sTvLW_VfEpCS%s5(=db3tgG;iNd~Yj=Iii6=qhu|qiHOa z!Whmba7N&0TZ0Ov(wbEW0|V!9ULf(rXSAv-aJ(IVF`&A_vL|stU|0pF=bFsSR$R@x zqijVGQHV(cQgkEFd#@(2w6!d*`LyGZ_JOg=nq;c^0(1kSVp`~{nr99tQf z#TDYU!$#oMNTc{fPS<8mpWZfI&(&4g@xq3=RCsnjzx-SyCF24W)nXXe4cx#@y4caR zEo^Cwx%LiyXN7Ke*1$Y&vjO#xy}i+%OskPUx3=9^>!T#@2#g)T_hk9$(tdb4;ynZR zHJiG8Rr7XO!T7dxnP=aDX%P_Ao;?KNnc)7heOv!Nx~u!0{_pYOL=*#Qzv39TE`?Ol z3w>LyIQrV?Y2HH_O?R@9<>VCx#Q4UGhHHY7#a(dkoca^V50N>=Rhxkndbk?R54iVI z>c$cD(MdnwV;G2>e5LCc<B#AJXIfv%8o`&kTrvxOeU% z6aNDv>8p`?YMP2`d$`qsjdw_=7h2jq+>K#FV~P_ANI`>ZFJty`^!qWyzMaA`j8n>R zg6A-TdpLn5jAD(JBFqT?U=te_Y0>avu;x6M+=TKw(51os+Y<;P}wx%y&^D3O<03LaYrD zh$7AH?#yUsZ$3WX-T_?VD1b*eHZ~QH#>tfwsa&a&Y3@|2?D&HB`V+HIEp*Tgut(@rhi!b@=%G&VOhV{}I#)NvDpvMR#u=Y6 z2+dq(_tNTe{sDdWp!o|Y+b=3pV)JHX3OiRKyi?g0WeqBep>z{WyG-Gq(1SxHt8XW;=nl(+%GLa==w z^WHbl*Zl!tfqsYvVQkAxoULQSB4Z=>Hr;ELN}<)E5_4+|7pD*{!Z7C>3(Z9)Hiuju z9idhD3&Lm;t-mmFr7E(R5L~#dJf2NAM`s@=O#QU&J&6gOhs1QjaTmPwq(sgp#~so-b15W$5X;75r! zHgs9!GQ&NWbIyHy|9pM{xWd4N#c)*BIe)5*CzX6%{opRs@b`t}3BA=)kq0z0XWf-k9|2?Y^NCt}?=PG91tNSWZ=0Kp>Yz-LPO-Is05j7thD7&~PP?-&8v3D2u1sb<@=b?^=w$3Ag zdUK)GZcJI$X$?vc*z)0G&Bc=?&|AvJ+_8sk)ak9GLg+VOE0zMYLqw;?9I0?dII9FS+f!8A-%&rVZcg#w3Xj>@KAz&~6`oz2 m&%e$nFL>Q#KA7z=xx(Bn=I*h-%TdeYns~_(tFXyy0j=K$Ud3Vn literal 0 HcmV?d00001 diff --git a/bin/org/kotama/game_of_life/libs/Stat.class b/bin/org/kotama/game_of_life/libs/Stat.class new file mode 100644 index 0000000000000000000000000000000000000000..9ae15bedbd0c694c18d96573d62a0c2d16b9c0e2 GIT binary patch literal 1342 zcma)5YflqV5IvXen-xlxT3#v^v0ab~T2Nb&N{VSLZQ_P4Pim8@nx#18PIna)@SWRnGW9de_F5ucu=L)H;Ksftfh6KS=+0A^O;4ZcB zCatOh-qhAsdb5zp=LDp>(GUPZ1XM3)g%I>7;#N69~uJR-+HKSoz z>%W^EN zUYD_kC)6IzG_~VO^YBCY`+KF}*xBGXs4s}L1Uz-_0J-xpZxKh`a6bbuCeS&}lI z;<-S)pJTJ8wOWb3i+_{$MDTRdy!q5-+pOqY2AAH;W4y!|UK`bhX0=U<$NQ-GTylWq z))O1c)Cq~6kY{6prvo5MgJD~m3ER>*5MqoQXIpBUZK-L1f0BoUd$66w>?uJTDEIV>2+L7;M%d})#6Eo>vpAW1h{6NFk`EB)AsTLp;UTDAiVDE zSuun#t|N+=h6#b`LG2r^EBAc@F(fb^g}{`KQH%*p6z!%}>NF~ryDckqlA0AdTRZCcBI;G^V~4y{Z^lLL)uM& zeCk2BzM50nbM0o$JW-13b%A3qd(yMWG>#9js39qk7_`*yrj8Hs5t-PY)!beQ#HN7gy?*X;3i${bf|r{+dJDawm2e>bS&90BlwCUDz1~u<&yWd zH%pJ<2}XpY`=;hiLi#i`&i)9XZ;U3jq+W{{Dw0JI47_Y zevYO2@Bz*X{EbX08@jT5fJ*`|artM&m$R1+@L34{jxPj$IehaRdg)hOpIU#3jTeLk zR&X7+3GCB6r^L))o&r-8cbQ~YaFz#Qfu>C=>Q}oI`qT@!gOWlj;4b_I%(F4y;yYsI rDWQyQ{`;QjS%eSS*HH~Z108&i)s}$8LpC-v2y*eZulzn!MzH%IPlu=w literal 0 HcmV?d00001 diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..7160ae9 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,9 @@ +/** + * + */ +/** + * + */ +module game_of_life { + requires O.T.T.K; +} \ No newline at end of file diff --git a/src/org/kotama/game_of_life/GameTools.java b/src/org/kotama/game_of_life/GameTools.java new file mode 100644 index 0000000..5018abf --- /dev/null +++ b/src/org/kotama/game_of_life/GameTools.java @@ -0,0 +1,46 @@ +package org.kotama.game_of_life; + +import java.util.ArrayList; +import java.util.List; + +import org.kotama.OTTK.Out; +import org.kotama.game_of_life.commands.*; +import org.kotama.game_of_life.libs.Command; +import org.kotama.game_of_life.libs.GameState; +import org.kotama.game_of_life.libs.Player; +import org.kotama.game_of_life.libs.Stat; +import org.kotama.game_of_life.parser.Parser; + +public class GameTools { + + public static void Intro() + { + Out.WriteMachine("[...] Rebienvenue, ma chere ^^\n", 70); + Out.WriteMachine("[...] Assis toi je t'en pris...\n", 50); + Out.WriteMachine("[...] Tu te rappelle de moi ?\n", 100); + Out.WriteMachine("[...] Tu te rappelle de toi ?\n", 200); + } + public static GameState Init() + { + GameState gameState = new GameState(new Player()); + + for (Stat s : Stat.values()) + { + gameState.Player.stats.put(s, s.begin); + } + return gameState; + } + public static Parser InitCommands() + { + Parser parser = new Parser(); + List Commands = new ArrayList<>(); + Commands.add(new Dice()); + Commands.add(new PlayerStats()); + Commands.add(new Hand()); + Commands.add(new Gamble()); + + parser.addCommands(Commands); + + return parser; + } +} diff --git a/src/org/kotama/game_of_life/Main.java b/src/org/kotama/game_of_life/Main.java new file mode 100644 index 0000000..9279a80 --- /dev/null +++ b/src/org/kotama/game_of_life/Main.java @@ -0,0 +1,26 @@ +package org.kotama.game_of_life; + +import java.util.ArrayList; +import java.util.List; + +import org.kotama.OTTK.*; +import org.kotama.game_of_life.libs.*; +import org.kotama.game_of_life.parser.*; +import org.kotama.game_of_life.commands.*; +import org.kotama.game_of_life.cards.*; + +public class Main { + public static void main(String[] args) + { + Player player = new Player(); + Parser parser = GameTools.InitCommands(); + GameState gameState = GameTools.Init(); + gameState.Player.hand.put(new Plush(), 1); + gameState.Player.hand.put(new LongDistanceRelationShip(), 1); + while(true) + { + Out.Print("> "); + parser.main(In.Readline().split(" "), gameState); + } + } +} diff --git a/src/org/kotama/game_of_life/calculator/StatCalculator.java b/src/org/kotama/game_of_life/calculator/StatCalculator.java new file mode 100644 index 0000000..646bea1 --- /dev/null +++ b/src/org/kotama/game_of_life/calculator/StatCalculator.java @@ -0,0 +1,29 @@ +package org.kotama.game_of_life.calculator; + +import java.util.EnumMap; + +import org.kotama.game_of_life.libs.Card; +import org.kotama.game_of_life.libs.Player; +import org.kotama.game_of_life.libs.Stat; + +public class StatCalculator { + public static EnumMap calculate(Player player) + { + EnumMap trueStats = new EnumMap<>(Stat.class); + + for (Stat s : Stat.values()) + { + int total = player.stats.get(s); + + for (Card card : player.hand.keySet()) + { + total += card.effects().getOrDefault(s, 0) * player.hand.get(card); + } + + total = Math.max(s.min, Math.min(s.max, total)); + trueStats.put(s, total); + } + + return trueStats; + } +} diff --git a/src/org/kotama/game_of_life/cards/LongDistanceRelationShip.java b/src/org/kotama/game_of_life/cards/LongDistanceRelationShip.java new file mode 100644 index 0000000..fe42da3 --- /dev/null +++ b/src/org/kotama/game_of_life/cards/LongDistanceRelationShip.java @@ -0,0 +1,17 @@ +package org.kotama.game_of_life.cards; + +import java.util.Map; + +import org.kotama.game_of_life.libs.Card; +import org.kotama.game_of_life.libs.Stat; + +public record LongDistanceRelationShip() implements Card { + public String name() + { + return "LongDistanceRelationShip"; + } + public Map effects() + { + return Map.of(Stat.AFFECTION, -5); + } +} \ No newline at end of file diff --git a/src/org/kotama/game_of_life/cards/Plush.java b/src/org/kotama/game_of_life/cards/Plush.java new file mode 100644 index 0000000..f79d2fc --- /dev/null +++ b/src/org/kotama/game_of_life/cards/Plush.java @@ -0,0 +1,16 @@ +package org.kotama.game_of_life.cards; + +import java.util.Map; + +import org.kotama.game_of_life.libs.*; + +public record Plush() implements Card { + public String name() + { + return "plush"; + } + public Map effects() + { + return Map.of(Stat.AFFECTION, 10); + } +} diff --git a/src/org/kotama/game_of_life/commands/Dice.java b/src/org/kotama/game_of_life/commands/Dice.java new file mode 100644 index 0000000..ca8cf73 --- /dev/null +++ b/src/org/kotama/game_of_life/commands/Dice.java @@ -0,0 +1,17 @@ +package org.kotama.game_of_life.commands; + +import org.kotama.OTTK.Out; +import org.kotama.game_of_life.games.*; +import org.kotama.game_of_life.libs.Command; +import org.kotama.game_of_life.libs.GameState; + +public class Dice implements Command { + public String name() + { + return "dice"; + } + public void parse(String[] args, GameState gameState) + { + Out.Println(org.kotama.game_of_life.games.Dice.customd(Integer.parseInt(args[1]))); + } +} diff --git a/src/org/kotama/game_of_life/commands/Gamble.java b/src/org/kotama/game_of_life/commands/Gamble.java new file mode 100644 index 0000000..040d535 --- /dev/null +++ b/src/org/kotama/game_of_life/commands/Gamble.java @@ -0,0 +1,30 @@ +package org.kotama.game_of_life.commands; + +import org.kotama.OTTK.Out; +import org.kotama.game_of_life.games.Dice; +import org.kotama.game_of_life.libs.Card; +import org.kotama.game_of_life.libs.Command; +import org.kotama.game_of_life.libs.GameState; +import org.kotama.game_of_life.games.*; + +public class Gamble implements Command { + public String name() + { + return "gamble"; + } + public void parse(String[] args, GameState gameState) + { + Card found = null; + for (Card c : gameState.Player.hand.keySet()) + { + if (c.name().equalsIgnoreCase(args[1])) + { + found = c; + } + } + if (found != null) + { + org.kotama.game_of_life.games.Gamble.card(gameState.Player.hand, found); + } + } +} diff --git a/src/org/kotama/game_of_life/commands/Hand.java b/src/org/kotama/game_of_life/commands/Hand.java new file mode 100644 index 0000000..befd00e --- /dev/null +++ b/src/org/kotama/game_of_life/commands/Hand.java @@ -0,0 +1,22 @@ +package org.kotama.game_of_life.commands; + +import org.kotama.OTTK.Out; +import org.kotama.game_of_life.libs.Card; +import org.kotama.game_of_life.libs.Command; +import org.kotama.game_of_life.libs.GameState; +import org.kotama.game_of_life.libs.Stat; + +public class Hand implements Command { + public String name() + { + return "hand"; + } + public void parse(String[] args, GameState gameState) + { + Out.Println("----Hand----"); + for(Card card : gameState.Player.hand.keySet()) + { + Out.Println("| " + card.name() + ": " + gameState.Player.hand.get(card)); + } + } +} \ No newline at end of file diff --git a/src/org/kotama/game_of_life/commands/PlayerStats.java b/src/org/kotama/game_of_life/commands/PlayerStats.java new file mode 100644 index 0000000..8a41d06 --- /dev/null +++ b/src/org/kotama/game_of_life/commands/PlayerStats.java @@ -0,0 +1,25 @@ +package org.kotama.game_of_life.commands; + +import java.util.EnumMap; + +import org.kotama.OTTK.Out; +import org.kotama.game_of_life.calculator.StatCalculator; +import org.kotama.game_of_life.libs.Command; +import org.kotama.game_of_life.libs.GameState; +import org.kotama.game_of_life.libs.Stat; + +public class PlayerStats implements Command { + public String name() + { + return "stats"; + } + public void parse(String[] args, GameState gameState) + { + EnumMap trueStats = StatCalculator.calculate(gameState.Player); + Out.Println("----Stats----"); + for(Stat stat : trueStats.keySet()) + { + Out.Println("| " + stat + ": " + trueStats.get(stat)); + } + } +} diff --git a/src/org/kotama/game_of_life/games/Dice.java b/src/org/kotama/game_of_life/games/Dice.java new file mode 100644 index 0000000..5d5ead3 --- /dev/null +++ b/src/org/kotama/game_of_life/games/Dice.java @@ -0,0 +1,11 @@ +package org.kotama.game_of_life.games; + +import java.util.Random; + +public class Dice { + public static int customd(int d) + { + Random rnd = new Random(); + return rnd.nextInt(d); + } +} diff --git a/src/org/kotama/game_of_life/games/Gamble.java b/src/org/kotama/game_of_life/games/Gamble.java new file mode 100644 index 0000000..ff90dc3 --- /dev/null +++ b/src/org/kotama/game_of_life/games/Gamble.java @@ -0,0 +1,33 @@ +package org.kotama.game_of_life.games; + +import java.util.Map; +import java.util.Random; + +import org.kotama.OTTK.Out; +import org.kotama.game_of_life.libs.Card; +import org.kotama.game_of_life.libs.Player; + +public class Gamble { + public static void card(Map hand, Card d) + { + if (hand.get(d) != 1) + { + Out.Println("bien essayƩ... mais tu peux gamble qu'une fois !\n"); + return; + } + + Out.WriteMachine("et on lance la piece...\n", 50); + Out.WriteMachine(". . .\n", 500); + + if (Dice.customd(2) == 1) + { + Out.WriteMachine("oh non... vous DOUBLEZ la carte !\n", 50); + hand.put(d, 2); + } + else + { + Out.WriteMachine("oh non... vous PERDEZ la carte !\n", 50); + hand.remove(d); + } + } +} diff --git a/src/org/kotama/game_of_life/libs/Card.java b/src/org/kotama/game_of_life/libs/Card.java new file mode 100644 index 0000000..a8ec78f --- /dev/null +++ b/src/org/kotama/game_of_life/libs/Card.java @@ -0,0 +1,8 @@ +package org.kotama.game_of_life.libs; + +import java.util.Map; + +public interface Card { + String name(); + default Map effects() { return Map.of(); } +} diff --git a/src/org/kotama/game_of_life/libs/Command.java b/src/org/kotama/game_of_life/libs/Command.java new file mode 100644 index 0000000..16df762 --- /dev/null +++ b/src/org/kotama/game_of_life/libs/Command.java @@ -0,0 +1,6 @@ +package org.kotama.game_of_life.libs; + +public interface Command { + String name(); + public void parse(String[] args, GameState gamestate); +} diff --git a/src/org/kotama/game_of_life/libs/GameState.java b/src/org/kotama/game_of_life/libs/GameState.java new file mode 100644 index 0000000..ec948ea --- /dev/null +++ b/src/org/kotama/game_of_life/libs/GameState.java @@ -0,0 +1,10 @@ +package org.kotama.game_of_life.libs; + +public class GameState{ + public Player Player; + + public GameState(Player player) + { + Player = player; + } +} diff --git a/src/org/kotama/game_of_life/libs/Player.java b/src/org/kotama/game_of_life/libs/Player.java new file mode 100644 index 0000000..e3dfa4b --- /dev/null +++ b/src/org/kotama/game_of_life/libs/Player.java @@ -0,0 +1,12 @@ +package org.kotama.game_of_life.libs; + +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Map; + +public class Player { + public String Name; + public EnumMap stats = new EnumMap<>(Stat.class); + public Map hand = new HashMap<>(); + public Map pile = new HashMap<>(); +} diff --git a/src/org/kotama/game_of_life/libs/Stat.java b/src/org/kotama/game_of_life/libs/Stat.java new file mode 100644 index 0000000..2a4e1f9 --- /dev/null +++ b/src/org/kotama/game_of_life/libs/Stat.java @@ -0,0 +1,19 @@ +package org.kotama.game_of_life.libs; + +public enum Stat { + MENTAL(0, 100, 50), + ALCOOL(0, 100, 0), + STRESS(0, 100, 50), + AFFECTION(0,100,50); + + + public final int min; + public final int max; + public final int begin; + + Stat(int min, int max, int begin) { + this.min = min; + this.max = max; + this.begin = begin; + } +} diff --git a/src/org/kotama/game_of_life/parser/Parser.java b/src/org/kotama/game_of_life/parser/Parser.java new file mode 100644 index 0000000..732abaa --- /dev/null +++ b/src/org/kotama/game_of_life/parser/Parser.java @@ -0,0 +1,33 @@ +package org.kotama.game_of_life.parser; + +import java.util.ArrayList; +import java.util.List; + +import org.kotama.game_of_life.libs.Command; +import org.kotama.game_of_life.libs.GameState; + +public class Parser { + List Commands = new ArrayList<>(); + + public void addCommands(List commands) + { + Commands = commands; + } + + public void main(String[] args, GameState gameState) + { + try { + for (Command command : Commands) + { + if (args[0].equals(command.name())) + { + command.parse(args, gameState); + } + } + } catch(Exception e) + { + System.out.println("bro... WTF is it ???"); + } + + } +}