From b7fff87e43fe7cf5e8f1a646cd62bb464c625d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=9D=BF=E5=93=B2?= <15683246+Azhe-D@user.noreply.gitee.com> Date: Wed, 22 Apr 2026 20:35:41 +0800 Subject: [PATCH] 8 --- .../bin/com/mypro/base/graphics/Bitmap.class | Bin 1819 -> 0 bytes .../bin/com/mypro/base/graphics/Canvas.class | Bin 318 -> 0 bytes .../bin/com/mypro/base/graphics/Matrix.class | Bin 218 -> 0 bytes .../bin/com/mypro/base/graphics/Paint.class | Bin 285 -> 0 bytes FishGame/bin/com/mypro/base/tools/Log.class | Bin 1011 -> 0 bytes .../basecomponet/AwtMainComponet$1.class | Bin 2039 -> 0 bytes .../basecomponet/AwtMainComponet$2.class | Bin 1249 -> 0 bytes .../basecomponet/AwtMainComponet$3.class | Bin 580 -> 0 bytes .../mypro/basecomponet/AwtMainComponet.class | Bin 4139 -> 0 bytes .../bin/com/mypro/basecomponet/JMatrix.class | Bin 765 -> 0 bytes .../bin/com/mypro/constant/Constant.class | Bin 1844 -> 0 bytes .../MainSurface$JCanvas$JPaint.class | Bin 2180 -> 0 bytes .../mainsurface/MainSurface$JCanvas.class | Bin 2011 -> 0 bytes .../MainSurface$OnDrawThread.class | Bin 1428 -> 0 bytes .../com/mypro/mainsurface/MainSurface.class | Bin 9064 -> 0 bytes .../com/mypro/manager/CannonManager$1.class | Bin 875 -> 0 bytes .../bin/com/mypro/manager/CannonManager.class | Bin 7173 -> 0 bytes .../mypro/manager/CatchFishManager$1.class | Bin 825 -> 0 bytes .../mypro/manager/CatchFishManager$2.class | Bin 1061 -> 0 bytes .../com/mypro/manager/CatchFishManager.class | Bin 3086 -> 0 bytes .../bin/com/mypro/manager/FishManager.class | Bin 7683 -> 0 bytes .../com/mypro/manager/GameInitManager.class | Bin 2328 -> 0 bytes .../bin/com/mypro/manager/GamePartInfo.class | Bin 1624 -> 0 bytes .../com/mypro/manager/GamePartManager$1.class | Bin 1530 -> 0 bytes .../com/mypro/manager/GamePartManager.class | Bin 4893 -> 0 bytes FishGame/bin/com/mypro/manager/HeadFish.class | Bin 2814 -> 0 bytes .../mypro/manager/ImageConfig$ActConfig.class | Bin 2109 -> 0 bytes .../bin/com/mypro/manager/ImageConfig.class | Bin 1461 -> 0 bytes .../bin/com/mypro/manager/ImageManager.class | Bin 8270 -> 0 bytes .../bin/com/mypro/manager/LayoutInfo.class | Bin 874 -> 0 bytes .../com/mypro/manager/LayoutManager$1.class | Bin 1939 -> 0 bytes .../bin/com/mypro/manager/LayoutManager.class | Bin 4547 -> 0 bytes .../bin/com/mypro/manager/PathManager.class | Bin 1409 -> 0 bytes .../com/mypro/manager/ScoreManager$1.class | Bin 910 -> 0 bytes .../com/mypro/manager/ScoreManager$2.class | Bin 2011 -> 0 bytes .../com/mypro/manager/ScoreManager$3.class | Bin 2023 -> 0 bytes .../bin/com/mypro/manager/ScoreManager.class | Bin 4569 -> 0 bytes .../com/mypro/manager/ShoalManager$1.class | Bin 1232 -> 0 bytes .../com/mypro/manager/ShoalManager$2.class | Bin 2172 -> 0 bytes .../bin/com/mypro/manager/ShoalManager.class | Bin 5463 -> 0 bytes .../bin/com/mypro/manager/XmlManager.class | Bin 2356 -> 0 bytes FishGame/bin/com/mypro/model/Ammo.class | Bin 1142 -> 0 bytes FishGame/bin/com/mypro/model/BackGround.class | Bin 695 -> 0 bytes .../bin/com/mypro/model/DrawableAdapter.class | Bin 853 -> 0 bytes FishGame/bin/com/mypro/model/FishGold.class | Bin 1565 -> 0 bytes FishGame/bin/com/mypro/model/FishInfo.class | Bin 1520 -> 0 bytes FishGame/bin/com/mypro/model/FishingNet.class | Bin 1946 -> 0 bytes FishGame/bin/com/mypro/model/GamingInfo.class | Bin 2888 -> 0 bytes FishGame/bin/com/mypro/model/HighPoint.class | Bin 825 -> 0 bytes .../bin/com/mypro/model/HundredPoint.class | Bin 831 -> 0 bytes .../com/mypro/model/componets/Bottom.class | Bin 1810 -> 0 bytes .../mypro/model/componets/BottomGold.class | Bin 4234 -> 0 bytes .../mypro/model/componets/BottomTime.class | Bin 4205 -> 0 bytes .../mypro/model/componets/ButtonAdapter.class | Bin 1312 -> 0 bytes .../com/mypro/model/componets/Cannon$1.class | Bin 962 -> 0 bytes .../com/mypro/model/componets/Cannon.class | Bin 1909 -> 0 bytes .../com/mypro/model/componets/Componet.class | Bin 877 -> 0 bytes .../componets/DownCannonButtonListener.class | Bin 484 -> 0 bytes .../componets/UpCannonButtonListener.class | Bin 478 -> 0 bytes .../bin/com/mypro/model/fish/Fish$1.class | Bin 1956 -> 0 bytes FishGame/bin/com/mypro/model/fish/Fish.class | Bin 4045 -> 0 bytes .../com/mypro/model/interfaces/Button.class | Bin 212 -> 0 bytes .../com/mypro/model/interfaces/Drawable.class | Bin 382 -> 0 bytes .../model/interfaces/OnClickListener.class | Bin 162 -> 0 bytes .../com/mypro/threads/FishRunThread$1.class | Bin 2189 -> 0 bytes .../bin/com/mypro/threads/FishRunThread.class | Bin 5948 -> 0 bytes .../bin/com/mypro/threads/PicActThread.class | Bin 1521 -> 0 bytes .../bin/com/mypro/threads/ShotThread$1.class | Bin 1094 -> 0 bytes .../bin/com/mypro/threads/ShotThread.class | Bin 3556 -> 0 bytes .../tools/CircleRectangleIntersect.class | Bin 1695 -> 0 bytes FishGame/bin/com/mypro/tools/LogTools.class | Bin 652 -> 0 bytes FishGame/bin/com/mypro/tools/Tool.class | Bin 372 -> 0 bytes Tetris/bin/tetris/Cell.class | Bin 0 -> 1768 bytes Tetris/bin/tetris/GameConfig.class | Bin 0 -> 2046 bytes Tetris/bin/tetris/GameManager.class | Bin 0 -> 2852 bytes Tetris/bin/tetris/GameOverPanel$1.class | Bin 0 -> 658 bytes Tetris/bin/tetris/GameOverPanel$2.class | Bin 0 -> 654 bytes Tetris/bin/tetris/GameOverPanel$3.class | Bin 0 -> 876 bytes Tetris/bin/tetris/GameOverPanel.class | Bin 0 -> 6118 bytes Tetris/bin/tetris/GameState.class | Bin 0 -> 2175 bytes Tetris/bin/tetris/MenuPanel$1.class | Bin 0 -> 638 bytes Tetris/bin/tetris/MenuPanel$2.class | Bin 0 -> 638 bytes Tetris/bin/tetris/MenuPanel$3.class | Bin 0 -> 582 bytes Tetris/bin/tetris/MenuPanel$4.class | Bin 0 -> 856 bytes Tetris/bin/tetris/MenuPanel.class | Bin 0 -> 4530 bytes Tetris/bin/tetris/SettingsPanel$1.class | Bin 0 -> 716 bytes Tetris/bin/tetris/SettingsPanel$2.class | Bin 0 -> 716 bytes Tetris/bin/tetris/SettingsPanel$3.class | Bin 0 -> 755 bytes Tetris/bin/tetris/SettingsPanel$4.class | Bin 0 -> 654 bytes Tetris/bin/tetris/SettingsPanel$5.class | Bin 0 -> 691 bytes Tetris/bin/tetris/SettingsPanel$6.class | Bin 0 -> 876 bytes Tetris/bin/tetris/SettingsPanel.class | Bin 0 -> 7553 bytes Tetris/bin/tetris/TetrisFrame$1.class | Bin 0 -> 432 bytes Tetris/bin/tetris/TetrisFrame.class | Bin 0 -> 1484 bytes Tetris/bin/tetris/TetrisPane$1.class | Bin 0 -> 606 bytes Tetris/bin/tetris/TetrisPane$2.class | Bin 0 -> 480 bytes .../bin/tetris/TetrisPane$DropExecution.class | Bin 0 -> 1324 bytes Tetris/bin/tetris/TetrisPane$IShaped.class | Bin 0 -> 630 bytes Tetris/bin/tetris/TetrisPane$JShaped.class | Bin 0 -> 629 bytes Tetris/bin/tetris/TetrisPane$KeyControl.class | Bin 0 -> 2070 bytes Tetris/bin/tetris/TetrisPane$LShaped.class | Bin 0 -> 633 bytes Tetris/bin/tetris/TetrisPane$OShaped.class | Bin 0 -> 629 bytes Tetris/bin/tetris/TetrisPane$SShaped.class | Bin 0 -> 629 bytes Tetris/bin/tetris/TetrisPane$TShaped.class | Bin 0 -> 629 bytes Tetris/bin/tetris/TetrisPane$ZShaped.class | Bin 0 -> 629 bytes Tetris/bin/tetris/TetrisPane.class | Bin 0 -> 14514 bytes Tetris/bin/tetris/Tetromino.class | Bin 0 -> 1638 bytes Tetris/src/tetris/Cell.java | 52 +- Tetris/src/tetris/GameConfig.java | 124 +++ Tetris/src/tetris/GameManager.java | 144 ++++ Tetris/src/tetris/GameOverPanel.java | 203 +++++ Tetris/src/tetris/GameState.java | 121 +++ Tetris/src/tetris/MenuPanel.java | 167 ++++ Tetris/src/tetris/SettingsPanel.java | 295 +++++++ Tetris/src/tetris/TetrisFrame.java | 54 +- Tetris/src/tetris/TetrisPane.java | 806 ++++++++++++------ Tetris/src/tetris/Tetromino.java | 91 +- Worm/bin/worm/Cell.class | Bin 0 -> 576 bytes Worm/bin/worm/Worm.class | Bin 0 -> 2089 bytes Worm/bin/worm/WormFrame.class | Bin 0 -> 1299 bytes Worm/bin/worm/WormStage$KeyControl.class | Bin 0 -> 1126 bytes Worm/bin/worm/WormStage$Move.class | Bin 0 -> 1217 bytes Worm/bin/worm/WormStage.class | Bin 0 -> 1928 bytes 123 files changed, 1686 insertions(+), 371 deletions(-) delete mode 100644 FishGame/bin/com/mypro/base/graphics/Bitmap.class delete mode 100644 FishGame/bin/com/mypro/base/graphics/Canvas.class delete mode 100644 FishGame/bin/com/mypro/base/graphics/Matrix.class delete mode 100644 FishGame/bin/com/mypro/base/graphics/Paint.class delete mode 100644 FishGame/bin/com/mypro/base/tools/Log.class delete mode 100644 FishGame/bin/com/mypro/basecomponet/AwtMainComponet$1.class delete mode 100644 FishGame/bin/com/mypro/basecomponet/AwtMainComponet$2.class delete mode 100644 FishGame/bin/com/mypro/basecomponet/AwtMainComponet$3.class delete mode 100644 FishGame/bin/com/mypro/basecomponet/AwtMainComponet.class delete mode 100644 FishGame/bin/com/mypro/basecomponet/JMatrix.class delete mode 100644 FishGame/bin/com/mypro/constant/Constant.class delete mode 100644 FishGame/bin/com/mypro/mainsurface/MainSurface$JCanvas$JPaint.class delete mode 100644 FishGame/bin/com/mypro/mainsurface/MainSurface$JCanvas.class delete mode 100644 FishGame/bin/com/mypro/mainsurface/MainSurface$OnDrawThread.class delete mode 100644 FishGame/bin/com/mypro/mainsurface/MainSurface.class delete mode 100644 FishGame/bin/com/mypro/manager/CannonManager$1.class delete mode 100644 FishGame/bin/com/mypro/manager/CannonManager.class delete mode 100644 FishGame/bin/com/mypro/manager/CatchFishManager$1.class delete mode 100644 FishGame/bin/com/mypro/manager/CatchFishManager$2.class delete mode 100644 FishGame/bin/com/mypro/manager/CatchFishManager.class delete mode 100644 FishGame/bin/com/mypro/manager/FishManager.class delete mode 100644 FishGame/bin/com/mypro/manager/GameInitManager.class delete mode 100644 FishGame/bin/com/mypro/manager/GamePartInfo.class delete mode 100644 FishGame/bin/com/mypro/manager/GamePartManager$1.class delete mode 100644 FishGame/bin/com/mypro/manager/GamePartManager.class delete mode 100644 FishGame/bin/com/mypro/manager/HeadFish.class delete mode 100644 FishGame/bin/com/mypro/manager/ImageConfig$ActConfig.class delete mode 100644 FishGame/bin/com/mypro/manager/ImageConfig.class delete mode 100644 FishGame/bin/com/mypro/manager/ImageManager.class delete mode 100644 FishGame/bin/com/mypro/manager/LayoutInfo.class delete mode 100644 FishGame/bin/com/mypro/manager/LayoutManager$1.class delete mode 100644 FishGame/bin/com/mypro/manager/LayoutManager.class delete mode 100644 FishGame/bin/com/mypro/manager/PathManager.class delete mode 100644 FishGame/bin/com/mypro/manager/ScoreManager$1.class delete mode 100644 FishGame/bin/com/mypro/manager/ScoreManager$2.class delete mode 100644 FishGame/bin/com/mypro/manager/ScoreManager$3.class delete mode 100644 FishGame/bin/com/mypro/manager/ScoreManager.class delete mode 100644 FishGame/bin/com/mypro/manager/ShoalManager$1.class delete mode 100644 FishGame/bin/com/mypro/manager/ShoalManager$2.class delete mode 100644 FishGame/bin/com/mypro/manager/ShoalManager.class delete mode 100644 FishGame/bin/com/mypro/manager/XmlManager.class delete mode 100644 FishGame/bin/com/mypro/model/Ammo.class delete mode 100644 FishGame/bin/com/mypro/model/BackGround.class delete mode 100644 FishGame/bin/com/mypro/model/DrawableAdapter.class delete mode 100644 FishGame/bin/com/mypro/model/FishGold.class delete mode 100644 FishGame/bin/com/mypro/model/FishInfo.class delete mode 100644 FishGame/bin/com/mypro/model/FishingNet.class delete mode 100644 FishGame/bin/com/mypro/model/GamingInfo.class delete mode 100644 FishGame/bin/com/mypro/model/HighPoint.class delete mode 100644 FishGame/bin/com/mypro/model/HundredPoint.class delete mode 100644 FishGame/bin/com/mypro/model/componets/Bottom.class delete mode 100644 FishGame/bin/com/mypro/model/componets/BottomGold.class delete mode 100644 FishGame/bin/com/mypro/model/componets/BottomTime.class delete mode 100644 FishGame/bin/com/mypro/model/componets/ButtonAdapter.class delete mode 100644 FishGame/bin/com/mypro/model/componets/Cannon$1.class delete mode 100644 FishGame/bin/com/mypro/model/componets/Cannon.class delete mode 100644 FishGame/bin/com/mypro/model/componets/Componet.class delete mode 100644 FishGame/bin/com/mypro/model/componets/DownCannonButtonListener.class delete mode 100644 FishGame/bin/com/mypro/model/componets/UpCannonButtonListener.class delete mode 100644 FishGame/bin/com/mypro/model/fish/Fish$1.class delete mode 100644 FishGame/bin/com/mypro/model/fish/Fish.class delete mode 100644 FishGame/bin/com/mypro/model/interfaces/Button.class delete mode 100644 FishGame/bin/com/mypro/model/interfaces/Drawable.class delete mode 100644 FishGame/bin/com/mypro/model/interfaces/OnClickListener.class delete mode 100644 FishGame/bin/com/mypro/threads/FishRunThread$1.class delete mode 100644 FishGame/bin/com/mypro/threads/FishRunThread.class delete mode 100644 FishGame/bin/com/mypro/threads/PicActThread.class delete mode 100644 FishGame/bin/com/mypro/threads/ShotThread$1.class delete mode 100644 FishGame/bin/com/mypro/threads/ShotThread.class delete mode 100644 FishGame/bin/com/mypro/tools/CircleRectangleIntersect.class delete mode 100644 FishGame/bin/com/mypro/tools/LogTools.class delete mode 100644 FishGame/bin/com/mypro/tools/Tool.class create mode 100644 Tetris/bin/tetris/Cell.class create mode 100644 Tetris/bin/tetris/GameConfig.class create mode 100644 Tetris/bin/tetris/GameManager.class create mode 100644 Tetris/bin/tetris/GameOverPanel$1.class create mode 100644 Tetris/bin/tetris/GameOverPanel$2.class create mode 100644 Tetris/bin/tetris/GameOverPanel$3.class create mode 100644 Tetris/bin/tetris/GameOverPanel.class create mode 100644 Tetris/bin/tetris/GameState.class create mode 100644 Tetris/bin/tetris/MenuPanel$1.class create mode 100644 Tetris/bin/tetris/MenuPanel$2.class create mode 100644 Tetris/bin/tetris/MenuPanel$3.class create mode 100644 Tetris/bin/tetris/MenuPanel$4.class create mode 100644 Tetris/bin/tetris/MenuPanel.class create mode 100644 Tetris/bin/tetris/SettingsPanel$1.class create mode 100644 Tetris/bin/tetris/SettingsPanel$2.class create mode 100644 Tetris/bin/tetris/SettingsPanel$3.class create mode 100644 Tetris/bin/tetris/SettingsPanel$4.class create mode 100644 Tetris/bin/tetris/SettingsPanel$5.class create mode 100644 Tetris/bin/tetris/SettingsPanel$6.class create mode 100644 Tetris/bin/tetris/SettingsPanel.class create mode 100644 Tetris/bin/tetris/TetrisFrame$1.class create mode 100644 Tetris/bin/tetris/TetrisFrame.class create mode 100644 Tetris/bin/tetris/TetrisPane$1.class create mode 100644 Tetris/bin/tetris/TetrisPane$2.class create mode 100644 Tetris/bin/tetris/TetrisPane$DropExecution.class create mode 100644 Tetris/bin/tetris/TetrisPane$IShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane$JShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane$KeyControl.class create mode 100644 Tetris/bin/tetris/TetrisPane$LShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane$OShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane$SShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane$TShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane$ZShaped.class create mode 100644 Tetris/bin/tetris/TetrisPane.class create mode 100644 Tetris/bin/tetris/Tetromino.class create mode 100644 Tetris/src/tetris/GameConfig.java create mode 100644 Tetris/src/tetris/GameManager.java create mode 100644 Tetris/src/tetris/GameOverPanel.java create mode 100644 Tetris/src/tetris/GameState.java create mode 100644 Tetris/src/tetris/MenuPanel.java create mode 100644 Tetris/src/tetris/SettingsPanel.java create mode 100644 Worm/bin/worm/Cell.class create mode 100644 Worm/bin/worm/Worm.class create mode 100644 Worm/bin/worm/WormFrame.class create mode 100644 Worm/bin/worm/WormStage$KeyControl.class create mode 100644 Worm/bin/worm/WormStage$Move.class create mode 100644 Worm/bin/worm/WormStage.class diff --git a/FishGame/bin/com/mypro/base/graphics/Bitmap.class b/FishGame/bin/com/mypro/base/graphics/Bitmap.class deleted file mode 100644 index 77b0b90f5a65b7f9f74033b4fa1b09366e9665c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1819 zcma)6ZBr9x6g^LN^S($(QH%++VAZ^U+lmz-2sH?pDb`MDYqg&?$r{!sBwd2m{)PSo zKeeCzATw>4sWbgpX8NO?p1Ye6##++MU&Fj)$m_%;p9_eHJ-?;M6)h3R*T-Rv6jtSk>?ES?wM`lo#&WPJO3CgsN*>9ecZK zHSAi+=`^jj!g_YA+G?83=WVxTR;)eSth-iw$Eog_{*_|6{3tiosMm{_T8$z;YfGmezjM{N&{!H zV&FZD8%Sf-z!X+#^Xa?_nbXEVFtf6pGw>;H3vfn&Ghvhrtl^G>jpM(*}x{U z3JDLhVeQt<`;{klmDY`WA*W?-+pc3ZoS*#hpy$-|?+Nq9<9=n&cAwgAQF;;Q9BlTC zRXBTcmil21?bxxJeo!G=bFF8+8C*Ou%l-(mt=?xanvT2x=35m!QkZ{7?(nP->;7`H z#P^A2a)W8UoMYfH^BWMm_^wB}XOp>3@F~xDfWNW)AymHbI|2uMQaI1`3^cBz(2-!4 z;G}S&mp92@#nWK^Hw0cCr-Z!VI9IyIRVWrnAXk%e^$0=jrEF9e+Dk?Q9#zaM;yh_m zm}FFgk~-=BFcAH1kV%3}4M3uJA0PBUeny;sPr%ptzbM$N=G) z$g2~NOL|K0BDxezc|tWUozb*>m)Tv!DZzLk`6*q}j>TN?NM=ZOk(FFR0he(NSMV9K zUR^o@@g%F9#!RoUq6lVwGJga^5S0LuV`PBpyD>{Q<}d=YuW*Ekd@p)HKhSV7ZP`~h zz!FXUx;>#=1?svtEB7>wO3rvn3hxjyk1(!t1a7e01my_TT{&FDdt6BH}K9mupup(BI%zW9& z?Cbq_0$9MYF|aWtI48~5r79E73I22=vqU8KTxY`PA`qeG{H$alTEy+lw_Iv<>(2MA z($bwB3G2Tlp4VCPJL4R(i;(#z(aawUPkGNvOq-#V=5ylNCVopP`^P@nP7J*>Y Up8*V$(1QtlwO=~~tMOrf0RJ&xr2qf` diff --git a/FishGame/bin/com/mypro/base/graphics/Matrix.class b/FishGame/bin/com/mypro/base/graphics/Matrix.class deleted file mode 100644 index cf1e9fdb3f6a417b6306a8e4d420644ff12edd59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmXZW!4APd5C-6Xs8%WQ1kPOS(Hrz85*7Ec*;J*v&2|Z|=HLN5l$e&w%>0?}@V`IL z7l1XU5t0ZKLedz&cU(0kdqWs3(sX%{?TkDK{Y9IGwKJLKQa~){&iW3Af;&CR?A2+L z7Ofa>*t_DsI`fSQb8Ro`@~E9vM{bPD9oMHqH|nPdv(~ASt6Xi5XQO>cAoQdq5CqZy VfgI8ZVYj1y9wHV&7|HBm`~?P+FRB0l diff --git a/FishGame/bin/com/mypro/base/graphics/Paint.class b/FishGame/bin/com/mypro/base/graphics/Paint.class deleted file mode 100644 index 9a24c5003ad78cdfa2e3d54b9c74201e4f1b1937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmZ9HF;Bxl427RdNZPc}E{yD9;YJ3g0zyJU0;!0B%{`g+sw5X(4n+BB4Ez9o6vBxz zvG|jopP%iY->+`~7g%IC&M+rTTZvEmMqb$p;iS0V@jIK6>y3F>@5IK-vuDCgUCTPU zW$CyjB*jao&Q-m2Wt4E`V#N(%qRNenTM0w5e8iRe)a0bN>qf?Exb~&je!lW=!HNcG zJAY(X$MbGE;ne!dRQo1)v*uRJCUCQLwl%$pu=sytN+68%F(6F{2S@l!g=H<3T3bI_MX3dJv?9M5dzP|9N+S4!mAvT+U9&GAMF z3|khqE$lF4UwYEhuNczR+9!rgQ}qNxvE@neeiU>>c+5LKc^JKW)z&FL-3_RCT{R0DbkcVyImV?_UGpxNz_PPq`mSgeED12MrthxX+NM5EUM>L&mTf@PTM5+2#7Pr%z}XX)bld@Z$e^vD_Yp z^$F9(;tbZ%Q1KVPC=w*->wMK|j(8?-xa|2Ns>HyAiO-2#03MHrA|d?CTzovL zMs3bDP0{4O-}badh;&{Wcb4X diff --git a/FishGame/bin/com/mypro/basecomponet/AwtMainComponet$1.class b/FishGame/bin/com/mypro/basecomponet/AwtMainComponet$1.class deleted file mode 100644 index 7d9426d2fe101ee304c7a3d41b3a070391045265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2039 zcmah~ZBr9h6n+*G7Q!L{MWqe3irS#9TdaaDFG^zqkp!twKy7O;$t5f#yL5LW*l(R_ z{n&n{pDh0X?4(RT^au1eb(}tTgNCG;$_(e;bMABAPtN}R>d(IbjH0aLY6SiGFoKV8 ztpgfNb^BP6VZ~mL;1k@4@OD#?5k*ELIDuP=e5&I!g&K=s924qoGJ@NN(hKli3%%4Sa!lGZ8^5|uc@__HMGx3&!2HTU&G~`Q!-1>wp_kVm*uIv?wvMw7upS_!dIPs(~CBq*T7v z3>2_#z`}-(O#?-g4A^jVY#I0tt^p5BAYQZje+gV1Wu=t*aXwa&nunXq> z)eV`Wu~@V2Wh~E^ROB3#SYi#Q&JG(#ctP(ygl6(!aG0KQ{-+lI9u?e%?HH(QB=1YTk!3wfZ-9l>u~9AyIZ+&Ob-p zXQZ8~h6`nPP2|W89#`jsSA8(mEFXbr<@_-p%|W!gF6?|!9+fW~Pp5|-@dxVp!c`&5 zG|Ssy$rc6aswoT}vm)SGv}%&|!b|m;RkIYZ_xx{&@)q66??FFA$9|PLl8#rUkw7|5 zEFqoyhcGJW8VUD>chS)o4!=O`0Nt^H3ZlE{slJ9@pzRPn#P(Kjau*@qPN`6yt5BX- z(Dy4&9^&+I(HWIkOOXE>%LUv5ze+GLh8}*E`Z39B+{Sg>!A(qIgde0CBruD+T+~S} z*A!MT&AmDcK}iu=Y-0{Ta0~y)CHxZ+KXd#3Lew5n2i&_C=%p9!uP~x%TA%R`dbKm? zxWIxAzAk7GNz=MNA?)JYVL8Gsy&YCS2$zEbe1JI55Y>ioC6H)H^Hg8uvpo6tFH$$` A0{{R3 diff --git a/FishGame/bin/com/mypro/basecomponet/AwtMainComponet$2.class b/FishGame/bin/com/mypro/basecomponet/AwtMainComponet$2.class deleted file mode 100644 index 06e9f4e45f892d4659bad2e06b4d85a5e71a5c95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1249 zcma)5OK%)S5dM01b|;>UA9*`qn-Bt7$KVMDY`_nQH#S+=2}q9eyfC}dS&y?bZDxA? zK!^i~=Re?>TsX(EjKl$n3kUuZQpDHoknqTXmA0z7s_W~juWEjO`13CSX3%gk=3x-e zc{qjVjX2#0ffqcS!HdRv$%wN?)cP=vb0#ohte1`Tii=4X=Uu!iP@PM%L@x-GYvWf1 zoVtpoz+f}UmO^3e;MI*gL6uF`dtNj+(xS;A7*?y4fmI-%67 zD)upj*8~n+mW95g3e6_lDh<-@^;`w5sE|C_{NP`BJ`Ulqi`RX;foY%YQM`$_T)gdL z)*R+A?_&Y)_;?o=TrB#i8_z{7`B*mAd$>d*|KDq8rUd*(mdU){jfz4R0z;OoZj^O` z4_j-p&C*XljlNLnL}ksS(30t#MM_o#j@NGOvuzPpbWTbv$tRx%VrRhIj?~xfP#gP) z8v>Qvd6XK$E!k>phm=s~O zm88k1W~|~SdpGNpMBREfY2RV*PZs4Pm2f)*1|FAfJxtps5Z`I4c4Qb}DYfzc=7}v{ zEB=11QfoBEuX6hb_$}})ej8=}Ic}bg&>E!{)Rl8Tp>&@Ho2RT==NjcP9H%r_e`RWg zx-+qd@;rsJu!G7Ts?*Ns(9AuABgdRW*p2Vv2(6*5_#V9S1Gqn8X8-&sFlPde4UCz< z95cL%Jr9(ua*Z;@lx#86=%=0X@eCdmYySkp$T5L}8?U*BJ$!%-T)`%8VH+)chTHfY zCz$1<@(@!(h~dF%nT-rTZs$9;^uz3(vGOW1Bm;3*Yqnu?_g~ z{9j(r5U}s{Vnf8p=pOo?6g>u);9ro*FKK9bwiWyU diff --git a/FishGame/bin/com/mypro/basecomponet/AwtMainComponet$3.class b/FishGame/bin/com/mypro/basecomponet/AwtMainComponet$3.class deleted file mode 100644 index 7bcbbf3566717bfa1f5a7d62dd02ea9f909d140b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcma)3%TB^T6g>mQVl9G*Z&8eofD5~D;X-3#hz}CLM2-6aCRjpeNITW|8AgA^jT#qz zfFEVNg$RioZ8G=FJ#)`J>Ajy{?;im6P_U3d*1|M$QJ66?YhvES0>jvWD_woa5HFUl z8H}=O35Imlm7*Sc4dGw$MwghlA4&%6QiXm~oVXE{JG#>~?#iwpHKA`*%fzCMB_tV=brI+@6=)kKk|vgItZ2oi3Mc=e*GoP0f%UQ5T_56YowBIZd_(L7@lmnW@A*igC-SkWB!(0w2@Rx?!Bn3~V~)_G76u`G E-#OrhF8}}l diff --git a/FishGame/bin/com/mypro/basecomponet/AwtMainComponet.class b/FishGame/bin/com/mypro/basecomponet/AwtMainComponet.class deleted file mode 100644 index b694684e34f0644d1cbf7df3798bd092b5595315..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4139 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 diff --git a/FishGame/bin/com/mypro/basecomponet/JMatrix.class b/FishGame/bin/com/mypro/basecomponet/JMatrix.class deleted file mode 100644 index 562dbd03a57f50535e55474edd28607e1c6567ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmaJ;QBM;=5dOBk>$T?=T2ustB2w^Lz@<~2hxXdN>+ zZ`FxpnBOPZhx1`q>Lbw|P{h?TlZJtl&G`diY&ht2EU!G$@-P+_St0j8nLJ&hbe{JQ z)wzykC$R|r?!7QNxp;1eGx!y!b$*{qSS=Ova>Rh7t++B zbJMcKIwk2w9f*@8U%eAVt%&xkZ&wjnHa6&dJ{a!NN2@@UPVACLTOeDb*Di|W0k!ru zSo;?WpRQ5-2Iq=m40W>h+<*rMWr{4^GM94%p{CGMUaCs=J|2*@4FYOdq(5(eg|j(s zj=#g5GA70AG~fc^AKt|(&9WAWwM48%Ji6(%myZe5C%t~aYmT?5VR@FiN~1N1v_yjy Gu>246Uyq9b diff --git a/FishGame/bin/com/mypro/constant/Constant.class b/FishGame/bin/com/mypro/constant/Constant.class deleted file mode 100644 index cc226c76b5670b677465bb0b94cf4b2dc509bc2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1844 zcmZvc-BTN76vm&I1OhQYLZQl6DQH`$wo$9rDwc-LCfPRGjhh8Z{a8bY6bwnF0d2kW z(mQ+Uj5odX&Ru6ZMV z5H$Mvjq*7s(Y~N5XbBz&z7!k?9tzrmL&1^YE5X+>Jc{A5!cf^V{0%GX6%>@E5SO@M zTKR&fFzncV*3E4Am7-~u6<(0VyMCo?npu|TI+@LGW?0tUHM<*+<*Z7u+Q{)Ae1eT;^konN8DGIMZD$JC^Nrv&jN2@=v9vj6%lFb34ylGjlo9 z=+zJ9`T9Cfoak-nbj^rR&)@VS4TAZa+IvSXXJSLv;5uR80g)r@h+&$|wL=@twu z?>2YaH~Fp>m(~@cMr*sSFk0Mg*6qXnt@?pi-D)s1xLj*=D&v*b;X$pQ+m(E8rmpT) zkE#h&;3aSgiwP_VE(>18YYAKtT*V?^qEx0E)#gsRRBhi+;61#bz_L_+Ah;=55!@1F z1gio=kQJDM9P$Yiy?U*Ud7j*hoc0C&s<1m=4M~Gq*`rprsg<2-WwX>tq^Sz8^STdjFn;qye2wv2 zC*rpmzjGqK&iLIE@eO`2?b6SuV_IpNR{Exu)@h}CT4|tGdZ?8)YNeA}X{J{Csg;&$ zrK?(LtX6ufmG)|-!&+&wR{E@!R%@l(T4^}7j~;M1$Tdc@R7LH-{0!=6UMQ@S13DSO zAU3+CYK6DT=UMVrh(19ixfmik)*oVEI7BQJ`6ocM5n^y0@eqkr|6d`7Q}`pqh~}tf zGKF74q>|eq#sp`QEFKq32+oe<#SoLpoe)z2rlPEv4lpe`6JSPkHo&atxd7)x=K{=$ zo)2(dbUwhm=t6)6(U&73UO8^=h+P9w^z$#yR!0%TI9q**?{ooY>Cz+*$PDLUj_-JZ z(|>_8eu*=^#PPjC-_p3p3G#6bbxz41C*y#Xk9l^!<*E6OcRb-q`GIHTDewG=ha=#z LP`JzQ?Zf7Ox06OM diff --git a/FishGame/bin/com/mypro/mainsurface/MainSurface$JCanvas$JPaint.class b/FishGame/bin/com/mypro/mainsurface/MainSurface$JCanvas$JPaint.class deleted file mode 100644 index 4d42b5a300cb051b3419dbcbb3f78bf9c48425c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2180 zcmb7G?@wE06nxU}3s88CIgCX;CkNH^Tvl*v{~H!ie=(Za_3(Ot?*xwE}(+S@5c z{a~UW{1LNciCIki;0LEMCbM&pxWxF)#6QUx<2mi6rL+tBfpgD2=Q-y-&w0-a{Q1wX zzX3RhlnZ@$$&Dj8RIjSZQX>l(jJ`c?#-!R)#e=n5OAj21I%G9TC1(iG_^NGraTlgx>f zdMmBcx|#AXtlg4Ht6biZlGd(tfv3E_+81}j<%y`&Enr$kAZ_p{oZcJ!@k237Pre<| zbM`m82zA*=TQWawSQ$Mh;G)QkVQtF1%}Bm$#fynIT$g#n zOwAgmRZtPbii&Hv&J9;p+`#K9-oTqG-r_`p6F1q@*;`{T$=*7964wPz{pVE}o?E2- zuxKH69Z#9oo`Vq>thHOy3(~*4v3|SOSIZx;c>+TRVg(#tK8k_re3~p9uTYcapv~^4 z6{;VoK>uEBeUd6X^P$y5AR5;KVJ#5TqI5eqh{U|yBI&gStgjoUG}Rtn351tJwd%w| zl!A@REihrPJm2mntr|;s2Hmud^!hyKPa{DXLx@clr3og?St$BI6;l8vQ~WrdB|AiKX9?k;XWz)^BZ!e5w2X{x!|^+ukI?!vB?L~8?PQR6A1?6$dc}tn zeGbER3u<2ejHtoeCa7Q>pWIOJobF32GhI)%9oMv3}J zRlpNR@-4wetFTXOotH@GRHM$G5_%hTa&({0nv4^4yb#}!jQb?xdy?@3$@r0E{6sPy zkc@{7)ZN5s3@_TVeiuYpz12phH@-%7}r~eC< HovwcY9rOW@ diff --git a/FishGame/bin/com/mypro/mainsurface/MainSurface$JCanvas.class b/FishGame/bin/com/mypro/mainsurface/MainSurface$JCanvas.class deleted file mode 100644 index cafdce3777998c04f0563bb430b279a70b6d04a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2011 zcmb7F|8Lt=5dXY1i5tgDLkbMWmZe+PC22R878sB*SX;Wfq+cMVr4s_Zq%WyQ?F8Ft z$KSAjhDmFSKtlX9B>pJGJ;$lNjxL}`XWzZgeeT}*?()~)zy1#34j!hE!)+Dg&=t(6 zco(x$%t`T{iV?go0Us#1qauY5rSg%Ak5QHCT?L<{kik6_pW-tq?kkvAu%KX(L0MVg z_5pVpG{d%qv#`%ySCE=q+2E$_(MvM`>DEtOr=weBa(hmTH-)}R@AdwBF$i1iMm)`ZJ;5w zsJ?n0B;C1{8BB>BNPnj=~s zXa{V{!&b+!2swV*qaguJx*Xjgk&RMF($6E*|CKa6HvMJkJFPcd;T#C3T7Jkd_Y$RH z4D&*PcKbLOUZ<@elT$)}5HZ>CKsGC(5NeAXCQ%7Kx6T~XNVPxkQ z#E+5iWip#QfpUaVI!NtQD$g)_0`&;#r{u;kK{7+(z`jL_eTQr8d$L}`^&r3%dNRT! z$T9u%sY_BCS%YK|H%J!fBnllp3vCl<5;p_r7UJ{+N>k5~nL38{9Ln^ch(DE4j&VVn zrvE_Z8OGQ#vfDD(n4fD-`Z0^_HnOaXo9suF=roSln7q#<%0Y~EDpi6`CMbp~3D58s zpWJvtz@&K diff --git a/FishGame/bin/com/mypro/mainsurface/MainSurface$OnDrawThread.class b/FishGame/bin/com/mypro/mainsurface/MainSurface$OnDrawThread.class deleted file mode 100644 index cac5adf66a4ceb741d84a720d63b5f859bf5a91b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1428 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 diff --git a/FishGame/bin/com/mypro/manager/CannonManager.class b/FishGame/bin/com/mypro/manager/CannonManager.class deleted file mode 100644 index 2a3e18e1d643cc82ef367fe8c01aaaf6127b642d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7173 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 diff --git a/FishGame/bin/com/mypro/manager/CatchFishManager$1.class b/FishGame/bin/com/mypro/manager/CatchFishManager$1.class deleted file mode 100644 index aa28dd85483ed23f0988fddbf7c067ee9462224c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcma)4+iuf95Ivi?aT81%0<^T@Qi4NL2WsGj2M`D%0+rez(F(z%lKvIsGyD;8f+6y z6D<>MfyE;)vX#u=2#DUyeS5m};y4jl+3}OujgQ}@i5n*eGIF1ge;`oGgD|u22-x!x zp7Mq=b-P~f2fZ*0c25W$|1eZx{z%|)`+pL8z4@rw!JDrIj4pkF<(*K;{wN;Ebl)39 zWQyrX5!*VbvX_ifU-m-1aq-s+Z5?_?9!oq^ew1XP8t%$GNDfSFT5!;z1bvz1FOn>` zP{lb5XJA=4t6>St7HU|va0?v^w{^5VC(<7zud LA8d_}OUv&&nm)HZ diff --git a/FishGame/bin/com/mypro/manager/CatchFishManager$2.class b/FishGame/bin/com/mypro/manager/CatchFishManager$2.class deleted file mode 100644 index 2fa501ec59acc8e2ca2c8498b0dbc14abe9be97b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1061 zcma)5Yfscb6g{(Bwo56pyk${TTy(b}RebPNV+f5V3nqdDKMrNGTkOtk+Ahj3@-vBx z#t;4gf0XggLg)rH+NAgNzRt{?JN@zV+jjtqc-jjKx3rno=C(E^3w@Zea0hoSlu3f&o0gPkQcVAw zoxzOj>cf^Gj>)p;{aJFYr^=Pzn)UQaN6ORiirX7h=VeD2_ZAX7F3?3+QJQZDtO6BEhs=`HlwX%zw^fUBZMLW^iELVA7y7~c7t diff --git a/FishGame/bin/com/mypro/manager/CatchFishManager.class b/FishGame/bin/com/mypro/manager/CatchFishManager.class deleted file mode 100644 index f53df028abecb8cc9ea29dda4df9b81b99771e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3086 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 arrcXhPu*g@3Lbt%k10SEXNooB1o$6-E>Cm- diff --git a/FishGame/bin/com/mypro/manager/HeadFish.class b/FishGame/bin/com/mypro/manager/HeadFish.class deleted file mode 100644 index 29b4ce3ca4fc09201e2a8c3581d22b9e2e034e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2814 zcmah~TUQ%Z7~PXAq(cZGZ7I+jRg+LjTU)JisV!|RHb5n`}V&97q^Od^zXLclNix`W<-n!6>_UN%ZqO1id8r|7wNCY=c~PX3$0H~;5W zSL2ZTY&wuyT)P!`buzc;4bbyhuVx)_Gh7yKfR>NnMbdMk7^kB2hlWwc)$X0+g^QEM zL!M8c02I=01>In~MAG>qB6d!=osaldE=!jvuH^q9b+?gB>4Xt9O3pUUg^w5u%3k9Pm`X99rMypx?@5nM8=X= z?u}BZqhlB&I%YAgV^mHLlp zM$OnV?c9MMte$JLYSgxJi=}P8B5Vg^laJV-nu3n2$;=uJ4Dgi&bcDonor&kZ|+Wi+?^h}JDqfQdgtzp%iS3%G`#Pg)8u8)JP%REL~*^!ug?(X2^h(~ftHQ` zm1rT9jkFNX{)x!y8$?@({lruv0r)c z)MBpiqH^ULzpmqkQn}1ML}V;Ge#BJ5m5w3GV7w4Mq~1;3;_5dQ|HWrY;{J%gFb~=` zG2BAD9gSxqLlapdZ{w2y>Mnm2R|)zQlL{(wIFK;~{UO2q)ta63^ia<#XrM^!fX3gP=z!C}=x#?6*FDcqOuziJT7%uiqb@ zN$A31cx`G1((k9PklG@C2$FCA0EYe4I|Mz(mkN4>I_#&ek-ARg(&3}@Ks`#MoQqI6 yyeM15+oIkU3oo{5PLlxm7ID~2cZ2V!!*{7k$|9DP3!OO*`E&e=peJtSp8gBhYWr#c diff --git a/FishGame/bin/com/mypro/manager/ImageConfig$ActConfig.class b/FishGame/bin/com/mypro/manager/ImageConfig$ActConfig.class deleted file mode 100644 index a2679b70af6bafa20e723933b700243d9c738a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2109 zcmai#YflqF6o$|A%9bsZn>R$EAe1813yN~bYN1+-5ibxE%~F=KgzlQQnE0QJ(L`e6 z2Y-M+%J`lsQ_8r3FYnozedn2TX3n;M{{H$+L^JdvMsZp;$fOmPM=V*E$1G1+axAMX zYb<$|r%`$qrJ|rn$#Zv|vY_jQl2^%8K7XuwnTq9FWxJZmR}iw&Fek`xcv!S5wxI69 zzV*q<99V8Svr(@)ZW)G%G;9hIc{SJ)6qB=Wot^rgpmsS}vz_u@T~OSsI%UVT4vyb; zsIf9cz1`iKU1wxY(D4Y&$h_k^^+iF!)c6}gp{%!qq&f?ZYZnhI+jjMpwS9mYqiomn zoHYorA}s?rH4{qZd3DnSaPu{u<7)A7c5$^-Wvkw+Y&(=eO(fu0KV4!19&M_t#idqu zwb;~LjD6}nPz_Eb#x^w-O69nm6B{3X(}01g5^mgKZ))7{7ELUXC)9BDrT#amQ){$_ zpdpaX?H*v2KbbnmF6-Fv4yz?Q=kP@)WJZnkQ`~xj+KP6qzUI~HQCc_YDh-&_O+6;{ zvh=ZBV7bV0iRCg~F{z&=L0u+wP^X}=Gt(YfDK&F8TAt0k>)O@qfmN&7H6(ZPEv#?v z+a+}Nz?obc!Y3HV_Zy=C=YgjHCnY0_kP&srh*D%kH8P?g8BvprC`(3EhS*1f&jNZ4 zBO6?SIGO%QA{{)U085Z1#1dwSutd}CN7Tk*e8&R(9zaLQfc8=dXam>|KznEq$C<3egmWDFf$- zFFL5BZ^L@SA05=u(?H*Yf7BNp($O=pj`^cQI(io9Irvk)=&+7nfOXs-9oEsyK(D}` z_C-f@bQabLe{@7g=YU>?|E4cGs-yF;PWq#xI=TS#bNHv^W%9MRc1YV-Of;IU(IM*? z-6Fos(;YI5?$psQf!=`gjxXBK(XU~>>yK{f`9||?0=)(QwCoc->)1Cf>vyo;$G@?j z^~4dy^sL_l{Q=Gg^zhi3O^OSCsZs7}GZlBzqd(OS*xzFE!zy1Jtj%Nkrv8rILfD~5q7=b3k0~sF5 z@JPX91y2+_707S3gIdS^V3`7H-E|GGX6wFh_yR@WYu6p!G+tP?v8y|Vz*OTv|EO!W z?wVRN@GRF{7Z~f|-dTIWzJRC;jQ4WehGp&t0*Y?ilp^i)DMvT3Y;9Zj_jmL|lH{9~ z>FPn(qsps6#Kxd-qup^d=jhPuXpZi(O-~EEJ)LH$KiB#u>2n*FYXzGE>2l?*K&IB& zqtHada*f@t(=xm_ddp^J+BAaZz}Pe8%Ah{M{xEQtc7N$>$St} zq=~V+Uz1BJFuH5_!Hyws*HO7*-*|s2rZBBy4C5*$P*gFAqQLxxyG6CLXYjIh zV6?g5%NLfMts`#p1?KrsGkl$tqvL!JNP~M)~e#%#dB+I_9Fvd46SOw)zvfE;kb%&r^oI6Q9cZ^(;+9S13)JMcG z;Vx&BQ^vc_Bn|l-`G1ck%P2=B=ZqQf{0k+%Ms*e5QB>g EKV9iO$^ZZW diff --git a/FishGame/bin/com/mypro/manager/ImageManager.class b/FishGame/bin/com/mypro/manager/ImageManager.class deleted file mode 100644 index 7f0e173f411aa36a1c72fd371ca4003c43ec85f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8270 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 a9F;f9F*dLBA(W`6uRXT8R;Gl>_2TQOWlwb=~ zat|*<*;BDUofBBqlYU=@J^#FOt-6T-vt6LdA8GLy7hq^2zYGmcJGtyd2pT?NUFNFE zbCZ4D`w8J4k70PVF$!LN4D+7*jLTXk6?jf%nY0Z~ZsHlXc)E(G6VeX5plZSU0pspr z)JiuitZN*}Ob=*kP+_HpQyV+o-KSZV%5@rM`aHUDJAh~xe_50>YIq;eO!&>1B@#& z(T)!>8OKMsrpT0r={ROEt0ALdPQyGy=N7k9Qrw;4QaY01Y~FOLM)iKpb&RT061G8d z&5^?Qi~uvv5cMmTm%6}krWMU4FALYm^ZQQSUkoG#p0K3lPcmfFuSB;3j&?q>$`GER zIfkyhCB;&`S`_XIFWRIDxpmq?D6K%91)rOD7I|%dE?#izt|_vX0`?pV^86;>;$$x) zP22G-SzZ)=#VKjX=~%$W46!BQ`SXtF>v#hR9jDQ+BZ(m$dGu>o)Ukx?I&R<-9m^=_ zSW((x>sZt9sgBR^xrQ%ve2LpSz5>@!)M0|02^||K>!_g2a9o9C*j$#4 z%so@oe9Ms%~oB`jmvGYPl|Dkivmi zm?p#ZT8aDOpkam&RrSA%7B%-fY_P?{k#KTR7XA&(T;#rM-J_mNkF+#Kk$b`@yS!Gh zOwR}~)MjB?v$j|KEJH_N;FeYLD|@o)=cRLPPhx;( z2Z?)&jchJr=x2_gs+AQhWTgdgJT#Dkvj z=4>ocQe$THDcDm)o*~-cv<4T8*bh>h#fIG8;Nro|b998zP)3J_obTFe}ReT!@O9#i-c)A)%VtS6YougG8*S=NO)){AM@ zPZx6%IW~X=HbnPuimaYObXQfF{RMXymjY&5LvNT0HcWsvyh$|&NokB=bWf8;mc}>* JdXh%^{sw|g@6`YR diff --git a/FishGame/bin/com/mypro/manager/LayoutManager.class b/FishGame/bin/com/mypro/manager/LayoutManager.class deleted file mode 100644 index 3219bbee7ab2589f12da90fd2e74d7a2455a2136..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4547 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 UY=G#fSj^2Q4Y_JOBUy diff --git a/FishGame/bin/com/mypro/manager/PathManager.class b/FishGame/bin/com/mypro/manager/PathManager.class deleted file mode 100644 index 6ef034807122e5eb8d86126f1e27b6f06eb914d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1409 zcma)6OHUI~7(KT$(<#GH5K$590}-WE7(`T*hg6{yrIye}MH0y{9m+^MC3P^m(io#V z{-% zwxL&oymx500_8$C9we)agmv$Gq*ehe7jBbY7v2Zdv6^joJO(l}!;gR8Jl7Wpd)RYqA@nkqT#Nbbx&Y(G?FJzoC z-I--*Y#B9jSuJ~EKA+RFx~-?pycRX}RKz+v+Y_9eBp&f_E@d)Qk6N~QY#}>s=9Bt# zh9Xr7M>pnT`h0Qi?X_&n>1PmHg2x$ry+)=OP!hR?ykSNxURJ}UV+F1DGx|AQ#(otC z&?BQ)MIZWQ98@uYFoS1uM8!JP%Q&RsFa}i&@vuPqQW3$hiYUS|XmJEbRjfz7icy4B zY{nLbjembynKW&Li)$I(PHXY$Gp6A%H2ht%>;{8O?r~p;xg}Wc8~KybW+d9%T5=x zs;HuTz3Cs?r97$gc1aj{)3i@mDc&v>#l26RbOj@YuNkw9V%}eJH0Jh~H?P~NT-HSo zQV*>VMolX{>!6Xkd@Xghhx(n)nPwII6loM_)_@HlivacxK8k=1v@U@y!LtP6E;fs= zAx;R=D`i4>0x3QrK8JS+vNRh{Jd&mN@OegsKB}lFR4G@dD{n2LmPZQ6t2ggqOGxN+ z%V{Kn%0lMaT(xmMF7^fF2lzUboCS+-c zHEpSDa|Y*mh|2|_R0OVC7FsQ3RxqcDy=#Tte;+&kqbT@)JGkOu4}b0nJtAj4*hueF zuJ3D5MPraW?;y83$?F7VC$R}O-Jy9pp9O5iMKs|CnsJAIQ!fbp7OnV%Hhh7GujpX4 z*v%Ty#k$eR`q53*KrMX1@BE+VV}WmoHgz>iq)hj+aH6C_e<{LAt)My(+}g(N(MzXVr^6R3m;l|Wl*?m^QpW#Bk0 diff --git a/FishGame/bin/com/mypro/manager/ScoreManager$1.class b/FishGame/bin/com/mypro/manager/ScoreManager$1.class deleted file mode 100644 index 6f13bc2f25205438b721bb4153c197daabd5d780..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 910 zcmah|+iuf95IyT$oVX52lLDdi5+G0~fx27^6!B6u5R?>&gi1Ui$63V=&TeEo1-^*q zN|aV0@d11ZUx65>Rg(uqEqP{V=IojA+4ZkK-+uzw#M3l%lp=FYLk8DX+|Uq5IYCu= zV!t)q#4QzT8qzQ{R8Un>Q*lSdIzxKj^2&iNea^rd49U=OgYpJLscFlhIs82Gr8%^O z)#tw1j&QA$V2iNNT;Yb#8Op|a;6`PSA-*kp)F#_>1>YSHyWHhkf}^_=nWybzwKE;zypTdl=O9X!0nJBKTW+E3vr^#%Kw=e<^o54jHV_r z=`@T+y*`oIn5aF|rsMeB>MzDz<1t_^(Bs@T#PJwQuLT>>JRJ};6HHu^8v(?%m zSasXRmTM79EztWDE#nq@$hKII)O!ljyrD^yjXyj77-(NDBUp@OSeA|J;xK~^W3 NW!xsO5xq{Hp1+b+%Ig3C diff --git a/FishGame/bin/com/mypro/manager/ScoreManager$2.class b/FishGame/bin/com/mypro/manager/ScoreManager$2.class deleted file mode 100644 index 03f8f7953ae2e4819f964a94c505e2ba7a015007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2011 zcmah~TUQ%Z6#fngnIs(w6j}>~N-JOpZ3ppEEo~Gifz$*Lu!2?TVRA@@W@h5dgi9~l zDqfbC2X7Dh)Hj~%Din1sm(M=?XMCydlK>gIs-0Q0&pG?-z0baUXV0GxfBhZ6S=@=B z4bMyRf+R0W@=_G-IIH002>S3!6z4Dy#d%y%kcc9LS0#Dv00uD>#V{^PG7>=&qfv|@ zC6|{Zd0on-CCSv%S@Ow7F^&lZlTo~ZDJed!U`D}Z1#dA#mU*Gm)on*GuoOd`T<7dU zHtE>rEb)?$@a7moUfys!`xrXXx@~IaTG6pJlUqC|9Bo?K%2XBuBzxYl3@^dZ9ea{+ zDw*uL%n%&5v*b*D+OWiU$y^Z53|}Y^C*YJUqA@8{H|=r#T80;Q_M+2v$cCWlrWsEWKd6hLy_*FK=fR%&M5f+YI4x;d*1X>#68Omx`y+q2dHis(40{ZuBy= z_~In*3fh>F%TL;dMM_ujj)HepyoY%OS5*B@(K(UOSq<@08@db!bXRJqKfz7sBl4tl_Xilii%aNDY&lU25vGm$sn}? zw{qIZsxFG2VOt7rsrUdNs<;h@YUK;zF{SG4XHZj?C7j^`cU|E!G*pdFEG!A#V>nc0 zO_eOGQkUcZZ<&ha=Ixcej1eYcJEe}~chg8Aq|3HToZz!eL*J3uQ}f#*;N%2FKrpPDtb{e-x3R-w=!`wFgc67)zWruMotK-S(_F~+u6H;B<@Gs9>45&qa#dvS?tC_zMzBt z1MMJuAlT3#`w&1QwW9J!-KacLlcKI(Lti(ZCFvN=`e`lueQUgT6D;1giJExVCIa!N zf}04&AE5Rg?NVZihG+y&``6D@D?I}Ao>6Y(!EF&xiLO0JwmUYtVx8 zk~}ZT3zEDTK`SmOc&P?GcsYWL=#AhKE-Q#f5W*{xym|nA=#O9kgOUu@Ac5fsMv#=t zE0Vk>Fn1b;LUdMzKpHwiV;F^Lr7-|-IzTMF+TQIOBL#bpcPh%wxt!g$+N=NCZ(-(dC^OIm9=SwC9k}93xxdx?~J2@&c;i#cp5aI|*;Q66C16KlPt9+O5R?@Z2jQ_|vK(Bm-^LD$p*{MOQKc}q*vd`FCwj#pgJEz@zi>1qQz6RP3J)zQI; zp~2blvE=B~Y^rZ&Xo7A;MW^t1!wd(Do;zssC5bCaCqq{>=}TnUeY$j_C{p5eY#|(gqd}7B~@yKKIl*7 zY{5yR+Q|!1l$uwh=Fv(xu4UyNEoEh=xBQz7+0Na2fVA%%m97CUr`&tHV$r~?q}4~PD9{wAYNh|`V8kvlg7`{)!n*5e~%f zRI!%uDne^en{Z?sN7w%OYYpM_>1{Oo4IW=7-!4+qTfs4kPI^9pCZb;d#PKbL@g2tTJ+9&hOyft~z)zUNIs|^9=DL9bw#e3RWbGbq;XZZ9-|-0^;51o0 v4CNu>3POy9Ta~{N?pJV3CgcolR^co(8iVwYevT3?IX!d?5FrO!Xr$*~*bocK diff --git a/FishGame/bin/com/mypro/manager/ScoreManager.class b/FishGame/bin/com/mypro/manager/ScoreManager.class deleted file mode 100644 index 94408a09f4a9fe7ecc8baf03add7d8adaa764d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4569 zcmb_gdvp}l8UNj6v$NSuU=xx+2%&@qOqR$ZASeOEAc3_BAPIzrEeyMp-6flu?d~iP zTD4kQwQ5_d1+j`sAE{WZ2y9YP75hA=?H@gT{nyje*1k?(=hU7)ur~eO*-0`XE1cu$ zp4>a%eDmG!`|j_1%$!AMbo)_+u2Lx2E~g!G>QS)M&uf<-yRchM zd*pPdyM!?$?Zf}=1 z%QA8E&_**Er9pvmdADf-oq&Bm$!8_1XRNe2KzF6{Tq7^8H8o9B0c&mEq2NJ*+Y3B% zgV|-J6Gp7nwY7JEQo0_n4Nr2;-(_ag5xqSjQLAu6wpfOl+ucm>J9UX|M#UNs`-&+E zpyDRntYWpCR$!&T+^eUQf={S;2oI}x1fNv#DSTSRMr=^ANlxw9KwoVmcEWVW)4CRA zqF!BT;|d(KXJ%z&X@tfLLd6p}q2ft=PQ_Dr zTE+X&A=4r+mB(7e7Rj73v84@%BYMh8n1+IrDxSf!0yPs)^FeLP_V&v9%rCR+?bdW! z8|X-6EEUh;l#0(w^uB;E60SDWw3udEs#CY(W;8S1i!b>wsN&0bUd3s=pyDeyqvAz; zby9c=rHhJ}a8||3Qu~WIr{X-;D!8B`hanZi_}ZlKY}tQ6k1(wpu369mvt1!%=_W%P zwSMMr*yuG08jIF_KX-D;ULnus;2W!QyB~zf$T(%sT5Af+ly7Wul}5p;x5Z{UWoGBw zwya^uHo_VdD9Kn_n!8(gZAJP1P$2cg{p_^k{Z{s-JckWflMyc5o7}6o*;x@*fu-Br z^`_CAh_wxDO)?h*mbtxmIzpjt=UOY#%S5!KY?}h2U7&W%tql8L+ki_};Ko9mcS*Fi zHy3DO(&zCvi)EV0OsK<*bxVRxBx>@e-As>{0>$0?80Xtz@Fg<&)UZRnoBcSc8!;|S%4!ePe^JB;osYW3qHMg$bGS1e8$F@c%=TAxlFBbwEdu;Qc`Xv3msH3jt$ zFt3(M=>{87i`&m}ybIT_1llt5LIPDx=_}_GME7Pq?i*i}LMmlV(Jd zdZsZi+3Iq|36G02X<_$3N-rS3$0a`ot&8QTSg$3MT?tEXRqzdg1yeRu$Tv3MtIMH* zXTs$?>lMQ|O9YiD;Sn7~FgMrl!*%=J9 zJ7ilhu+@Do`JHIk7&GMY&L}@vZm(W&?VEV2R1a<}MhEOqt${c1)#5y0Py^K&l zX275Zp1B+iE8w#=)Z{f(QA6W`AygOEafo?y4AtB~kvy^$)=}f=m|0lIv()h#bzEZL z!{f=@Kwa`zBA8YRb_9(i7py9=lYQX{obashjL~aaid%BHE{CR`milVX zMHUZFSHYe|yl`ZQzTI?SjjZWlnFKW4mpK~X_ zKpB3?@7Q0V9=|3uZ_vNr5Q^UtqTittzh`#-0o(CM?8Kj#?|()Fe__7=m1*@iR^yxe z0R202{7oK=|G^ypCv*E>JXQW1=kS&d<97H)X~3&MA)*TA^X1(`&c_!<4HF{39t!?{!(;bTlH}!o0q6P(TgI!*)B)c6SiVO%KJ-7toM@W> diff --git a/FishGame/bin/com/mypro/manager/ShoalManager$1.class b/FishGame/bin/com/mypro/manager/ShoalManager$1.class deleted file mode 100644 index da512d0184ebc218318ff8fc778c9bce53ba9bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmaJ>%}*0i5dXclbjz}|e5;^mpyjLBqOpWTZ;$rb7PkB9?w07?#G_ul zdf`kW*m&^h!9U3ub+#q6NaH3uvv1}%A3O8g{qg(jHvo6=xD|ekIAT;q06`UF7*{cY zkR!q>h7eIPiKut^IR((A;s&M^#8gaUM!`)5vkK-IIu5uV%<-al%1t|Ayp#;X$&4(< zif>A$j1{@TbHa?RHy{=mymr1|1*e;1(|O7DR4vfKE*6Y}{eU4JYLfUIxQYK<;qVTF zCoZ#sA&@K>Vyj%-73MbI)yd*E%Ld7i18Ps(JhPwTrBk1pmSr;|)(Q@=v$5vX9zWoe zZq>->(kd9al(6$MtKhaqbH2;q+Y*+&AuU@&H+nR5qDw_Mhv}YPT1Af)8%5q zNM}qTYAZ=F^f&ZE8`K?2(YR}rYp1}*^I$04$c2CKL@Hmws^O~}f5Fg3#kei1)fxQt zX{5NFClZ?6$jV|By>f1V+j$DiI-}5qC=tIxn+}66*W0zF)U8-j=C+*&;!jr6VNIH6 zyCirhSuc5JUkLADm_E_~s3cq+9S(Z{(nKZtC|z{-qK~|n=xKt^Zqk9sqnq(KQ8uArZ!6Z8R|YS6NKaUk*;t`m4ZVXlIf6L>!&N+xy!r2=0MTK7)@ z@AltU&~^x4Dq2DNTgDFmd_SUm*D!-wXw-&NZ3Mom?87K|#>f{U?>OeD(RuPNA%X!y q_~H2l7ki~Z^ZY~$^>dZ1E{Yi>?V(@MFs@fEL%2m+rAmI%bo~X+<1F6* diff --git a/FishGame/bin/com/mypro/manager/ShoalManager$2.class b/FishGame/bin/com/mypro/manager/ShoalManager$2.class deleted file mode 100644 index 519f0800b0a6b9f3b21ee9300ba9bd230d634efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2172 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 diff --git a/FishGame/bin/com/mypro/model/Ammo.class b/FishGame/bin/com/mypro/model/Ammo.class deleted file mode 100644 index 4975212d2f5df4e47bea44a23605d4c8b527c251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1142 zcmaiy-EY!h6vm&IkFu5m^JD59W5PBq1=s0~7aHT7StKFLj7BfKD$qa;1yYJ;|C1M* z3{AY)AK)KleBROk>-@Mmr+wewbIx;4`}5b2a{!O;#Vqjoh|C z`TY{rvd50q_3cs5ZI7+zZs6G?l4^V6`_3R}bOe+q?!XP63Z#ri^)1sOD+?5w?!Y;o zcrC|&W4HP|$&H=haHczvjh-3*?X=|Nl3&>?*S%P>VpNwTe=)C6#DN7$7wAh31Xf8N zaFw*%bOzlXHA$n&b?S>znqL64WSx0j9^D)Ld0`S;LX4<~-xIdbJvR9S!T zgZP}H%HqQLd|HSfSr&5|xj$F;M28rt(KjAt5dDDIr~knMT7*ugoe0C%MXajc+Eo1hZy- zhcGv$NPOiRr(nz@$(UtLovIv9*Ki}!)u;+@&H5Bcvo=L4E-WC;^=ND+a1*y8VTD2w zHatVhJVW~7mw7`ayjf#h$L)yUWR`rIY%-3n^J)Xd2rWgZLNs;$IaXFuoAbG)4LP?W zXHGAyYvJiOt?!U8&1>&QwsW#}X!{$KcngD)t$#`~aY>z$J9EkMu!%UjPqa+S2~>Uq DXL;9> diff --git a/FishGame/bin/com/mypro/model/BackGround.class b/FishGame/bin/com/mypro/model/BackGround.class deleted file mode 100644 index ea76bb6f27ae12b962545eb4317d76642435a147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmaix$xZ@65QhIAk!2V}!3~r}ydWmd(SycBFfIu(CK^3ALkC(JhBSl5ck-Z#OX9%? z@S%*=Kr)eNyj0gzef7^@-Jf6Y9{{#dG!e#P4AWRLv5brk*$7r5SYc}>BPtjn%A9k>ml zE_kCul|*0owSiKi>z_%7VZHpHww6n@eomFj8~=?l#A%5BaV496d+6(g!5Y<$g>1Eb z+Vb2RC`TMhZ7o@)m5+uiZ(Z|SZXpKKLIlwWau)JPStuaIkPU9br8PTtFvw7tY#u0n zr+43P@}4ggLp~sWyG({CnH;;0Q93e`8HOjj#!U{6EP zq8J_(DJC#OQKKc2Fm$i7`2r(g&0#f4!Z9L~m>u(h^fQdd3F!nub4ZQRBAwbrv_j}B XrXD8fGOV}#DXyX+6S4DzW zfW!yzQK)B~(1=JzJb2c#Gw00gnfdkm`%eImaL+>>OD?W^s9>p%i@4#@+_dJ_9ByOT z#fpnn7i$8wSms855?I@d(m05ZGLr_O9IBviWcEQv!{9}c(P8e6PIUfQpxWAcE8uj~ zo)T#6=|sI8#i259WH{iB-&gs*j>b5Fjn>wGaHq*rBR>l4wn~$`GC7pPPHB8!>Ll;j z*1Xs0$VBRyw(TrhV%yo1p3HJ(9vsL+>0=(31XlijG`%cMR31DZH}7K(zK?Zm__&M( z7n?rr;I6>x6cK8plPcF1DW)LSK)z*a)HfR5ZhJey^PfG94|0W^|~WtRANQ^ zw|u)gk7dTu%)Dbdys>6fq(>3P=>lQ7#uLU;jVH@c8vio`XPw(t2MhD7SQ)vSRsK_U z+6KMt!Uvk|Q;7BtRNkGU`W4P+#;6~yU0{&KDOfmw338dIVB|vk3!LNg^jdLg>91gs p))sk4aFu8Ce*1*^C#Y?IgX>^gWPuqVb&V*GXQRMg^4Clv1e z4V_;1#+zQ$nMylO#~;w2(O=Q4+UFz`Qa?JKOx|4wmUpHl|D3IkPqM!OzT^FD`ChK%zA?n(3y;wza6}PN%jaSz+6HXml7hVz(UDw#-Igs2Wl!h0$>?gy+jAu8-|( zk&Umg%o!2_!%exXyfCOp{nXcW?qV$iO^-RwP|y8tXzWF%p@N!eLso}gT}I1MBoEBU z&24)YR!nV50@EkVey|trD!1#POI4B;9YzNh*66PshP&++8@e6@D)JgKjurX8?~VS* zN4E`YGN?9GJl(xmd_Tw@%fBve9kkR3;M+a;M?23{g=5@fI&$I3Mq|_0s%U}JH}hV8 zABs(2{J(LS6=R#!V?#BnZfJTN6!=Dd0M=9`-frb<}qa);RHaTXp5og7BM9Hx+A4i?6k#0Abd{$!4Vxn4Soag3{pJRyFf?9FA7 v+BhaCP2rDm$sgar-5}!f|G?d1$tDdGgSyYv<~TM)+LE diff --git a/FishGame/bin/com/mypro/model/FishInfo.class b/FishGame/bin/com/mypro/model/FishInfo.class deleted file mode 100644 index 1085b368fd80a3c6f1922b3465255c621bf0325a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520 zcmaiy-A~g{7{=eTwfijl04K`WbVJAJlpz?snI?uvvILL}A_>OCvr<^ewvy2)T>Afb zW8z}sh1bSE%J{sc3@A13;yFEUe|z5Nyr;ka{P;;k&*^D`5~Rl|PBoTCERR_hS?VlH zEKj1e9HkXOF=;s4$ELY2NHhh-d-AkpJJK-)X$RIxr#0+*uifo-$CljC)J)T?=?oxy+dIm~l+)@R|n_;mm0ieNJBG zij!9vJEc(AvW&}=Qz)$77{U}1+^ojH?w(I42EcnvY}>>t>RNAjc8 zXo_xWlq5}~36>N~nkB=MWtk*R&>h3>)q7{h1H0bCpu6=8AKVc;)w{BPSbx(#G7X1H z_!1KMZlV-oZ#;$A-d)kbUD3o{(Z^lU%3aY7YlZ|zgXXYn;r{|_S^rK#&(g0Eh4jqc zh{AfNF(O3|k4V*(5kWPpWz||IvDqDmYpVhg-too*`@l!7yRE>%}P}P6%-#Znw)LCEV%^ zsgwsf6U>MGd=dOT@cCd~@$+TybKqx#dDYKXz|Vs(1oKy}fb2*1rO&p7;%d$(EEX?;zt`mOM$5BM_&Ui2ci)_x(ReH5Dod!9iR^a(WoEY1^O^} lVp0Eu_b{<{;46XFF~9YDp!31jF~9W(SWEC#Og%&ke*wrm*VX_4 diff --git a/FishGame/bin/com/mypro/model/FishingNet.class b/FishGame/bin/com/mypro/model/FishingNet.class deleted file mode 100644 index e81a7270e14b6e37cc7d070af9a25c3f77427af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1946 zcmaJ?-BTM?6#w0PEiB7N11TT1v`En;K-YdzC@mO50;wUbBo@&sUX~>+CcBxm(hpOX7u8$09D3YI49t|Zz}!lxlFPP0xk-;)PgZw7BDVj0#^h~HsdO;$(X{l zpDc=BuZ*`5^G$yZ_@=*l_FOP#1S2kCRz?Cz33C$W8N88I~qQ!8$fmyWH^nw~AIqe6o8m8e)F-(LTC`TG=*l#cqxkXOm zWRjshZJ2sytGKG$IlfvTNo!tr;#;<@o6b!`V|YCrX|Qsn7lsy6BKDH8=4{YO!;ut& z;>zZABfmihmrDh{ozb0`Mhky9nG{j9W*x45y1+|S=W^ECvNb(vh)CL#MtQ?9^Q3fk zli%SAP9de>1YT2c68#dcD|iQQC`bz!67Z&g1!N@LP;e6w1@9svVNpRAIR)?GmV_k* z?_*iQ2MRvKZ3!PK_!uh+KEbjAj@t~K!kb#)W?oI))%22MSf+$k1sc{E`sxLAb6O9R z;nd;HS(|?*5*u6NB}ca_$)SVy*Lg>!l%a{TS50R#O>0@KCUt>3wsH5>#c?^*FaPVS zW<@FMPR{0LxxgLDdsE5Qvl~5(GG_TS~=|nwKnq`(9ZaQkbI$>x_rn2)ZnM7_S9a~N;GBE1Afx1fZ zXuG6X+Hz{Osq}dyoNDNEH+sXQl8JE3YK=Q7+P0(KAh``&=hPMcazWQibg#nK1tTQl zN@eCMp=IZ9EUn~HnFPZzTQ6F7^qRGb=bn1Fj%5|fYTC-@#DwT;7A=yNeb9#tJ>hiS z{ehg~!T^1?`skbFp+DV{%8V`wjebyT;xyp^tuD~Mm&W$!PhipEC-6i^p1}KvMATA* zLHGze2#=weR&D5{ok5(b8aPQKBZfcvBRoGGs0Av*ZbG_@gu<8bDX2|?x&z;LhuFdt z-CDvU*#5)pLE?oGaoKE#&LvUIQZSH=?m+Sv?vMLu(j+E+nluk~`-V2x&vg337T$_;i_ z9E#zhMt9Nkh|&V=F@|m` zu&Co^r5&PF>|um3f+$9D2`Xmj&6~$LEaE(tsU1vQ#5V1GL9%=FP(HvozNPo>dtAY< zn8Y9SsQrm+_zTnco3#H$9D7KTr&;Dff(4Kw+n}=h_UV%>N$B;6AI0+zCid|;ycH3Z O3f(>mbC}2;jQj^B4aA24 diff --git a/FishGame/bin/com/mypro/model/GamingInfo.class b/FishGame/bin/com/mypro/model/GamingInfo.class deleted file mode 100644 index 830f8359df2ef0906a5d647a686b3f2e422a9958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2888 zcmah}`%@cL6#g~@Lc)fGmOg-%@~}0e+F0#Fg|=eK%Z7&}LZPj=ge5E_yPe&Q4x=;v zpns0z_+mO^XZ+O}|0u`r-Yl@WF8a&4_uTuP?>qOLv-{WIzyAT?J`R$Ibl zq(NKIkS;p5=Nq=aX4IQz2Xlaiz7~3JdXXU#EH1Q@i}{(-O6Ve{p~tJbrfIKRJN}*q zz2(iDR&CGM&|Nbc=7PQJXt+|UI*mf(@TKb%8qSVcFU%PY%dUyrNg^$;_qOiz)xdkF`eAn`r*M-u)@ug8{`c}O# z?YhQc$?|+&C(BmNHvFbb!gr%EQ(+aEwjeCb(o8-if$r@&Mt#w+jhg9d7zx8$hlO$o z!H9I#ux-aK8HY~Of6C|1DrXxSI=!kRQtGamez~>n$W5?m@gj53kSSTVxzucIn{LI} zt_!4hf{f=DCe{RJ-85VlHD~|{c-l2(*_Qv1*Q7q}fQI4RL^$_A5nMHjxTq0+5-S0%-{9m;bRBKUR&P6f{{kxG@|4l98Qli+$({;VQ z9B0l~O4R*0=teGF!ZTuoR7OaJ#zMoGq9^A`9i5C2YYQ81SB!`fa=k(>{F(L&qVR!C zNFE%2x>Bp{BukcJ`|NTCIK5f2DHrkFtPoa1INB=K65(5x5TLFxP^WlS23*fpL$Qj;Mu<&9b@R%a6V#0bzH{{9oI0TV;pbjm_S~~ zkf6RI%uT$d<85I^F~Ublin?Lf3d`I3X4U6$oIi0Og8`gJKYy(k=*4i6{-uzAnf^e? zA0&n{5=$knDe)NTGaI>5Qm)Kiu1rv_Oqn`w%6*PJ%vtW4tX!F|Tv;Km1H=~a4()Av zSGj6jJM+Im`+*z&4{5vP;V|ucxI-(TW2BCWyZq1*w4YC~DS0}EPF5_5ySNwNMBQVo1ooaIf*!VY1O zjY;Btd=L;mka+?9zaaJ}(ytLGS(3TX|B2Bt`O;p>g5~Jq8?$`vhxC|8mL%6O8Bm3* zlv1m7pP(r`2%v3MN~zDDWZqLmKExyHi>ijHyG2^z20RM7`Vmj3@o^AxDshvgQ6-9$ zcpStP8TS}7w5n8(Dm6#YEQA%%Hi;fp;t3^6M9yO&f?8LpmkIg=Pok)GmAXvo3X!GA z2~DfDUng`idP37G^)pgGCw?iCx>u#%B6K;Lx>u#Hl6r^u6?{s2TWM?NN2RSbf>u!u zpr^GSKSD;OJ|K0S$Vw!2R;6|b{VbX~t5SQU_K6>jobx`lAYT!>7Cq;ED)rZ-{)YJV d$Xa)*)ZY^NG`iNED)o1y{+{>^7Bz;=e*m$<7Ki`< diff --git a/FishGame/bin/com/mypro/model/HighPoint.class b/FishGame/bin/com/mypro/model/HighPoint.class deleted file mode 100644 index aaebc19a8aa938aff999fc82c376faa093cd910c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmah`U279T6g`uqn`AppZ2W4ircI2xS-}Ngd{Bg1kp_Ykl=|S)W;1N2ba%sMqxheE zP_Pwz=nwEmiDxz;(V&!N&&<7Z?z!jA{QULf0>BeEHY(VuqKw-H?%0H;ja}>+XqC|} z~E`#CxH$$R9rykij%fRh%8^pf?l{Jpt>P zj&=52pyOOB&^>0igJh@#>U|xn*VAaA(zpKL)MP@H?FUA>ui`Kp2^5_!8`LK%JNT<@ z$>|xT4Hhg91lmsb@(I>i#1`-L&~%Wq=uqi!lnK~xl4%;KSK9cg9Wr^8=s0_H;(zcZ zHqeo%!j@Qvl(>!?W!#gvkA}npGz7Mn_ZM-2!S{#$I8$jpEr)6@ zdH;F?feJ0p-B-DtSx1XcTj8S@_|am%qf4$9cvGkm>x|r-0od+$2>0O`3SXHOxI(O< zNR%j%U(G8v(U{jYxeA_I?l%-JJ}+vFI#?}m71xNSM|{j10fxo}+Y*wN*F9>(>9+)+)P0_BPcDxb+)%o}I)1 diff --git a/FishGame/bin/com/mypro/model/HundredPoint.class b/FishGame/bin/com/mypro/model/HundredPoint.class deleted file mode 100644 index fe326f38cc8552b0fcf9ef2df592b103154438bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmah`U279T6g@XdH_3L|*!Wd#O`8~Xvw{o0_@D^2A`Jv7DD}ao&F-)n>F$QfMDaiQ zpkOQb&>!HB67Ot6Q-e~LJu`Rix#ylc^XvD|GXPKExu{{Qjw-e-+;JINE_SeMppU2S6B#5r9FJ5q30^3ZhU2FM5lyw0nK@KZKPFJ0;5<{A zGS3NJ?^1!@5qI0qV@YTXR3=|f)1lOF!{M<#Nu=3}tn@%;i5U^fUXL3zCerNx)wbgG ztTm^CAq1}DMiuu2?xQL208PU7;tErq^EkLDLfBbOztrI;JN{lAj*ZmC%sg6a z!TZ-s5Nd3EK0}?ivjNcN2d?qcm-u6s#g2{g>VWSH>x>PK{DJ|v{tuA<@C2oAd`h^& zxQ;TTK!y4BqGAKhd0mTF;;iF;N9pX#d5u*ER}-${8l¥fGw~trL_N`YxY?c`F5z zZ}0-&s<>90|MKIn9L+q<^fx)WdG2MGBg?P(r>LA_W!a7Oy7@o0v&`-?`xdK}aQhF1 CkDy)v diff --git a/FishGame/bin/com/mypro/model/componets/Bottom.class b/FishGame/bin/com/mypro/model/componets/Bottom.class deleted file mode 100644 index 10f67555ffb7a1cc1989dd7be87ecc6d40ba42b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1810 zcma)6ZF3V<6n<{gWRuO7CQVyPr7cC&G=;7&70@6;3xQ~g)l{&);Z3qh7n0q~W~1~E z_*eYG2c3}=WyTr52;+}ZpSzoqwoq^~IeX8!&v`%R{{7GIe*id#rj8k$(Xj+GjyKi! ztptwaZ4K|lv8*G8cXgb_Ii14uI^M(kisTi0L6Hv>dr_S}ROFH(mlau2WHpH^xT>L` zV-nXiT-Py$q9PwD^09`JhBbjm+pY?nC{^8-+1hSC%WQbEy=7NB=8EmNWIHbq zyI?!Ee~}v5g_{Dyt8UE_7%kb3b)(y=Sl))LG$|P=`?7j>O}6`drs`SJx2{-q*=_ov zIf0Yeg_pY=X;}Vh*YhmLUsq8k$@6f_uK8O*97O>mlwG&%#+EOjm))*cwF=Yy@(16vTe4x9E8TkC@~m1>aVm1AJNx1eDU@yCj&gMu3vB5C-(stp=5EI9 zX^=9Ta5!YOU!Hw_Thd`Xo*9I-7BUx5nv2J+M=`^|Q0?}+C zh&Glj7KFk8S=cs#2H3E^#qS$ewgQLHp3TFU`XvIPf?z^&7>#E{fS}T0F~Sh zMD8Jm#v(loKS1;+Oq9m7#UA1hk;vtG&?(IQis)ZBPh7GGBif{RB-*U~*u#-fHcClK z@o65$_|Nb^{u?GD_=O&akwS)V^AKL8&m|;DQGw(#; zTn}(_7-caywNEX~kP}1&xenm5KzNFj&l9Pt-C2GWG_A_=7}3amb?9OGK80b5p_eQY eR8rwbAQIH!oAweLuN<^-hBlV=+E@&noc<3E_ODj} diff --git a/FishGame/bin/com/mypro/model/componets/BottomGold.class b/FishGame/bin/com/mypro/model/componets/BottomGold.class deleted file mode 100644 index 750c110cb00e4565e8c0ea892eaae421d66e0144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4234 zcma)9`(G5-75`rLF|dq+A}R<9L=7z9S~av4wGqrJx}XhIBsA4wcUVStXEwXDC`p?~ zV{O`|?=+1`o3u98K5QFXS$rfmeUUbOw`u=?{@&mFrr$fWz^+2fhY$DMd*uHOXkZu~WX9T+Ubb{q?E7?QIGI zm=Vo{x(qw1r8+6dodS)+ca|)rWdE3T>X^XXbV#6_+#^PG(1_V%0?T6hsFqFGu6hCg zF2gkJJp#Vwo}QMYw7J`g=>ioI!_@n-$q_w0pp7KRS=MiB(eYj_m0wpy)4FEs`-=57 zHMiW^P(_|e<#evO<*0%$DEOj+U9`qB_ocN{0$t5ZYU$R@2`$sP!YS8RC>>>UL#A zSMeOqsdz7T3RFpDp@e3}L-(DI>M7f>Oa;%YcmZEg@m0L2;w3qJ4gD&1qeI2l{xS-;jxS-&oif`fD0(FjZ?UWrdl3H93b!A6K^|T)Akt^xJcLdhI zeIiP!?+UD#_k~&IIHKYbzNg~*_<@R7a9LpWf+ziU+A!npY0NCSMZphM{0LW6Od+RY zS~_tR*90oNEX&T=O#fcp9@tTU8__2!D@e>t4#m`jqqEE%o<>q^& z--jjMzfduQH%jqKx#d?X-o&p3HZHi8WMU^ma}Kb=<|8T4w6s`vK6-TC@hoc_iO>Np zGsaS&*|&Nt%e%V>&ZK4%=5)wGyVqSXk(gvIhhH^4O&f|zXR%%E1{=676V(#Bv$t!q zpH--v;k1?9o5}E#z>em~tu}SOgPN3Cnr}q5WhFA9h!r1@6Z##qxCmS6`OIWe7oIZD zcgn7uc0{yED{CKTv-38GWi1vkC)u9pMZO`GaXMFN`NHefm^a*73`lW%bY%#LEZ~LH zSis>T9uHeGv**rHY4AW=GcyTx3)u<7j>&#@M5iS-=6zkFfE=gSy4}!;O1EW>8u6~l zBMBqJ{;|CfDz_wx0#X!dcQ5@ab)xJvNkNxt=%%AQ!?f#~EI3Etp2B9in6_|>n-Ybo z%Oh$RLhjbael5v*?J-9!w^0_Z*B57}Q%eiqrNKtVT{~U<0XFl5ZpP)E<7eIJ64^R= z$J~~kZhzmdg4!?t|PzZtQ=EXrOx2^6mExk9L)>tjx=9b}Z1;3L`^iS-c3%(oX zgf*^*TwvV5gte$`r6(1?rJ+sl> z*ja#EzDf!>MH>euQ~Dy}!v*q-1S7AaTT3MR4O{P2@E3tixB0i2ZH(I6%b}5P!5w@u zmZC&nNt~6)M}b3m!8?@qv_pA)JCv8VLwR*OlurlJQobekqKjiUAnM@dAMku|8Y1X@ zH86#eU@!;I6ucz9;8plnDmj!+q3j~o^tE3_dGHF#-XJ0Mk{w)kHU~9W$8nkbG=s+A zIyuQ%a)_8E4mR8{| zY({`S@1w1KTm$Q9_bQa5j;r-pgAJ6~M5zYcO|)9kgl**PBvNpM+zcG!qnG&VZH3r&=EB33%Y=mkWecqFR?jJ?Ry!&tU`gGz?9nv3F%t zU$8Rp8fvGANr$)ETNyZyLsxNE4ja#*tIgAv!=@ZI54N>ed#}?oSsQkAOKnN9zldV!+4D7JxK_jCJ4{)7tV{M zFEb7j@i>%O2Es?g6&zI1px_YCoTVCn5l`Xos}cnfF)IPQ?Gr;5VZ3T*2`=e&po`J_ zFDf{Sf6`nbUvq8@@D_vU?YA*om_wE6%oEL&%3S9vO(sG{Vj1 zEzDuy2(5oVGx>gE+t2*{0CV#wvv-il9>Xw(@G#ep<3R_zW$-rs2NmMqIPfngE%`vr zd-yENLZQNaJhJ^dvm23MYYy*nD%-Q0(`|k2H#@wZ4qvse+It@L?bW^=9e#?J)K&W{ zx5f@L1J3wp|Cy>Y#MAjKF=jNVXL@AQ5QhB-cl&T zLyip|h%)XPxTB8BTXkfqV`4#vhf$D+9K|0=1JwC@{26~h4dVcocL|;#@1xH6>HhSirz9;US7}KzSj~No2nuulFR(jY->zht$ zr!^J3uv^6zY*i6KRK-p_sv?Hn3cje~OZc+DYQ{cenYtYwbIy+1@^HpXs`v_CP_a#( z=*D&xU&WIudhnP)y_6kJX=XC~#M!u>kpL?Anu-_kl0cL5RXbycjkK23!;$>>xSrJ$ z{cgq6tE_%T(9f{JNeQ*j+PRNTZHD&E8`75lJX!CNZc#xE=JE6MX~ z6~Do61vV`Boo0fk!gCh0*5*Se(6%&Nv=}aW>$sA)ja0Z#%T2H(Xy={o$wH5o;hok@ z#vvPa!ZGM>m^sWUm%^`_o}~?CCA8Qn_JwskmWyjC-8mbX9AY)2f`r9Q%*xKEArrb(;XK``JU>g^sqyti zo+XmhVV2!tK%2Dk_9)w>w>>6nw}d#!eo7abXrgBr7n{N?DCcU6~%=*jY4P{Hz! zmC>kS$vTvd#T+|VyIs+VO4KsPjbvoi%E-hxG7PZx>T`dAE)6zv?%ugko@NtI>1I;iJbu=lF2QP&9sjQEbQ?lX05iBvW+7xV z6lh3mr*y&**O-^~1Xnp*Gi8Q9vuMT zi;RcBgQa2*j-Axwym3m{i==y`m3xcvR!Q)_o4cBOO9NV-%EbplEcPz$Js|{wyy{8} zDyAQ^-nOC>T6Rx1t1;`n?Hwag1;3M>^N(zr3l1CRY3r08cF(!dh-q=#%1$cyGXWm3 ztW$aRLABpB^=veyu?sOoFO>pQl;Jk=KFv&|^xOvbV9(vQl~BqK4o_zEMc7A5_!o&l zQAAWrrG^Y!?@{m1OHkXJre74rIaX5Qe=%!|~Sd5t)Y-;I1RaC|R!Z^1(ez_HLYM9BL_UU{TWbB&s2#Y8y5pVGSn)a~2*-wi!`6xA=pv;TPZR|_L#sUGiiXx+D4;&n z#BrtcXa?&;YvqE@`co&S5DYcB+f|C(HV~`T{5A5o<~r7TaD`%Ahg%pd&|p6UC*NuH zbhC{?+e|1T44HJy1F@Oxe6_ijh|?tb`QbIT?K3`;K8F^4+p(B2rLR{KiWxZM**R?QMbcK zF9Jbtqi+V4jlN4zxc3g7_liriS1+N%4e7j!T}@I!y*wk`Cu0Q}|1N_JoWn=vgS-#& z&&w_Z=}4D#e&Jj-xDhkiWIx77>S&!^x%yov)3 zK1nFEjFpdpSFl$>tAal2oTVs#8BJl1R4C{dvl76&K6&IP^2`$4g)I6nYM4vnpEOs< zhg~rnE;F5cbYnc!*)@$$>GcdoI91GG*t5G?u5MjKznq&lN%&tuchD>ONbZtz(91$; zbB=OJN>H9sCr(`8)NrBeI=Xx~?~!OPBupDBsr5;k_!L$Ws&yD<=nfOYBN*jg=YL0; zG%7s*!7A}@^!b#$J{q0V>Mw!khh_c2+9z&Rai+3QwP>(SdOrl$5Zb_%v-b}{`R+Q{?Pu*9>syk(5DI>Qa!$ZWSl41OTbAU2`k3ZoZG%{(y O4pPCy75Jz#e(L|nW*#j7 diff --git a/FishGame/bin/com/mypro/model/componets/ButtonAdapter.class b/FishGame/bin/com/mypro/model/componets/ButtonAdapter.class deleted file mode 100644 index 4a8869a14ae306ab053461c884cf932316f608a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 zcmah|T~8B16g|_HZo6GX3y6HkM^$J`VMRd{jEOWDO{$n+H1cA$%UA~5-DW#A`s{-t z(HCF+1t!L5B7zw4(Zt_@qJKiY(^e^sgonL%=FXY3_nv#_>#xl%0F#*3VIUDk1W66U zA*6KpF{1XP%9uJjaax(N2)b}a!&wdE8YUQm+_AEG&cGHJT3jcc7xqdVn^p>ks7bZ1g=txB7S$Y~2Su|$&&a3brB~)t>Qp=lL|&uwHndax zDD9RB=_emcu7f25Yw!(!LGwrW??wabX!@K?ts$5kUW4|w!qGvtmpDMI0fZ1H?q-s{ zgE)JLb%0op(P1q~_adxTy!pw)T*e&}!`dXUgGBxDu0+9__GxPu>{GpK^Ax#%PokfLHo qC~^WP$u_3$Yos3|(5VWog2sqKkpz?7q;VtlIGQj)_#s005dQ-aq9&^V diff --git a/FishGame/bin/com/mypro/model/componets/Cannon$1.class b/FishGame/bin/com/mypro/model/componets/Cannon$1.class deleted file mode 100644 index a4914394fb254ad09130244f990a456afbf661a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmah|TTc@~6#k|cwq3SRE+Sf#QVX;NS?~r5-e^E;3MQ8DqA%NJ(k^aiHoH@!?>_n~ zeBqe{l=#38@CW!~j8V_FB-QZ1Bs*v3JKucg>^U>ve}6j#u#D9t3|!Zd!ekN|WW#AH zPA(d3UPlf$G~^SQ){(%Bj#(5m6gA9gm}lryO()1NGUTeZY?-YOo-fUo+~clEdru0k z0<&xhA;l`O*Bs%fM-0=2i|NH(hFF=T7zV43;M?t1o%=gh-6bUIw*}3Gkd&$^%YM6M zd1pSoCfmNvH=U5!-wnR7Z@sffXhYbp3>?we;;Je4G~6_>fH8)|HV@Qu87KpTNE;Z! zm;n=u29|J3!)*h1aF<~u)G=L4G|Y|nHusbxDUZHx5CiwHtYO8#eLSF&TvU<#5`$3@ zg8OCH3IZN5q-*eR48uL>Ra=Pe|7S1KrrHHfNyq!`PW3A-t3lsG+c zhHrUI#}3SON3|@Ex|ForzR!iK>@l#)e>v?meQpsP4_wYYicxqGb|9f-P5D$+hS5T? z+Do{LlID0X-%eB|r5l)4NhcVkHCs4;=sZ%~MV2mW3Je2a>2%mBx}_2NhA>R%2(5Co z4-vgIcMMkgipU}DC^4G*$by=~a0z2){7=M=61oyw%ao45ju1WljC{Dv93wW0_zAQF zq_&2W^IxE!p#LLd2Y-HqgeVaXNoN2Pn55?s=|q`9lJp)D`k10TAzzuiPbv3x6bU!6 vN$>6%E)#12v0sR=HyRSjpNJ!daY7@wf~#a>^cE*@t%GDxBCAt0gDj1|+rZl( diff --git a/FishGame/bin/com/mypro/model/componets/Cannon.class b/FishGame/bin/com/mypro/model/componets/Cannon.class deleted file mode 100644 index 5e7cadf5dac6bda4ac6c9ab1ca9d95411ff48734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1909 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 SI2j@*@D4pqaymp$`uzv|p#%^B diff --git a/FishGame/bin/com/mypro/model/fish/Fish.class b/FishGame/bin/com/mypro/model/fish/Fish.class deleted file mode 100644 index d1827a7f27a8e4d3cf0949d3f47911e73fb9cd5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4045 zcmai0S#uOs7(G2R$t05wAtaF{BoIKI49h64ETUmTU^FC{jKP2!JCi19o#}}^9Tss% zaKi<6+?NL)q%15=P_Za|^-;?zEvu~3A7XjF?w+kPkvx2N?!D)p@7!;>ouB{x{xX1D z@M#3AkgG=oi@_^m7212Z9>87G6vgO%g6VXA%r14V_CXsyUPlecyoueuoyP- zJsIP$&g&mg&^%$t?bG@mIuY&na=ow0`Y7)+)H z?uvkNsg)@b*A&1o)a7;Ci%KYZK-OC)bz9;wl(RM4)jr195Kj5kHW{EMo+(d>f;G|Z zGWQFlt%=SnkFAYf=~O{t@BH*pA`{q3(kh#wXx~Cdd4Xz&xZL2y!mZ23VOvW-yjPp{ zawPH-#llOnR726EIFWEvZZuY`_`|b6Ux;^xXTLFFPqDS#*&f}PoMJUK(7B|^mA3B6 zgmb1NNkRL3 z&Yo;Gx2?~~UcHCY8EX+<=sX3Tl^*7IrbsWrS5>(2qeXm+C%&?WL(y*O;yNRr@EW~d ziop9F8P3gEX}!;o4z8E0Z+b{OtWoQLp11ev(%*R%Td_^WCah5r7jqr1S8*%0sOUya z#ds7#6>lS<;vFQycvr<)yr&|Cd%}2M#RszUp_mQWsA4m2P;sM} z>u|e*<^FfN7b2htz`{!(yc>juJXCB7M!QAv`@B0 zJTRQLblvoNOB&W)D705+$zf%87G$f;d&<(xe1@;2f|{sXp$ndKzjiDgy7Ii%^Jmdt zML{}}i;3DM^|&}q@PG@9&IwMQe8ChG-$ntVVrrjBtd1qu5bL^yV);R5U&UVwE z!m&Me5lSpLi-4G5EHsNyEc`=c7BydSTfuF#D^N>&Eke9XJy!EFU1-5IT<>;BcX*_a zBS;L;voL9F{VZx@8)gxXZJb42Y!3C`A~J`DQ_i5C`VNgjlw8LUAz`eF>-7|~fpOeO z5u4aAaf)DXc~Uw!%Kd6$-yn3JKir$tI*T{bvcYI26l)lY0LR)`J1<{y9dTB-poU>n zuoH!iIopjr9<(H#VQuzH zAE5L>B9o9)e(EJ(`lyEqx(ogDsMpS7iJy9e)cc9tTa~)SPd!TLKy~UCKlOd2zMuHP zVgR>uCIN3@z+2Cvo++)pe4aLZSt1{BYIG56512q0IvO#FeVhfMH1g!#7^0Q?C%ja* zxl9d`@xVEjA;+Kyak-W_Rh%Q&G@4+c6*CTB2!W;$sfLTvq%uTWvrAYMOZIA3s1Yt(YQ^ckY>g``o`R+L?>KY{Ntf$tM}pgKP6$A3or=foexeI9># z2h{mH;2c5s;{gv^A*Iew{ROGd6FG(lJ^Ti)NLX4gp>5QQvc$LUBChg#`kF`$N%uwSqg zzmjQ!^*g^=JN(*yBj^yzyh=hkN-o?d?035OgUBfuRj6zH)PEB6P}PUD(_a>U5&CfT ihqTkL;%}<>hb@_5a01A}bmGZ>g|M2xB4m;X^Y1^Oc{=m} diff --git a/FishGame/bin/com/mypro/model/interfaces/Button.class b/FishGame/bin/com/mypro/model/interfaces/Button.class deleted file mode 100644 index 1b8d7680309176a84579ae7ac54a639054614601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmaKmI}XAy5JYE5h#>)qD*eQq^kH2Bn&*twJ;~XNpmG@!syRzS&Eyti3o(2yTBQ@LPCf( N;4%Vpjq~L_&gkycz6`{HOIMz||-?0Ea@X6Mm}D z%q!-7GxO%-^X(nLIVK^FLL3tgGjVgHZ`oP%LO6-y8(o*Gd~Iy4Qf@_MmYdw@R&6~A zVeFaN%37&9^nYk-T*-}xM%zV?X5n(eUKC&dF253!<&F^4)rI9}!Zg}>#Eh#ox5>`_ zoK5AD_<=CIuUA&fr76Up+zsZmkh3MPnQ;0SvaAMmW1 kb^(FV^B)8TeV+n-!0Q0PMnmjx^x#{E71z+;FXG^6<^TWy diff --git a/FishGame/bin/com/mypro/model/interfaces/OnClickListener.class b/FishGame/bin/com/mypro/model/interfaces/OnClickListener.class deleted file mode 100644 index d41d0ce736b031038b45fd203a26248c94985b33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmX^0Z`VEs1_pBmPId-%b_Nbc2KM|s=bX&sY(@rV4b3n{2Cm@z(xT*4x6GVWMg|do zh@?+uaY<@kYLQ-6Vp$?1gI02Wu6}N1K~cVbZhlH?j(%odNorAAVsdJ+KAH|j1_6*B p{hY+SbbbG%tkmQZHbw?U1}2~@7#J8?fYvgwfLIKyK$3}p4FIrWDTn|7 diff --git a/FishGame/bin/com/mypro/threads/FishRunThread$1.class b/FishGame/bin/com/mypro/threads/FishRunThread$1.class deleted file mode 100644 index 07178f5829a70f8c6e3efed1608cdb80d39e7b51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2189 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 DG;7E@ diff --git a/FishGame/bin/com/mypro/threads/PicActThread.class b/FishGame/bin/com/mypro/threads/PicActThread.class deleted file mode 100644 index 2f7f9d036737ad3735492a00df62fc800a626686..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1521 zcmaJ=U31%15IxtDE!$CSCx+5|5C~0!Beym56Ph&8grs%qrYXsEn7)AOsIFRD@>nuM ze*ixsedB@gb7zRjFhhR;Py8KT2xq0l4uR=t=G?t|ch8=?d-ccPzr6u)13Ot1v5>(y zEP=AX1%ZoMTtY>xPqO$Fmj$i}T$O`s0@np@Wbqk37nYj_7PDBwEd$F2zEIGgy1_Gr zsaoA{Ra!6G9lz4@cb#TM{FQaWqC(p9!!5fTI11{qLedRx*Fy!Z>3H;16%02xI!`UR zo*OPJ%#_|jx$uaUS6N3PUvoWYv)g*&baw0~O?tFWm$X_*f=0JPyZ++7-99=?cAUUr zX}#UFUn*qUqG~I$(?RIBV>7$$cRO`w-4(jAEw@g&JI^|fy?g1o{k?5s8nY(O;5`#( z1*Qbv!Mg^&G;td%CMGaxVAaG|STnJXI}$^S- z$Ba*Kowt64vh;l<1T;(Ahi;Ykk+jNvr1oJ%p4W_2_<;Bk(!??77)1s-eg*0n=d� zLn=8>EsECcQJp`bMRnQ-NcWN1gB=;!SNO*I1==1Sa!KrAg-f!J5&gT^Nd1JISXv)u z4@EHt5p>1&Xdk&B50LL2{x0hE-r>(Zq-*5^jJ;-kpn>Pqmxz>KhDpx^RZkM9sBs!s z*o$Rq-NYQe#XRFLFvG$Nl;PtdZwuZqgLHl_Uoch-6m;^Q8{Fo{@MGGK67rjx7WhIqD^3af^xP2Z_f53NoeyMd+`P w>K*=kCOB9FD`N;(qB40+}UJVOBy4?#OEV1pF*D4@o~k0bihKURA$`~Uy| diff --git a/FishGame/bin/com/mypro/threads/ShotThread$1.class b/FishGame/bin/com/mypro/threads/ShotThread$1.class deleted file mode 100644 index deeb0600233c28ee5dbffec0999018659233f12b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1094 zcmaJ>T~pIg5IvWsO^Jb4Kt(<(AYxmT0HUZA5Xy&jT0~%Y@GZ30HrOPcBvtTpoYB$0 zfKR^hj04E{;IsOh9CdHYOjSlQlfCzzd-m*RciZnjKYsx*iurmpqDw&t-Sy~1kAm~) z73P94eFD3vAc~kUaXngA9>$);2YBv*g&CS8%wV zbG7Ay?X6VyW5i4tmf=k>bVrY;##R}mq@Cjop|oM~g|fNEofUnpNQloVTV$hx)UfR7 z*@qdubayLCoX02?|b`2|^;a1@3ycZP!zA z5=|GquE`ixaUC~Q+{BoQgfQcnkTI#^7N%58BPnA>#VqC+nnf6`s9Sk$b|cG6 zo?%m}k>kqJOBGa8mc^Z9QFmSLGK6a?ch}Z=)?;X@K}%)JsurT-I9-MlrJ}w$Wt#Ss zP&gfprH_hGQ&hc5Nx7uV!0t1&)r3uILQ$L7O{!VSdSFw@^W6LM93kQV^C>{kaI5@E z(@0)6+(o_YQimiFn{qoMAkrq+mVbo>PAR+GOO_pnTV5(hD$$gfg)k*1?iY=0np^n- zeKZY8>aTiMN0Gtr7CA2o*E_LQbkR>C1R{ck!=nE*>2>rrqlM5@wCka>K$Lj@9$5Sn z>UQWvnUf9B3V3ACp!Jadk=Q;$m*Tr%(jI)i!~vvz__r`#*#zEWMBMGdw}p6hC%5k- z_?ofy!{a{cKfv!xv_Lt4y8Y|hHl)lBMNp8zA{r=$h(8RK>|+G6K{rn*>!;|$GYsK5 zM(~0r^d)BSihSOZ*Bji!JDeqtMg)F9VZp)Rv`k`<&_-w-+R;I)M1KGgoU0(6&}daC JawDzu{010e`x*cM diff --git a/FishGame/bin/com/mypro/threads/ShotThread.class b/FishGame/bin/com/mypro/threads/ShotThread.class deleted file mode 100644 index 066290454cdea3753300c87fd78e1aa7978d6274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3556 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 HNO;{}#$cCo diff --git a/FishGame/bin/com/mypro/tools/Tool.class b/FishGame/bin/com/mypro/tools/Tool.class deleted file mode 100644 index 20519ed4d9306fdd044259e00d3a01b2083a7ad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmZ9H%}T>S6ot=i)1-}UQ)~SzxbP3!E)2MFBVuW&o2sCt`)N#TYLbz5Qt%-PzJy!B zmEuBh>ofQuuEd)n2oB6WGv7Ujnfvkm`UcV3{(s(>&Kmk&#L?WWrDC`V3m+= zUYrofArx9NnkW&eo(N)(pdb2?ua4MKtM>?6OI|UxI)3Dx#bMtYcSS#7k{x=g84Z)8 zQET(6w+ZH@jK{9m_7j}zN*U~p#8eQ9iP(XNhW4pY*Lf@;PpG&uw8OjGv9uL?Cw7v^ zV-4$s(qH1dKk{5f$O!)DK5NZ!>JB!M<^jPoRgp!G)#O_W8gEJ-;96j^!Ah)|#xqh+ t^FWcSK8G3yEtGz(4W=6R$`xqayMx)*&S3Te{pNo9_%CO1Vv$)2Y}j6g|(L@z~C!u_-i|Hjt(b*pswQfqp>R(A0Gk6UPpAQ<_$gOk6i{I<;MA z0%gTtU#JGnb0XdC4e+fq*kt$>%jGq+kcB z6;>#}E3|MoSFX&K=JZxWH0a|i`O88wyQeP|N(+*SD44aD*XmH>ecDF~k@Jma!=K?I zT__YX*A$Fg>sDQ1sMu)MOFMVh>z%9ay2s35)pu)m7Txw9Hn!{jb@J1}Hlh`x4V?_9 zGrR)<%taY;LD^W_Z8ZH{-SZRqpr&hnxkg72u zpA@2vaa`g3_;tV2*v?Ac#u$<|j)^;tq=h*f^C(z&+r|QlHWpE`QAWYWlDK!oRm4@r zT?IuZv|`;al@U_BI~udDCEv zoFBd2@VtsHXvyUV*C>;~HtF`WD?!h>2pUao>@IIsT8g6_)gktE04XGpzu1FcA|CC*qJxdlwb=_D*$zgFn#S=m{VPPj zl4mg9bH0Td`I0NZ)t`C$spC;6qGQUjbWA!? z9b-;HK5!22!f=l4!u*vwhdk21N!k+4r+rHMp7uNW#>6*>JcczP!V{@YV~q<_FA~Fv;m3$R#Bb!p`fwhR z6YsX?2; L*)91Nh4A{no@W*7 literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/GameConfig.class b/Tetris/bin/tetris/GameConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..77a9471a5a06d5e71907485a74ab1d3162b3cdce GIT binary patch literal 2046 zcmbVM-%}e^6#ka{VEI+Tiq!%IN?Q$)7OhomX)7@a$+nx|uz=#IxR8a}c1f6I(<$}E zS05aoe9>2Dm{ID)85tcP`Um*v-yqZRpK$!n29qU|(HU=M&%Ni|bIreg(RL=6Tuw{4i>-}hA-kH)W;Rkey^t|8!BD1D)zi^%T$d_+Og5UW z`d7>5m8e3Hp-(U-B;me94~*__BX7;LHA{fImSD zl*`9L#r&C~`7?Fn+(&Fwn)VfXi_BLzk0gGEk_aCmln5OmEUQQ&cJ2t#AGxbwMsg6P zeGy^y?4frCqf}sw-g#zR!PS$R;z`X&;wOX-o5!PmaFTWwuhL5UDYoz898HX}b*ojc zAH9SK$tZZOW9e{v={QrbbuJxlFFnK3SD62L$I_AZ(t`JTv-JK6>KlSOGWs0}uyJDu z8z5LoMP%+GxbAyawT!O5+AQ<-xz{;jNdrF$;e^&FvO4R2Eem~24o3N z=ZSlKYDEh<(&^I~J#o-&`z4^cRMNX9N%x|EsovCYsV#)8{b7MZUA>W>9=jV{$1M+jp fZNG7JvD^MmCM7d5vvgh<{(eP1GR9F+olLCp8D{aUZW`H|pps=w&b-9qdW6cE zW*v0|B_moeY?~q!JXTNnY%{gE5M`_BRl{l|ipmw7#NgqKnX!*5@C^>lDe#Zw(+su! zOvW^(in&F@n$;JxL|T^&d$N+Wp24BA=lZloDRAmqQeW|wX$&}7&1COjvs8-XF!y&; zr=Yuj_ew@XY+^7-2=$;NCUV@GjySUdJ061~H`J zJgCSW4PWA}hIw4ja1UQ;_!=iP+!ylz-)MLb2Q?hRVGT!cRKqd6U-eok_iBXI0@v`Z zZ1PadBRNEu7gJdZPyRAomc)TIoWqQU?_^zv2ocZfd@ZIImyMLo#sqEWEN^QmHC(wxtj>HL~=887ipSO)9St&V`xC*~B5i>Zd0mL4D25Z`_viil)O z9wkYb(=zE!%Otby!(PPsvc2hGZ*lx~&3KgKeKq5EINo0~KEQoh63$v?*=d<*r)934 zmg#2OMkec!p2j#j1s{9Bw%9W$vFB*H_zb>v_}LAx8(fDP<2d}390ez7d-zi!(fawb z(vE)GE&MsziZBuw_jWx(AM)w?1Cf`AK1Yaqwf>0+$4`j2I6Jk`H$5Xrl{&B!6C5#` z4sLP^lipT4NS4ilu|4b1s$s}aDJW=waw<5D4?O->wsN3A>@WDmmm77^0r$|JL6TO^ zUQ1OQsgjB*OgEuwjnq++&f>!+)bQ^O0URKSm%*d{$}{-MNHA9ICHzlgB}9|MFVHH$ za0zX({u0`!MqXe*kdYEP=A~0Yr`v2Gv~fPx?`6o z72QbMf9ZF<|5W3Afc^daF7kU*oWG=e&#{S>*SC%?L7Z@0cr#(D)=jv(ge`2;61KX{ zYXUk^yW9bCx2>axuzL;{-cESOI(iA$oot+90}Cu{o%OlMYn`ZXTnkA>Fy=2|XXCZF z%WH9u^Ou_NeNFiH$$vopM@{&FCj5uwKO+C*3V+0lC+bSLD;BI<=3e#hS&~0M!;f70 K34?FJ<^KU`+(P02 literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/GameOverPanel$1.class b/Tetris/bin/tetris/GameOverPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9422a866138e09072a5f874a4cb7f88eea9ef4a0 GIT binary patch literal 658 zcmZuvU279T6g@Xhy3J;7V_KtCYi*4hBe?qHLq(8KKVX{#6yGPwHJ!4Vk)3J!yM(IX zgFnC@CEi(zR>;E6ojrT*;hr<|>-UeJ0G{JP9W}ILtm1kdo465U8#g1|im(&m4q??F zYu9;7XlI^%p`|Co)!~+t%E@8zj>a7R#81P zliWIOW=HIg?KHw}g1guwtPR-tx7PUtYp5rPv6o;U_abx>+z*WQGM}AigyfwuT=aA0 z96Lg@oHAEtmJY`!Jn@8`rGsbMd6rJX)-q|rdI+#@=bx<+iz2dyj*SccL#ct^=$(VkvGNVoe+_Z@Ybf#~RM8Y#1y|9MT9pg7g=;0UiQ7_R J5voa*=MNXTmcRf2 literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/GameOverPanel$2.class b/Tetris/bin/tetris/GameOverPanel$2.class new file mode 100644 index 0000000000000000000000000000000000000000..6d288147d961b94350799a28e029cbfa172a6786 GIT binary patch literal 654 zcmZuvT}vB56g?9YH`#18jhfcB)~{4!1h@3150*j+_5%_X6x-KHa!p1yGqN*@ze}(! z_}~xdk1D;hNNXVrJ9qZ%Ifr}h%&*_KcL3gEtAqk-A!hNUgateev5aQ{o(EV7@KRvb z4VA6G7O1ryxm4NslN`~}gwkWFDcNVnJEfI-FRn2<4Q75I|4$HRzrM2lH{?-aS`Lp<<(lWqwTPt*S-=af KAsZFA^79An&XrjJ literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/GameOverPanel$3.class b/Tetris/bin/tetris/GameOverPanel$3.class new file mode 100644 index 0000000000000000000000000000000000000000..20a7a999f868179aa2d8120af16ec96fff46a65d GIT binary patch literal 876 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 TFHD8+$`N0c&$%<@<#zjDSM*xT literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/MenuPanel$1.class b/Tetris/bin/tetris/MenuPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0b0e1c2d8be570ec300d5a364a63b9a5f54efb67 GIT binary patch literal 638 zcmZuv?MfR#6g?9YH`#18M(w9IengEC+!hKJEQJ!REhJH}^#3HeCL@~}*_r5b3EDz` z^a1)%rFWKEi|xS9ojLcO!?}0%$Ioxy0qkM3gaRIhn8u?L=J7bh6Fd#@EWmPr=K|Ai zq-_0#K(+12rOL(~(vxGUDcR@j8>N+dE3nx3H@*E?Am1_r5}0i(P2I`3N9iZoOFSa` zP8oen>8VM_G!UpY+Gp}Y#`4m|bV1t1@3N8uf8O_E;fa}~eR{9Fz|0>XyPn312fCja ztMsr#Ze#`lY7thjDp2f_bsvm%5sD~92(cPr4eJ5w5jK29^?q;lmjcm8tto9K(ps_t zmCRit^)No_ol)NjEdSSVTUkfUWXgS6w(SSjGUIcjxh6;Z&m5aW1W#57)nc!{|H^8pqDycQUD z17)k91S(BOE>$*eksj?!P02cUHIjkAm1=O5}0Z#P3_UJL+PRHBp#7n zr;OgG^oL1@)Du{&HIL4db4x3iHQzhC!a;ei>YUD{P%VDiSts;9Byj_xML zD&2398<<{z#RyAS7MN(0b>ED25hhTK5MnvP3f=^$MtJKdD)+Nh*94;PT2tCcq_t!P z%9*=F>VCY}Ii{`?Sa{TMQ&~sMWXgS6w(SqBVTM1A=2$E{R`bzHeL19-)Uxk+GuMat z^%mvRzIJ&BWtVnfP7laA4sJPbfv-{^fGC%JTE65QzadJDM!Z|$?+mGbJcp=XBKM0? zfhW9rCa}TlB&Pn)zvt@bOZ78|GmKpze@h6n))vcuK^|ou%i$?1T=V=h&0sb|rtykv K$U+6K{QLvoHIFy| literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/MenuPanel$3.class b/Tetris/bin/tetris/MenuPanel$3.class new file mode 100644 index 0000000000000000000000000000000000000000..7730fd5dad7baaa44c1966b8e9cb83f2cb7e7561 GIT binary patch literal 582 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 literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/SettingsPanel$1.class b/Tetris/bin/tetris/SettingsPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..283ef53c087dd108a0271bd2d8f2c590a8cca91e GIT binary patch literal 716 zcmZuvZBG+H5PlX)&mO0(wSa&KLe)|dPCxkpW1-MmvgEo;Znsc>mI+A0 z2Y-M+$~b!=8bUAGnc3NAo_V?X{pb1@fH&AGp@;<^9v+ua!=jHREIaFohZPU29@Yek z_E?(wD}nirC7VeTcF9_)2IeqQl5P;O-{+7$XYV*NzpF=COdq8qsNSk)+l4ag zo{Cd#xXdqPk9FeVS%7tH2;AEzV?SwQ1C-zgn8ikbI-YxY5#S{n0XEU(ZYMQce=QKS zm7=VbM#hj4sN|)lks5>ty%UP9z{gk5-wVcR) zU&f=Uqskj;Ou1xWnMZn(sY_0R%dHm+qB}DTIQ$P5|Y%GhcfdiIhRBrIw zH~4Dvg5i8FF#QvSOU(R_^K-@{JVX}-mM&)%k60IYA?Glkdun*f+GpM(YySQMLX@Vj literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/SettingsPanel$2.class b/Tetris/bin/tetris/SettingsPanel$2.class new file mode 100644 index 0000000000000000000000000000000000000000..0d8e5eff68ec354d0670a3ebaf4502ca4b6e8823 GIT binary patch literal 716 zcmZuvZBG+H5PlYF&mN~OwSa)gTftHi&iKU-7!z$U)Knza_?6ttP?lVG$?X>Uw@g42 zKllUuQO4N|(HMHk&dkm}^UTZ5uirm@0(gnt3d&gU;o)%w4J`Ut!m_iTcv$hU>S0Zw zY|o@=J{OqpS+cn_VV|s(YG95dMcF1MMtAyO!?<1 z&YUMotkmk5@>87;DHT|4_0FTqD2%RbNSCB+_@;myID6lb`F%ag6M82dLH)ma_FO2l z9;hVKhRggw_DrW9)&p!{Q{es)8GERW4N!p}UDVks5>_<8w-^z{gks2wVIRB z*~ra^A7d@BP>g3Bnk#NEd|!Cq>M{R`IhXm)0~a|U+oz1HqqM718W-eU&S`0Q@#${@ z0nx=8FNFsl6hy7&X2iQP#b*Wqdmpg1!FT8J+q*Xq?eCcS$~R_XS!NBKu&knXi{HD& x*W1?&=W~teZz$d1-oH4%V2m+~1SOU(XC04Nmv|xPFkg5Yc*@#m-ZE?c{s4`vry>9V literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/SettingsPanel$3.class b/Tetris/bin/tetris/SettingsPanel$3.class new file mode 100644 index 0000000000000000000000000000000000000000..f6f195fadb2a6efd645aeb39444f5ad8cc4d95e6 GIT binary patch literal 755 zcmZuvU2hUW6g>mT!n#Fl3oUA`R;rY0*Te^7YD|>Wh@rI!jqd|{rQ0ksWM^pkTPAHy zeDDYOql|Yp7-M9T`M77!J#+5N{QUL(2Y{E@E5pOOj}jVX)NsegUEFi44WEbm9yUEZ z^spsRw5PFYJ{PF>EZHu_NZ?j4R&+ES z4=6p6gTx_nXk)F8DgC0;F+~EKt=^eDm!Z6{A)S-5;oFRI;MV(2%GYUVeQY7~ANoYBwtvZKcnt+-g0 z&bM5_OHO+#N5oqLEwGl|&@40;Tw(YzL*MBcKSs@+``-pz9Fgr)!rmzAs)%NpbeBu9 zG@kV4@&baPmFXmsmi~YzG_wW|_`{SSP==^h-PQ3w%5e{{#AtD(`ozeeE-H(YRy;@|WN@|>P>s=+!e3RvbihZU^y VT;MNT$6AKe*eF}zBRrnD{RXPtupR&a literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/SettingsPanel$4.class b/Tetris/bin/tetris/SettingsPanel$4.class new file mode 100644 index 0000000000000000000000000000000000000000..38244b9b2fbe75a6978fc31193608522d0a640d5 GIT binary patch literal 654 zcmZuvU279T6g@Xhy3J;7)3ipb*4mnCjNtkp_)rlf)DK8%p~d$}a!saeW@Km53i_vn zs^Eh^z#k>vSt?b?!p@yNd(PpWJM-)JkDmaZ;$9UMG-E8{S`}-!9%BPHBHWCy8R0fz z(NDB%Jtj1Jo_(%edc@vqGj@l{aJDCmXWD50oUqZJPkHc;Q103h6IOcK@WE_4;QUw( zvVf?e*VY_z{@&(O9uc*1CD;v&=DeJ(CxqmUF`RcZ zSHs?0p)6TOf3G4H$3Cm%CT|50?jYJgdg?5Np8>=bzl~LnD z`**mnE>W3&mjimdP&|GH9-^E?Z|h5bRK>Mb-ttY zMNq;OS%VVzDC;s-F8KGQ27aw`4m!ueHF{j~pI_2=F*W8S{A#PeMG!vj7VL z76U8^T7{Y(~(P+jSt8tVl21WBG)(F052jeV?|(km#q6_tc#FG7@>fb2vr|mVl}|42sJOOOd7WO zMj-mEHKmP2T1!@-IBqqOx)<-Y52@n>7AAJzRMrt^3X~^V3(WdcY?#5&Xr7a;Gc`Z! zj2sS=liL{u3OzZXmejI0_PRask9RCzN$IAioKO0IF%g2PhJq>B*XH0h^z^!CZWmhrEREH~ z2OmxBgZ@Xx*`rCTIWM`H$?VKGGvDl<{{H$6z+*IWFmYXrRSQ|%$YBLHEv(^|w$@GD zHgT81nz=z`G*v1T3`^ZN?#w-QtH_tmfGb5Y@|7!i zpd+66!dFij8r9^GMC95YL%JP$oMEBs3*MU^j(9Y5M*(^4!*D8jM<^a~k72DELpbh{ za`=o3DS%@eTt)(MRI7oz`nJMEWx>ohMj?2>hU$rxafPUs5I^=_e)qLK=$%U|H7o8x6Jnd literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/SettingsPanel.class b/Tetris/bin/tetris/SettingsPanel.class new file mode 100644 index 0000000000000000000000000000000000000000..bd925396b6ad9fb1b7697f63b901dc01bd6a0861 GIT binary patch literal 7553 zcmaJ`3w)H-mH(e4lNlyo$Rt28pcD`^B!LL>l7MZV5X=Kf0D})YWIn>cWG2ph!>hJF zTHgPoYeX)KPKUna-a6%Z6E%}kE!@yCBCD?Uuf%H zEqQrrEEg-rIz6rEV998>*rj#MdmnpdX#(V@0!!5dyV*N<+T@XC39TrM*vpj$qo z#Y`<`X)#-8Rr=(7pUm;fT&|2$TF_SeMUB!v^h&KCrqn5A zKD{Liw5ZqOBDz)Zb1a&$f>CQ@ zFp@Mqj1K(~LCHXH(CiFGg9BzvqT9j)f=RjK6iFh7{Z`nD zm>t2bW<*8o2<{5*sZZ<`Dn_4^4J)>zuZ*O;3x?ACP*K}`eU7seFtZVGb&X{PKgF`JD zGt=?y0-Lx#V*|#Ea&@>HrfXM*qhae(L1FbgMpIF9EJPcZb%dj4S8{Nx8Sf2ljgT@? z*=UcUSk#PK478GjX(cIWZ!BpED*EGQ&@y|hy%95%Hp0B>Gkr2|9P^dh=Ib#ni=LzS z(jJRO?+gyv>w9GrgD*K0;u>k)d(Azn$7F|^4wg>pA5rpvX{Dw0YIrI;$<>Ymd2u2r zCwJCz4y)3#hI43Tq~)%!=f|{~sHrnMj>^ZQa$g=GcDujoLw=) zUXinChUi<_A8|eB?};Vj{bpNO{Zx_O^txcwj4aTzNF}?>gw<)PI}-*{81c##hV;p1 z0}tXML#~vo3_Og_d*y0Fu8}PUj^a5(KCZ3jwH4IXFkARCo;GBw^m7*~yI#Y&DHacz zaVHcE35jXo7)A_?VuT8v2?qvV!pqb{wi$Q?kJ8y0QEjm(z2s?B3{#E)L$*uUz%#n+ z4(T^!r*PmO@G=inQ!HjBtaxy!)3mn7LW#0s8T3iikeCb^_yQg^@GR%yJNT}vZU&ap z;i79?Yv3__(U7*WS6nsL?YcsSG)97rR;^sxi>jS~-s zZL}!MjJ8J;rlnCRHyU!2eA*kt4@o#Eyz199Zoj-81gxJfcrT8?D11CJ}dC0gN3xWA3A>W*ps|6 zv#`M1?c{B@oIZZ|)IGOyAPWF0;w#UbK1{3o(x9WXuOB@5Fb_?U!Vdc zXFE4z!_YQ*))P57h=a2X9i}k-T)dJn?n=zz(nNt+>EtCg%;qv>(v|X@nQ7kAJfya7 zLtdUr&Gmn?l4>y0{rT$wYH!{N}}%&S2;r=0D&Bz@{x z=N*e&9s7*?5~N%!~4h(j5J1=QxW2bw?)+y=a+}%VL^ec z;F5#EohEJ5AG9`wt?g{t$s_Ns3(lgfAf7d+QFf-_eR0DsScpyJo088Z!4V zrmCI&=+L^jxy_8n%}`HxA3dGkyc#uw$oB54s?*->akB;+#_X~3U?|ksZzp}>gk>^8 z7R=5uk-3ZeuFvPNCl+#|peBbklk+sV+jQLPCPECkbe5A(&$-`o_Fk2X9nQ7c7VNiT zaUQ{PCxvPq9J2O0LxNc}3{8`lGi|kRTldn{kf+ho{4*TI(_op;YDbJCkg-!7wt<-I zI;yJr4mML}F^}2ym}2k%QC>ZyHI?*iTGQU!$^?;%w#E9BiFFF_CT&(!y;&Df7dqNx zMpVJ>q2RSix^uxePRrZjS~sb-<XkMeh3b+SAfs)kLj%4W-@EnOfT)4$)H^`(Ifwt?Dpg2XP#!anWg2? znUdLbCS-YZCSEq3*%j+)nhx7F^HaNKzG>G?OzfJMpItMNVqKtlwOuo-wrl3ptjoCu zvvQU%uy+83Yys;s(x3 z&zW%y9|1*j;!KXsbS4%C0-1?3k7AZiOks8hXPw_yJAygGm`iT`^QLftHq#R)+7mBy zNY#DiI24#Mf_W*ZWyn?AM|0MtFh8xqf~*GhWT{UJ%4$%b(cq#^TZ1}VgN5YQzX^^8 z3)2&`8jv(r1Ckc01{ddOusEy163SbW7L?UsNk)UEUA6}EZ4H)@TmMQN4VI-RW;Gyb ztOg`4R}C&v4QgoC6)7|fV18t zXu@nXGi+M07;RXC)wq(SiM7~)%dm?d?QUcc9Yh!3Hr)*JjeL!5!fUt!r}TRqx&MHx zq!3q2C9aWq*doiZO*$|jTfmnec1RREWgkDa-Hbtb08#leVsZ?-o3$qL!mtjdB!!qr;%C0D?DspyHRm6DaUaE>JuE=g?g{R8n zj(hU=Q{|yDD|L$9YIG)hD*8A%>)S(^OW)oBAMT`o@4`8_n@4p&F2ucrjr#})2k7C0 zSV!pXC-jCvuMl_>gx>22yEpPpe+OUR`}wLqNcemNj}vg8AXGldx4={UjBpso`8<7z zl<)Cj|0*Bpukj`KCP&{PK>n7H_yL}mQa&H1@(aQ&e2sB&jQ-`**YPhkDJDn)y`$Ky zxNv1BedQpJb9k0V2e%*;m8Ey)A`- zx+9e9fMg9nS%Yg%puSc3I%eVX zlM|}8yG>$7*lqIg?qHKj?d+(11?9EhMC3vEYrla=3WMs80voDlFqVPu6Q+ManEoMQ z`bU_DAM?EZ1P%Bp^#Xk*e?o(o`V~+=_Y}|z1>6a+k;_ynPNxuMb0(V({5t)5_8l;E z`b*e%pvmd4WS>|OB{3od+a^YgcJKinzKnk%Fb&a~0oGxTuSrh2&XUqzz>v4!TSWr_iIy zwRDBrdYQ5nYeU(pJQ==aQ;Nx#ReC8(slq$(;1_JYi*xZyg4%mD?f>yk{58StHw3ZY zG0cCDK7v#j@AI4fAGr~JymB|Pn6(Ogg% z&F;5n&(AcyU~vHggv8nW|6w&x&I;7XL5dMwjXLPaIt%;Ldvzrg^Z-3n zbk-n)2If28oH^g`=hxc@fOG7*$YRq$*@czjmV<2vRe{{4Hafl%$kgfs0lO89l|Zqh zjp`=zp$hwQ=#$BWi4kynK@yHsTc=d1ui{Wg?NH9u$xOaT#$B6{A4J+r?o>Pt#vXRC zE0FK1D831z*n@+-KsjDUHvS|KsQf1nn*!dgF)D2NGKy5hqG_RqFU_QJKb)yi%xo*_ zAu;BsUwbY!8?M%#JFD*=`!$n``Tz&8xe$)e?O42Qi?0H`eWD;{j~5WHbT~C_Zb>$2 w*M6l(3{9nlcUVsgWFA-Ybj`pirDv?<(YLUU4Wdo2h|-d=P$9ZZViS430sqESLjV8( literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisFrame.class b/Tetris/bin/tetris/TetrisFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..420818a3459b218001b97183c49068340a7eef60 GIT binary patch literal 1484 zcmZuxe^(nt6ukq1C7Z#9Ktg}eRxH}EEks%^DlOH9QiBPtB&7C-$~2j#qsuI3cLUmQ z;K%VCO?%pN{M+M)^7!5+NYU;&JNxF%d+*+Pb7%kh`_&%+ma*d^g@rLJx;TZBgAe(; z#KRRHt~&V0#TXWN^0A8(xRxesnXOOQ_o;)=c(THi>ulX{v5K1xK4;Gt4sN+9aDEwU z4sHv`inTf{`znfbB#@1CXq4a7VPpckU0D+l8v^6yz(%pMaZ~wSJwjah5dxWx+SN5> zRY!*cQ`K0#DhF*XaH49g-t6u^(P2Y9@yRpU3hYzU z>4y5gvF+fXZl04j+uduc_?RoTtBe&W6dzT8Q2VOnE88j63E6g57{RRv-LR$C4Oh)J z5>D$Oaa!bXV!f%OxTYC8l6Vgnh+{uWVjXt`avb+lDLSBvrHv$2;!9K{Ht>~16*Yl; z0<8|>(ybtD>#(YR4!W_#Chkhy!`Bk;Vpd`cb%_rcBKQC1NHn9(NS>01sOFY73YVom!gxTDZgKs6i!}muR{k&vZU@X#c!^GT-eDUoaJ4qpH`l;&r zaoGz5~gI40)(ms9nbt4d%9#rH;l!M*9z-k*Orywa~OGoB; z|8!Huhg>Jkb&^&IoOvU+?;A)d$v7%BzgcS!Fy zdV3hB_Z_w=D(j_snD~_n3A|6^6-XL$1U3m5Q}lPq(^w#K(*%18mx$g~qPI-+ZsI)F zh};lse?aRo(c*u{Wv<^tu6n75$s04-?6V2{xwATxoqCpS?_5iHXY&M{PuL!zpMyiW z7wGplhjHRlpvvb_q;Z~*J;J#7FVZZ{xB(-)o1+pg(E%1{1B*yg>imG%Me=ia<~0h` imFbr_`QM}^+VL{+_b6kz22f#CIEMN{R5vsTsj{6ao@t}r>HLMa^jx(*& zA!klo^M3y&fer}uzBSG(CF;y4dzqS!^~mi6 ziRj4Y*@$23Kx literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$2.class b/Tetris/bin/tetris/TetrisPane$2.class new file mode 100644 index 0000000000000000000000000000000000000000..8e9f2852222c9f31d4f0e4259d984209fe70794e GIT binary patch literal 480 zcmZuuT}uK%6g^j0ciq<1Ec=ECAIu=5mmZ2d*K?&s zg`tR>fv=QMEHd>QiIzd5D@SHDbw?;o9VO&qp@cs5M?9dD+z)&$u3FgON6Ya0QL$+H zvzOxSAP2q^dz%~^#;tF^f$ASfy>LXBVVh+HJ+k$X|I=3)nT1n-1-&CZQM;xNJ;A1D c?m5ev6bdLZTKrveD36&EmKa^GVKMUh1tWo8%K!iX literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$DropExecution.class b/Tetris/bin/tetris/TetrisPane$DropExecution.class new file mode 100644 index 0000000000000000000000000000000000000000..2190d71cf446a2ae95b1013984db9e0279ef7434 GIT binary patch literal 1324 zcmZux>rWI{6#pF_JM1tE3#*8)iWUnZ6>aMi-+(;iRahU`SFXEPn7TVdX6}IhKtK1h z{sSg{qtPYN#E*XPUuaSjZKFw>wrQKRNfYBaJIhMYOmZH-^FH_9dHVX{V*p3-brKnT zWTPEjN$f?pjeY2`S=ujZuZauXc z=G3PIJT1r>kKo_N*TTIeozu$L6;c4}7bZ6ro{K zhi1eNjfL|Lwql!u?dWhYfI$mG4lZEW!HAGij5)X{wsDarFlk}R!L%Tsi^B|NEo2>B z66CUwD?+ZKg9}TwzR0+RzN}l+0b$oWJLnt?{KcVLI>&B4&y(7qJENYbgMoqyLmf(+ zI~>g6nu9O!rGu}eOlCuwtO{=uTHYx|s1J=Yyph(mT@S0G=G7TFigYEQit(P@a9Ty7 z&X@OmjbOW>n5ULxm!s@JgbV)i+wv`LIHOf=;k<8*UmVKM^I+**6a?BcS-xX_(e?awvsSTnvsN*l zCiHKZcp9gmy!@zV{41)!{o8>q`b&DoUk(Y$fNg$p%HwJcu4iTjbr#uFu2vDEMcsftv^k|o%c zkj6Vm$7ZL5)LmQ>rG%!KHOH*tv6l1^TIN>K`T&VIGVutRIT2T}DGu2D{TeT!Ef%-P zTs7sn#?Z=h{e%=fLlZqmJH5aj`We0S3y#oBoTXR%WBC;q={H=Z-|-FofgAKEiu4zj x>2G{T|KJ||ixv70yE$tT^-W!N+yDGtYk8qk=0kLr`Cgo4Zu9ao{KM);%^P2QJzD?( literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$IShaped.class b/Tetris/bin/tetris/TetrisPane$IShaped.class new file mode 100644 index 0000000000000000000000000000000000000000..4d5a2e4d260d6f9a3ceb9c0c4beb2e950194c867 GIT binary patch literal 630 zcmZvaZA%+L5Xb+!mt>RkG?!|9sBL{p+jv4BUiqRTNTBpUtR&G^1?AKQx5PWST}!`9 zKSiNNXlXxyA4;4FwGk={GxM9Bx%LHOWP|ZHEva4ym8O|;bgnw z#`)=?&O6Crmok1kJI{~wJHt>NeD&q$TWl{ z0_vQ97T`JN1H53<;IgUz)YjwnNphx-1=PPNh|^T(&2D0?wgTaurtH+DnLzDM%2=LS zz-#be#UoNcO(T1^ld~i~lSUlJT%oLXYhMl5P}Is?;xyM#Lgo4_F{#5Wow!dIBf^k} zq;9z6#iy*vy-f=NxZf8;x)B#1>64W4@*G;r70q~m=RvmCk+?AcN_$~vg3SDKQj!BR@fs2R5bGT-{dTb@1)*rHkqNUc55ewITUSXE^(SUlu)@oN=)i7OE(_U!-z_S zhvbOXFhPQm@cnP_wgWHdq0nONF;)XyU|byFppX4O z{4RpH3$@%u@pJ#&3fY*|$d4$=PpHZ-n3G@eNSg~TYv R`hFZU+kqAxTJ`5T9#hUNeO literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$KeyControl.class b/Tetris/bin/tetris/TetrisPane$KeyControl.class new file mode 100644 index 0000000000000000000000000000000000000000..88633162a160ff7c5e935f26ec40234c572d84a7 GIT binary patch literal 2070 zcmZ`)O>h)d5dPi+GTC9mZipl#BqTzBO#*BHH3>m5e?TCRm_!gkakBf89kM&K&b&xN~`pu@nDq~4tk*~ELBokWtAtrdA7>CSC5pG-7}jFCRkhD{dM>2e*L=NoBj34 z4?h9u!ACLd#ZeROI2OYZykO!*ykw#ZJqCJBvh=a}xQTw8VD)8YCs{qk=oLl-j0Twv zF&kz!!eOUP?7$fVXIUOIFlwR!W9+`bmWzzW4NS0{WH!a=rWw7)=n|vL23|MthCr3h zIzfB4K;4*D+IND~bSNflSM`(ogyTB;q(FW08UBt-0-J}tj1q{CIj*``%+Dx)+Mdag z#hh0+CwvtIDkIRG9J^sJ*eQEar__RSb?UsjIl`cylhjOUJ3W8FF095*c|||1PCJ|^ zzE;s;P9ji!Q3d*}7ia@lE$qX73kPt`!kc)@z;z36!?rMkv_QlE>}nyyYZPV;%vs2C zw8QKMo97wj808tc%sgfVX74cb5m?Z;M&*TD6t$B}O*?tz3$$+NWc#r16-Jg+nwEJk zop+sXjk>P#hjKP`i}D^o(n1jn78bE&;U?(JjT@7WPi5@_ch@K*3%BsDh1 z;R8OyT}B^rsm&X6&=`h1SNmR$Cib+_xUq8s8M~nQfVCU)2y9C7Ah!hC)-<#2tGDHh zomVtm&6g=r4y)K`l1?yT7sD$;3FtnWb4rJ0@TDTtC^gs#CY7Dej;UEal9?lWB3<-- zx;xW!RlU69dQWXwu|2h6#YP+Ey#>XYsB69|*p5pmQQl$Fnah^9i1E5mr{k90gPzu2 zJ}RL)@Mbknky2)DKNCSKXSWgVH$5S5QzEY^YY^^9iZASYA*_@jUL9@ z{oz-aw%xR%1l3fY@)vA^)Qe#<1nI2G6!}>+m7mmFiJ zw&Jx`z4#|WHOu(B;@wv9{u!ZoBodJb)0D8CwH4Hr@EoH@*m30{>K~x4Y=4A?D-0iE zCyNpqKU+2G?X9voe8#ti>%^kB?;oK9xK1rEI~sayP!0 zttiQM{3!R~7r7t5$s~T49r#0b;xE}H;_{HFmxo28JR-W~QE^rt6O*!6II>UNmB+;= z@|5^o4&o415J#-xF@{@OS{`Gjx3>zLa5yY1h3-%u!FiHRWN)DV)pJyGGs#y;?j?Bz F@?VMk`56EJ literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$LShaped.class b/Tetris/bin/tetris/TetrisPane$LShaped.class new file mode 100644 index 0000000000000000000000000000000000000000..8f0a633bacba04d614b7e7f7bb0774be15536193 GIT binary patch literal 633 zcmZuv?P?Q26g@M$*-5tBW@Br$ezs}UbPFo@!yk$u5it;om{us_k4Zbwk#x80OvSfQ z{6JCg9R!<#q7UFhiT8%80cGHRoVjP_+?o61=a=sQu4AQ!8ji<^F|Tlflanz5EW{L@ zVskpi9L^}5Rag{={El_4s{*qkrJQN5!#kLWs z_iS#~_IC%ST-SpkA#uOhFSpEH%Srw3sh6MVr&^%8W}LrQIIpmjUpq<}~>kA8Q~lK4&9-ENmFlr#SJGs`s;Jt(~PhHD5=rP<}_j-w+%i%swLwzarR-f;2irrO!aXfSLd*3{)q8 zXiN!@C?iDK2x@hN>ZkGDDcOt_$>*ra7ih?rXv$Z(CST)@e1i@77Mt=N9?SR8@&ipy XgBTLWFgx~hI8Qz%^)(u!bCACPLpg>9 literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$OShaped.class b/Tetris/bin/tetris/TetrisPane$OShaped.class new file mode 100644 index 0000000000000000000000000000000000000000..fc4d11a262d28609e884af3e55340cbbbdba362f GIT binary patch literal 629 zcmZuvZA(-^6nVpx;LbxDSt_l(bR~>L-y;tsx(QoNX zQHr6Tf?T1fAJC7A&bjyo#lSh|InOyW&zYIuf4=_$@CegolyN;kfI)>J1~&qD7!D}9 z$z~+L07eyVDNG0y-L|pyhXVbJPP@$52P?UI9w&N^=*K28?uo!)<3IfLnt!=Q4x>-{(J+gPBqq^(;>ty7o`(StBVFQx=~&SW%o zrxW5f>YTq5;x48_++)+=vf+Q!)}OVv<6XTape~}Yl_WZAc4BL_6{ucmN_R|>3e>Ko zjOD2Xyao?e*dzti)c5jya+bt*(rC3>T%oLX^Y0ATP_&%7*lDhzgv#`8Y!ZhFy77P> zMpUajBuBJ*(MPsI=sgr9`Pb3R2}E=X8L6M}PT)u1;Cnydtt+o|ib9*Q&$x7n3pwv! z@Wq@z!(9}kF4RmHrLXz9Rk9JQksnZ&A5oK^FeyJ{R_2 WjXET*p+ENn7$+Z)@-ls)G04Ap*M?dE literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$SShaped.class b/Tetris/bin/tetris/TetrisPane$SShaped.class new file mode 100644 index 0000000000000000000000000000000000000000..60046ebb18065a5444d855c56c246fd7d40f2437 GIT binary patch literal 629 zcmZuve@_!Z5PiFM?Y753TR{X-ep$2}iOOI8p&=nnj742m<%X-%w{UU z7@jCRRhSjXyRNa-*8-z!PP@$5SDOR(F;4VbD!(&{aVrAjwR`G|+X8+)?P!70no0Ef z>2XVEn{lg0nV^}TW^Mi6Feu&b`tm6L8VeNGwRIm->lEff3?U3LjCp~fYZ-Oj>xFoR zD(4qMJjZ;97i?-woBU60wb|^(C%Pk`ZlbV}Bs#12Vr#V(DBo#Hk4=&aRPLmV<*5a{ z8V{ChlLBfQ+5I;;OX54JH5v_OD68G-H^Ur?Hc}Tm%^XUoOrOLiahRnW59nb;xy(ay zL~9r$WJ`p;LqU??kCx6Mq6^4K{f2iAKRSc&{erinJpTf@CS#v*;TGo@=lz>{e!#!R zedMD))KVXXAA@ttWFuB14^Wh!QIRdo$u^c{2dh%!lRU(h>|#eAVNZUcUsItDi3b=R Q_%Y0o4@h~DzR)z}U-!&|&;S4c literal 0 HcmV?d00001 diff --git a/Tetris/bin/tetris/TetrisPane$TShaped.class b/Tetris/bin/tetris/TetrisPane$TShaped.class new file mode 100644 index 0000000000000000000000000000000000000000..ef0d1e442e7a64ad08606d070f453927029147aa GIT binary patch literal 629 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 W;Yuv*!(E^49rL^=WDhetaPto)+zYJ$ literal 0 HcmV?d00001 diff --git a/Tetris/src/tetris/Cell.java b/Tetris/src/tetris/Cell.java index da74660..9f0f9bd 100644 --- a/Tetris/src/tetris/Cell.java +++ b/Tetris/src/tetris/Cell.java @@ -4,13 +4,13 @@ import java.awt.Graphics; /** - * + * Cell class for Tetris game * @author Leslie Leung */ public class Cell { - public static final int CELL_SIZE = 25; //һĴС + public static final int CELL_SIZE = 25; - /* ӵɫ */ + /* Color constants for cells */ public static final int COLOR_CYAN = 0; public static final int COLOR_BLUE = 1; public static final int COLOR_GREEN = 2; @@ -19,18 +19,18 @@ public class Cell { public static final int COLOR_RED = 5; public static final int COLOR_PINK = 6; - private int color; //ӵɫ - private int x; // - private int y; // + private int color; + private int x; + private int y; /** - * 췽 - * @param x - * @param y - * @param style ӵʽͨɫָ + * Constructor + * @param x X coordinate + * @param y Y coordinate + * @param style Style/color of the cell */ public Cell(int x, int y, int style) { - /* ݴʽӵɫ */ + /* Set color based on style */ switch(style) { case 0: color = COLOR_CYAN; break; case 1: color = COLOR_BLUE; break; @@ -46,40 +46,48 @@ public Cell(int x, int y, int style) { } /** - * øøӵĺ - * @param newX µĺ + * Set X coordinate + * @param newX New X coordinate */ public void setX(int newX) { x = newX; } /** - * øøӵ - * @param newY µ + * Set Y coordinate + * @param newY New Y coordinate */ public void setY(int newY) { y = newY; } /** - * ȡCellĺ - * @return + * Get X coordinate + * @return X coordinate */ public int getX() { return x; } /** - * ȡCell - * @return + * Get Y coordinate + * @return Y coordinate */ public int getY() { return y; } + + /** + * Get color + * @return Color + */ + public int getColor() { + return color; + } /** - * ͼ - * @param g Graphics + * Paint the cell + * @param g Graphics object */ public void paintCell(Graphics g) { switch(color) { @@ -106,4 +114,4 @@ public void paintCell(Graphics g) { break; } } -} +} \ No newline at end of file diff --git a/Tetris/src/tetris/GameConfig.java b/Tetris/src/tetris/GameConfig.java new file mode 100644 index 0000000..2486515 --- /dev/null +++ b/Tetris/src/tetris/GameConfig.java @@ -0,0 +1,124 @@ +package tetris; + +import java.io.Serializable; + +public class GameConfig implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DIFFICULTY_EASY = 0; + public static final int DIFFICULTY_MEDIUM = 1; + public static final int DIFFICULTY_HARD = 2; + + public static final int LANGUAGE_CHINESE = 0; + public static final int LANGUAGE_ENGLISH = 1; + + public static final int RESOLUTION_SMALL = 0; + public static final int RESOLUTION_MEDIUM = 1; + public static final int RESOLUTION_LARGE = 2; + + private int difficulty; + private int language; + private int resolution; + private int cellSize; + + public GameConfig() { + this.difficulty = DIFFICULTY_MEDIUM; + this.language = LANGUAGE_CHINESE; + this.resolution = RESOLUTION_MEDIUM; + this.cellSize = 25; + } + + public int getDifficulty() { + return difficulty; + } + + public void setDifficulty(int difficulty) { + this.difficulty = difficulty; + } + + public int getLanguage() { + return language; + } + + public void setLanguage(int language) { + this.language = language; + } + + public int getResolution() { + return resolution; + } + + public void setResolution(int resolution) { + this.resolution = resolution; + switch(resolution) { + case RESOLUTION_SMALL: + cellSize = 20; + break; + case RESOLUTION_MEDIUM: + cellSize = 25; + break; + case RESOLUTION_LARGE: + cellSize = 30; + break; + } + } + + public int getCellSize() { + return cellSize; + } + + public int getSpeedMultiplier() { + switch(difficulty) { + case DIFFICULTY_EASY: + return 2; + case DIFFICULTY_MEDIUM: + return 1; + case DIFFICULTY_HARD: + return 0; + default: + return 1; + } + } + + public String getDifficultyText() { + switch(language) { + case LANGUAGE_CHINESE: + switch(difficulty) { + case DIFFICULTY_EASY: return "简单"; + case DIFFICULTY_MEDIUM: return "中等"; + case DIFFICULTY_HARD: return "困难"; + default: return "中等"; + } + case LANGUAGE_ENGLISH: + switch(difficulty) { + case DIFFICULTY_EASY: return "Easy"; + case DIFFICULTY_MEDIUM: return "Medium"; + case DIFFICULTY_HARD: return "Hard"; + default: return "Medium"; + } + default: + return "中等"; + } + } + + public String getResolutionText() { + switch(language) { + case LANGUAGE_CHINESE: + switch(resolution) { + case RESOLUTION_SMALL: return "小"; + case RESOLUTION_MEDIUM: return "中"; + case RESOLUTION_LARGE: return "大"; + default: return "中"; + } + case LANGUAGE_ENGLISH: + switch(resolution) { + case RESOLUTION_SMALL: return "Small"; + case RESOLUTION_MEDIUM: return "Medium"; + case RESOLUTION_LARGE: return "Large"; + default: return "Medium"; + } + default: + return "中"; + } + } +} \ No newline at end of file diff --git a/Tetris/src/tetris/GameManager.java b/Tetris/src/tetris/GameManager.java new file mode 100644 index 0000000..f2db32d --- /dev/null +++ b/Tetris/src/tetris/GameManager.java @@ -0,0 +1,144 @@ +package tetris; + +import javax.swing.JFrame; +import javax.swing.JPanel; + +public class GameManager { + private static GameManager instance; + + private JFrame mainFrame; + private GameConfig config; + private GameState state; + + public static final int SCENE_MENU = 0; + public static final int SCENE_GAME = 1; + public static final int SCENE_SETTINGS = 2; + public static final int SCENE_GAME_OVER = 3; + + private int currentScene; + + private MenuPanel menuPanel; + private TetrisPane gamePanel; + private SettingsPanel settingsPanel; + private GameOverPanel gameOverPanel; + + private GameManager() { + config = new GameConfig(); + state = new GameState(); + currentScene = SCENE_MENU; + } + + public static GameManager getInstance() { + if (instance == null) { + instance = new GameManager(); + } + return instance; + } + + public void setMainFrame(JFrame frame) { + this.mainFrame = frame; + } + + public GameConfig getConfig() { + return config; + } + + public GameState getState() { + return state; + } + + public JFrame getMainFrame() { + return mainFrame; + } + + public int getCurrentScene() { + return currentScene; + } + + public void setScene(int sceneType) { + if (mainFrame == null) { + return; + } + + JPanel currentPanel = getCurrentPanel(); + if (currentPanel != null) { + mainFrame.remove(currentPanel); + } + + JPanel newPanel = getPanelForScene(sceneType); + if (newPanel != null) { + mainFrame.add(newPanel); + mainFrame.revalidate(); + mainFrame.repaint(); + newPanel.requestFocusInWindow(); + } + + currentScene = sceneType; + } + + private JPanel getCurrentPanel() { + switch (currentScene) { + case SCENE_MENU: + return menuPanel; + case SCENE_GAME: + return gamePanel; + case SCENE_SETTINGS: + return settingsPanel; + case SCENE_GAME_OVER: + return gameOverPanel; + default: + return null; + } + } + + private JPanel getPanelForScene(int sceneType) { + switch (sceneType) { + case SCENE_MENU: + if (menuPanel == null) { + menuPanel = new MenuPanel(); + } + return menuPanel; + + case SCENE_GAME: + if (gamePanel == null) { + gamePanel = new TetrisPane(); + } + gamePanel.resetGame(); + state.reset(); + state.startGame(); + return gamePanel; + + case SCENE_SETTINGS: + if (settingsPanel == null) { + settingsPanel = new SettingsPanel(); + } + return settingsPanel; + + case SCENE_GAME_OVER: + if (gameOverPanel == null) { + gameOverPanel = new GameOverPanel(); + } + return gameOverPanel; + + default: + return null; + } + } + + public void startNewGame() { + setScene(SCENE_GAME); + } + + public void showMenu() { + setScene(SCENE_MENU); + } + + public void showSettings() { + setScene(SCENE_SETTINGS); + } + + public void showGameOver() { + state.endGame(); + setScene(SCENE_GAME_OVER); + } +} \ No newline at end of file diff --git a/Tetris/src/tetris/GameOverPanel.java b/Tetris/src/tetris/GameOverPanel.java new file mode 100644 index 0000000..0a66c48 --- /dev/null +++ b/Tetris/src/tetris/GameOverPanel.java @@ -0,0 +1,203 @@ +package tetris; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.SwingConstants; + +public class GameOverPanel extends JPanel { + private static final long serialVersionUID = 1L; + + private GameManager gameManager; + private GameConfig config; + private GameState state; + + private JLabel titleLabel; + private JLabel scoreLabel; + private JLabel levelLabel; + private JLabel linesLabel; + private JLabel timeLabel; + private JButton restartButton; + private JButton menuButton; + + private static final Color BACKGROUND_COLOR = new Color(30, 30, 50); + private static final Color TITLE_COLOR = new Color(255, 100, 100); + private static final Color LABEL_COLOR = Color.WHITE; + private static final Color VALUE_COLOR = new Color(100, 200, 255); + private static final Color BUTTON_COLOR = new Color(70, 130, 180); + private static final Color BUTTON_HOVER_COLOR = new Color(100, 160, 210); + private static final Color PANEL_COLOR = new Color(40, 40, 70); + + public GameOverPanel() { + gameManager = GameManager.getInstance(); + config = gameManager.getConfig(); + state = gameManager.getState(); + + setBackground(BACKGROUND_COLOR); + setLayout(new BorderLayout()); + + initComponents(); + setupLayout(); + } + + private void initComponents() { + titleLabel = new JLabel(getGameOverText()); + titleLabel.setFont(new Font("Arial", Font.BOLD, 48)); + titleLabel.setForeground(TITLE_COLOR); + titleLabel.setHorizontalAlignment(SwingConstants.CENTER); + + scoreLabel = new JLabel(getScoreText() + ": 0"); + scoreLabel.setFont(new Font("Arial", Font.PLAIN, 20)); + scoreLabel.setForeground(LABEL_COLOR); + + levelLabel = new JLabel(getLevelText() + ": 1"); + levelLabel.setFont(new Font("Arial", Font.PLAIN, 20)); + levelLabel.setForeground(LABEL_COLOR); + + linesLabel = new JLabel(getLinesText() + ": 0"); + linesLabel.setFont(new Font("Arial", Font.PLAIN, 20)); + linesLabel.setForeground(LABEL_COLOR); + + timeLabel = new JLabel(getTimeText() + ": 00:00"); + timeLabel.setFont(new Font("Arial", Font.PLAIN, 20)); + timeLabel.setForeground(LABEL_COLOR); + + restartButton = createStyledButton(getRestartText()); + restartButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gameManager.startNewGame(); + } + }); + + menuButton = createStyledButton(getMenuText()); + menuButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gameManager.showMenu(); + } + }); + } + + private void setupLayout() { + JPanel titlePanel = new JPanel(); + titlePanel.setBackground(BACKGROUND_COLOR); + titlePanel.setBorder(BorderFactory.createEmptyBorder(30, 0, 20, 0)); + titlePanel.add(titleLabel); + add(titlePanel, BorderLayout.NORTH); + + JPanel statsPanel = new JPanel(); + statsPanel.setBackground(PANEL_COLOR); + statsPanel.setBorder(BorderFactory.createEmptyBorder(20, 40, 20, 40)); + statsPanel.setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.insets = new Insets(15, 15, 15, 15); + gbc.anchor = GridBagConstraints.WEST; + gbc.gridx = 0; + gbc.gridy = 0; + + statsPanel.add(scoreLabel, gbc); + + gbc.gridy = 1; + statsPanel.add(levelLabel, gbc); + + gbc.gridy = 2; + statsPanel.add(linesLabel, gbc); + + gbc.gridy = 3; + statsPanel.add(timeLabel, gbc); + + JPanel centerPanel = new JPanel(); + centerPanel.setBackground(BACKGROUND_COLOR); + centerPanel.add(statsPanel); + add(centerPanel, BorderLayout.CENTER); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setBackground(BACKGROUND_COLOR); + buttonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 40, 20)); + + buttonPanel.add(restartButton); + buttonPanel.add(menuButton); + + add(buttonPanel, BorderLayout.SOUTH); + } + + private JButton createStyledButton(String text) { + JButton button = new JButton(text); + button.setFont(new Font("Arial", Font.BOLD, 18)); + button.setForeground(Color.WHITE); + button.setBackground(BUTTON_COLOR); + button.setFocusPainted(false); + button.setBorderPainted(false); + button.setOpaque(true); + button.setPreferredSize(new Dimension(150, 50)); + + button.addMouseListener(new java.awt.event.MouseAdapter() { + @Override + public void mouseEntered(java.awt.event.MouseEvent evt) { + button.setBackground(BUTTON_HOVER_COLOR); + } + + @Override + public void mouseExited(java.awt.event.MouseEvent evt) { + button.setBackground(BUTTON_COLOR); + } + }); + + return button; + } + + public void updateStats() { + scoreLabel.setText(getScoreText() + ": " + state.getScore()); + levelLabel.setText(getLevelText() + ": " + state.getLevel()); + linesLabel.setText(getLinesText() + ": " + state.getLines()); + timeLabel.setText(getTimeText() + ": " + state.getFormattedTime()); + } + + @Override + public void setVisible(boolean visible) { + super.setVisible(visible); + if (visible) { + updateStats(); + } + } + + private String getGameOverText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "游戏结束" : "Game Over"; + } + + private String getScoreText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "分数" : "Score"; + } + + private String getLevelText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "等级" : "Level"; + } + + private String getLinesText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "消除行数" : "Lines Cleared"; + } + + private String getTimeText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "游戏时间" : "Time"; + } + + private String getRestartText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "重新开始" : "Restart"; + } + + private String getMenuText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "返回主菜单" : "Main Menu"; + } +} \ No newline at end of file diff --git a/Tetris/src/tetris/GameState.java b/Tetris/src/tetris/GameState.java new file mode 100644 index 0000000..d05c646 --- /dev/null +++ b/Tetris/src/tetris/GameState.java @@ -0,0 +1,121 @@ +package tetris; + +public class GameState { + private int score; + private int level; + private int lines; + private int tetrominoCount; + private long startTime; + private long elapsedTime; + private boolean isPlaying; + private boolean isPaused; + + public GameState() { + reset(); + } + + public void reset() { + this.score = 0; + this.level = 1; + this.lines = 0; + this.tetrominoCount = 0; + this.startTime = 0; + this.elapsedTime = 0; + this.isPlaying = false; + this.isPaused = false; + } + + public void startGame() { + this.startTime = System.currentTimeMillis(); + this.isPlaying = true; + this.isPaused = false; + } + + public void pauseGame() { + if (isPlaying && !isPaused) { + elapsedTime += System.currentTimeMillis() - startTime; + isPaused = true; + } + } + + public void resumeGame() { + if (isPlaying && isPaused) { + startTime = System.currentTimeMillis(); + isPaused = false; + } + } + + public void endGame() { + if (isPlaying) { + elapsedTime += System.currentTimeMillis() - startTime; + isPlaying = false; + } + } + + public void addLines(int lines) { + this.lines += lines; + this.tetrominoCount++; + + switch (lines) { + case 1: + score += 100 * level; + break; + case 2: + score += 300 * level; + break; + case 3: + score += 500 * level; + break; + case 4: + score += 800 * level; + break; + } + + updateLevel(); + } + + private void updateLevel() { + int newLevel = (lines / 10) + 1; + if (newLevel != level) { + level = newLevel; + } + } + + public int getScore() { + return score; + } + + public int getLevel() { + return level; + } + + public int getLines() { + return lines; + } + + public int getTetrominoCount() { + return tetrominoCount; + } + + public long getElapsedTime() { + if (isPlaying && !isPaused) { + return elapsedTime + (System.currentTimeMillis() - startTime); + } + return elapsedTime; + } + + public boolean isPlaying() { + return isPlaying; + } + + public boolean isPaused() { + return isPaused; + } + + public String getFormattedTime() { + long totalSeconds = getElapsedTime() / 1000; + long minutes = totalSeconds / 60; + long seconds = totalSeconds % 60; + return String.format("%02d:%02d", minutes, seconds); + } +} \ No newline at end of file diff --git a/Tetris/src/tetris/MenuPanel.java b/Tetris/src/tetris/MenuPanel.java new file mode 100644 index 0000000..4134be3 --- /dev/null +++ b/Tetris/src/tetris/MenuPanel.java @@ -0,0 +1,167 @@ +package tetris; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Graphics; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JPanel; + +public class MenuPanel extends JPanel { + private static final long serialVersionUID = 1L; + + private GameManager gameManager; + private GameConfig config; + + private JLabel titleLabel; + private JButton startButton; + private JButton settingsButton; + private JButton exitButton; + + private static final Color BACKGROUND_COLOR = new Color(30, 30, 50); + private static final Color TITLE_COLOR = new Color(100, 200, 255); + private static final Color BUTTON_COLOR = new Color(70, 130, 180); + private static final Color BUTTON_HOVER_COLOR = new Color(100, 160, 210); + private static final Color BUTTON_TEXT_COLOR = Color.WHITE; + + public MenuPanel() { + gameManager = GameManager.getInstance(); + config = gameManager.getConfig(); + + setBackground(BACKGROUND_COLOR); + setLayout(new BorderLayout()); + + initComponents(); + setupLayout(); + } + + private void initComponents() { + titleLabel = new JLabel("TETRIS"); + titleLabel.setFont(new Font("Arial", Font.BOLD, 72)); + titleLabel.setForeground(TITLE_COLOR); + titleLabel.setHorizontalAlignment(JLabel.CENTER); + + startButton = createStyledButton(getStartText()); + startButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gameManager.startNewGame(); + } + }); + + settingsButton = createStyledButton(getSettingsText()); + settingsButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gameManager.showSettings(); + } + }); + + exitButton = createStyledButton(getExitText()); + exitButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.exit(0); + } + }); + } + + private void setupLayout() { + JPanel centerPanel = new JPanel(); + centerPanel.setBackground(BACKGROUND_COLOR); + centerPanel.setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.insets = new Insets(20, 0, 40, 0); + gbc.anchor = GridBagConstraints.CENTER; + centerPanel.add(titleLabel, gbc); + + gbc.gridy = 1; + gbc.insets = new Insets(10, 0, 10, 0); + gbc.fill = GridBagConstraints.HORIZONTAL; + centerPanel.add(startButton, gbc); + + gbc.gridy = 2; + centerPanel.add(settingsButton, gbc); + + gbc.gridy = 3; + centerPanel.add(exitButton, gbc); + + add(centerPanel, BorderLayout.CENTER); + + JPanel infoPanel = new JPanel(); + infoPanel.setBackground(BACKGROUND_COLOR); + JLabel infoLabel = new JLabel(getControlsText()); + infoLabel.setForeground(Color.LIGHT_GRAY); + infoLabel.setFont(new Font("Arial", Font.PLAIN, 12)); + infoPanel.add(infoLabel); + add(infoPanel, BorderLayout.SOUTH); + } + + private JButton createStyledButton(String text) { + JButton button = new JButton(text); + button.setFont(new Font("Arial", Font.BOLD, 18)); + button.setForeground(BUTTON_TEXT_COLOR); + button.setBackground(BUTTON_COLOR); + button.setFocusPainted(false); + button.setBorderPainted(false); + button.setOpaque(true); + button.setPreferredSize(new Dimension(200, 50)); + + button.addMouseListener(new java.awt.event.MouseAdapter() { + @Override + public void mouseEntered(java.awt.event.MouseEvent evt) { + button.setBackground(BUTTON_HOVER_COLOR); + } + + @Override + public void mouseExited(java.awt.event.MouseEvent evt) { + button.setBackground(BUTTON_COLOR); + } + }); + + return button; + } + + private String getStartText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "开始游戏" : "Start Game"; + } + + private String getSettingsText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "设置" : "Settings"; + } + + private String getExitText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "退出" : "Exit"; + } + + private String getControlsText() { + if (config.getLanguage() == GameConfig.LANGUAGE_CHINESE) { + return "控制: 方向键移动 | A逆时针旋转 | D顺时针旋转 | 空格硬降"; + } else { + return "Controls: Arrow keys move | A rotate CCW | D rotate CW | Space hard drop"; + } + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + g.setColor(new Color(50, 50, 80, 30)); + for (int i = 0; i < 20; i++) { + int x = (int) (Math.random() * getWidth()); + int y = (int) (Math.random() * getHeight()); + int size = 20 + (int) (Math.random() * 40); + g.fillRect(x, y, size, size); + } + } +} \ No newline at end of file diff --git a/Tetris/src/tetris/SettingsPanel.java b/Tetris/src/tetris/SettingsPanel.java new file mode 100644 index 0000000..a86a6e4 --- /dev/null +++ b/Tetris/src/tetris/SettingsPanel.java @@ -0,0 +1,295 @@ +package tetris; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Hashtable; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JSlider; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +public class SettingsPanel extends JPanel { + private static final long serialVersionUID = 1L; + + private GameManager gameManager; + private GameConfig config; + + private JLabel titleLabel; + private JLabel difficultyLabel; + private JComboBox difficultyCombo; + private JLabel resolutionLabel; + private JComboBox resolutionCombo; + private JLabel languageLabel; + private JComboBox languageCombo; + private JButton backButton; + private JButton applyButton; + + private static final Color BACKGROUND_COLOR = new Color(30, 30, 50); + private static final Color TITLE_COLOR = new Color(100, 200, 255); + private static final Color LABEL_COLOR = Color.WHITE; + private static final Color BUTTON_COLOR = new Color(70, 130, 180); + private static final Color BUTTON_HOVER_COLOR = new Color(100, 160, 210); + private static final Color PANEL_COLOR = new Color(40, 40, 70); + + private int tempDifficulty; + private int tempResolution; + private int tempLanguage; + + public SettingsPanel() { + gameManager = GameManager.getInstance(); + config = gameManager.getConfig(); + + tempDifficulty = config.getDifficulty(); + tempResolution = config.getResolution(); + tempLanguage = config.getLanguage(); + + setBackground(BACKGROUND_COLOR); + setLayout(new BorderLayout()); + + initComponents(); + setupLayout(); + } + + private void initComponents() { + titleLabel = new JLabel(getSettingsTitleText()); + titleLabel.setFont(new Font("Arial", Font.BOLD, 36)); + titleLabel.setForeground(TITLE_COLOR); + titleLabel.setHorizontalAlignment(JLabel.CENTER); + + difficultyLabel = new JLabel(getDifficultyText() + ":"); + difficultyLabel.setFont(new Font("Arial", Font.PLAIN, 16)); + difficultyLabel.setForeground(LABEL_COLOR); + + String[] difficultyOptions = getDifficultyOptions(); + difficultyCombo = new JComboBox<>(difficultyOptions); + difficultyCombo.setSelectedIndex(tempDifficulty); + difficultyCombo.setFont(new Font("Arial", Font.PLAIN, 14)); + difficultyCombo.setPreferredSize(new Dimension(150, 30)); + difficultyCombo.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + tempDifficulty = difficultyCombo.getSelectedIndex(); + } + }); + + resolutionLabel = new JLabel(getResolutionText() + ":"); + resolutionLabel.setFont(new Font("Arial", Font.PLAIN, 16)); + resolutionLabel.setForeground(LABEL_COLOR); + + String[] resolutionOptions = getResolutionOptions(); + resolutionCombo = new JComboBox<>(resolutionOptions); + resolutionCombo.setSelectedIndex(tempResolution); + resolutionCombo.setFont(new Font("Arial", Font.PLAIN, 14)); + resolutionCombo.setPreferredSize(new Dimension(150, 30)); + resolutionCombo.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + tempResolution = resolutionCombo.getSelectedIndex(); + } + }); + + languageLabel = new JLabel(getLanguageText() + ":"); + languageLabel.setFont(new Font("Arial", Font.PLAIN, 16)); + languageLabel.setForeground(LABEL_COLOR); + + String[] languageOptions = getLanguageOptions(); + languageCombo = new JComboBox<>(languageOptions); + languageCombo.setSelectedIndex(tempLanguage); + languageCombo.setFont(new Font("Arial", Font.PLAIN, 14)); + languageCombo.setPreferredSize(new Dimension(150, 30)); + languageCombo.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + tempLanguage = languageCombo.getSelectedIndex(); + updateLanguageTexts(); + } + }); + + backButton = createStyledButton(getBackText()); + backButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + gameManager.showMenu(); + } + }); + + applyButton = createStyledButton(getApplyText()); + applyButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + applySettings(); + gameManager.showMenu(); + } + }); + } + + private void setupLayout() { + JPanel titlePanel = new JPanel(); + titlePanel.setBackground(BACKGROUND_COLOR); + titlePanel.add(titleLabel); + add(titlePanel, BorderLayout.NORTH); + + JPanel settingsPanel = new JPanel(); + settingsPanel.setBackground(PANEL_COLOR); + settingsPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); + settingsPanel.setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.insets = new Insets(15, 15, 15, 15); + gbc.anchor = GridBagConstraints.WEST; + + gbc.gridx = 0; + gbc.gridy = 0; + settingsPanel.add(difficultyLabel, gbc); + + gbc.gridx = 1; + settingsPanel.add(difficultyCombo, gbc); + + gbc.gridx = 0; + gbc.gridy = 1; + settingsPanel.add(resolutionLabel, gbc); + + gbc.gridx = 1; + settingsPanel.add(resolutionCombo, gbc); + + gbc.gridx = 0; + gbc.gridy = 2; + settingsPanel.add(languageLabel, gbc); + + gbc.gridx = 1; + settingsPanel.add(languageCombo, gbc); + + JPanel centerPanel = new JPanel(); + centerPanel.setBackground(BACKGROUND_COLOR); + centerPanel.add(settingsPanel); + add(centerPanel, BorderLayout.CENTER); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setBackground(BACKGROUND_COLOR); + buttonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); + + buttonPanel.add(backButton); + buttonPanel.add(applyButton); + + add(buttonPanel, BorderLayout.SOUTH); + } + + private JButton createStyledButton(String text) { + JButton button = new JButton(text); + button.setFont(new Font("Arial", Font.BOLD, 16)); + button.setForeground(Color.WHITE); + button.setBackground(BUTTON_COLOR); + button.setFocusPainted(false); + button.setBorderPainted(false); + button.setOpaque(true); + button.setPreferredSize(new Dimension(120, 40)); + + button.addMouseListener(new java.awt.event.MouseAdapter() { + @Override + public void mouseEntered(java.awt.event.MouseEvent evt) { + button.setBackground(BUTTON_HOVER_COLOR); + } + + @Override + public void mouseExited(java.awt.event.MouseEvent evt) { + button.setBackground(BUTTON_COLOR); + } + }); + + return button; + } + + private void applySettings() { + config.setDifficulty(tempDifficulty); + config.setResolution(tempResolution); + config.setLanguage(tempLanguage); + + javax.swing.JFrame frame = gameManager.getMainFrame(); + if (frame != null && frame instanceof TetrisFrame) { + ((TetrisFrame) frame).updateWindowSize(); + } + } + + private void updateLanguageTexts() { + titleLabel.setText(getSettingsTitleText()); + difficultyLabel.setText(getDifficultyText() + ":"); + resolutionLabel.setText(getResolutionText() + ":"); + languageLabel.setText(getLanguageText() + ":"); + backButton.setText(getBackText()); + applyButton.setText(getApplyText()); + + updateComboBoxModels(); + } + + private void updateComboBoxModels() { + String[] difficultyOptions = getDifficultyOptions(); + int selectedDifficulty = difficultyCombo.getSelectedIndex(); + difficultyCombo.setModel(new javax.swing.DefaultComboBoxModel<>(difficultyOptions)); + difficultyCombo.setSelectedIndex(selectedDifficulty); + + String[] resolutionOptions = getResolutionOptions(); + int selectedResolution = resolutionCombo.getSelectedIndex(); + resolutionCombo.setModel(new javax.swing.DefaultComboBoxModel<>(resolutionOptions)); + resolutionCombo.setSelectedIndex(selectedResolution); + + String[] languageOptions = getLanguageOptions(); + int selectedLanguage = languageCombo.getSelectedIndex(); + languageCombo.setModel(new javax.swing.DefaultComboBoxModel<>(languageOptions)); + languageCombo.setSelectedIndex(selectedLanguage); + } + + private String getSettingsTitleText() { + return tempLanguage == GameConfig.LANGUAGE_CHINESE ? "设置" : "Settings"; + } + + private String getDifficultyText() { + return tempLanguage == GameConfig.LANGUAGE_CHINESE ? "难度" : "Difficulty"; + } + + private String getResolutionText() { + return tempLanguage == GameConfig.LANGUAGE_CHINESE ? "分辨率" : "Resolution"; + } + + private String getLanguageText() { + return tempLanguage == GameConfig.LANGUAGE_CHINESE ? "语言" : "Language"; + } + + private String getBackText() { + return tempLanguage == GameConfig.LANGUAGE_CHINESE ? "返回" : "Back"; + } + + private String getApplyText() { + return tempLanguage == GameConfig.LANGUAGE_CHINESE ? "应用" : "Apply"; + } + + private String[] getDifficultyOptions() { + if (tempLanguage == GameConfig.LANGUAGE_CHINESE) { + return new String[]{"简单", "中等", "困难"}; + } else { + return new String[]{"Easy", "Medium", "Hard"}; + } + } + + private String[] getResolutionOptions() { + if (tempLanguage == GameConfig.LANGUAGE_CHINESE) { + return new String[]{"小", "中", "大"}; + } else { + return new String[]{"Small", "Medium", "Large"}; + } + } + + private String[] getLanguageOptions() { + return new String[]{"中文", "English"}; + } +} \ No newline at end of file diff --git a/Tetris/src/tetris/TetrisFrame.java b/Tetris/src/tetris/TetrisFrame.java index 38c1a6b..5a4a027 100644 --- a/Tetris/src/tetris/TetrisFrame.java +++ b/Tetris/src/tetris/TetrisFrame.java @@ -1,42 +1,56 @@ package tetris; -import java.awt.FlowLayout; +import java.awt.BorderLayout; import javax.swing.JFrame; -import javax.swing.JLabel; /** - * + * 主窗口类 * @author Leslie Leung */ public class TetrisFrame extends JFrame { - private TetrisPane tp; //˹Ϸ - private JLabel mention; //ϷʾϢ + private static final long serialVersionUID = 1L; + + private GameManager gameManager; /** - * 췽 + * 构造函数 */ public TetrisFrame() { - setSize(550, 600); //ôС + setTitle("Tetris"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setLocationRelativeTo(null); //ôĻ - setTitle("Tetris"); //ñΪTetris - setResizable(false); // - setLayout(new FlowLayout()); //òֹ - - tp = new TetrisPane(); //½ - mention = new JLabel("AʱתD˳ʱתҺµ˶ոӲ"); + setLocationRelativeTo(null); + setResizable(false); + setLayout(new BorderLayout()); - add(mention); //ѱǩӵ - add(tp); //Ϸӵ + gameManager = GameManager.getInstance(); + gameManager.setMainFrame(this); - /* ע¼ */ - addKeyListener(tp.getInnerInstanceOfKeyControl()); - tp.addKeyListener(tp.getInnerInstanceOfKeyControl()); + configureWindowSize(); + gameManager.setScene(GameManager.SCENE_MENU); setVisible(true); } + private void configureWindowSize() { + GameConfig config = gameManager.getConfig(); + int cellSize = config.getCellSize(); + int width = cellSize * TetrisPane.COLUMNS + 200; + int height = cellSize * TetrisPane.ROWS + 100; + + setSize(width, height); + setLocationRelativeTo(null); + } + + public void updateWindowSize() { + configureWindowSize(); + } + public static void main(String[] args) { - new TetrisFrame(); + javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + new TetrisFrame(); + } + }); } } diff --git a/Tetris/src/tetris/TetrisPane.java b/Tetris/src/tetris/TetrisPane.java index b13449e..7f3d743 100644 --- a/Tetris/src/tetris/TetrisPane.java +++ b/Tetris/src/tetris/TetrisPane.java @@ -1,26 +1,34 @@ package tetris; +import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; +import java.awt.GradientPaint; import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.RenderingHints; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Arrays; import java.util.Random; import java.util.Timer; import java.util.TimerTask; +import javax.swing.BorderFactory; +import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; +import javax.swing.SwingConstants; +import javax.swing.border.Border; /** - * ˹Ϸ + * 俄罗斯方块游戏面板 * @author Leslie Leung */ public class TetrisPane extends JPanel { - public static final int ROWS = 20; // - public static final int COLUMNS = 16; // + public static final int ROWS = 20; + public static final int COLUMNS = 16; - /* ʾ7ֲͬĸ񷽿 */ public static final int I_SHAPED = 0; public static final int S_SHAPED = 1; public static final int T_SHAPED = 2; @@ -29,221 +37,557 @@ public class TetrisPane extends JPanel { public static final int O_SHAPED = 5; public static final int J_SHAPED = 6; - public static final int KIND = 7; //ʾĸ񷽿7 - public static final int INIT_SPEED = 1000; //ʾijʼٶ + public static final int KIND = 7; + public static final int INIT_SPEED = 1000; - private static int randomNum = 0; //ʾɵĶ˹Ŀ + private static int randomNum = 0; + + private GameManager gameManager; + private GameConfig config; + private GameState state; private Random random; - private Tetromino currentTetromino; //ʾǰĸ񷽿 - private Cell[][] wall; //ʾǽnullʾû - private Timer autoDrop; //ʵԶļʱ - private KeyControl keyListener; //ʾ¼ر + private Tetromino currentTetromino; + private Cell[][] wall; + private Timer autoDrop; + private KeyControl keyListener; + private Timer updateTimer; + + private JPanel infoPanel; + private JLabel scoreLabel; + private JLabel levelLabel; + private JLabel linesLabel; + private JLabel timeLabel; + private JLabel nextPieceLabel; + private JLabel controlsLabel; + + private static final Color BACKGROUND_COLOR = new Color(20, 20, 40); + private static final Color GRID_COLOR = new Color(40, 40, 70); + private static final Color INFO_PANEL_COLOR = new Color(30, 30, 60); + private static final Color LABEL_COLOR = new Color(100, 200, 255); + private static final Color VALUE_COLOR = Color.WHITE; /** - * 췽 + * 构造函数 */ public TetrisPane() { - setPreferredSize(new Dimension(COLUMNS * Cell.CELL_SIZE, ROWS * Cell.CELL_SIZE)); + gameManager = GameManager.getInstance(); + config = gameManager.getConfig(); + state = gameManager.getState(); + + setBackground(BACKGROUND_COLOR); + setLayout(new BorderLayout()); random = new Random(); wall = new Cell[ROWS][COLUMNS]; autoDrop = new Timer(); keyListener = new KeyControl(); + initInfoPanel(); + setupLayout(); + + setFocusable(true); + addKeyListener(keyListener); + } + + private void initInfoPanel() { + infoPanel = new JPanel(); + infoPanel.setBackground(INFO_PANEL_COLOR); + infoPanel.setPreferredSize(new Dimension(180, 0)); + infoPanel.setLayout(null); + infoPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + + int y = 20; + int labelHeight = 40; + int gap = 15; + + scoreLabel = createInfoLabel(getScoreText(), "0", y); + y += labelHeight + gap; + + levelLabel = createInfoLabel(getLevelText(), "1", y); + y += labelHeight + gap; + + linesLabel = createInfoLabel(getLinesText(), "0", y); + y += labelHeight + gap; + + timeLabel = createInfoLabel(getTimeText(), "00:00", y); + y += labelHeight + gap; + + nextPieceLabel = createInfoLabel(getNextText(), "", y); + nextPieceLabel.setVerticalAlignment(SwingConstants.TOP); + y += labelHeight + gap + 100; + + controlsLabel = createInfoLabel(getControlsTitleText(), "", y); + controlsLabel.setFont(new Font("Arial", Font.BOLD, 14)); + y += labelHeight; + + JLabel[] controlLabels = createControlLabels(); + for (JLabel label : controlLabels) { + label.setBounds(20, y, 140, 25); + label.setForeground(Color.LIGHT_GRAY); + infoPanel.add(label); + y += 25; + } + + infoPanel.add(scoreLabel); + infoPanel.add(levelLabel); + infoPanel.add(linesLabel); + infoPanel.add(timeLabel); + infoPanel.add(nextPieceLabel); + infoPanel.add(controlsLabel); + } + + private JLabel createInfoLabel(String text, String value, int y) { + JLabel label = new JLabel("" + text + "
" + value + ""); + label.setBounds(20, y, 140, 50); + label.setForeground(LABEL_COLOR); + label.setFont(new Font("Arial", Font.BOLD, 14)); + label.setVerticalAlignment(SwingConstants.CENTER); + return label; + } + + private JLabel[] createControlLabels() { + if (config.getLanguage() == GameConfig.LANGUAGE_CHINESE) { + return new JLabel[] { + new JLabel("← → 左右移动"), + new JLabel("↓ 下移"), + new JLabel("A 逆时针旋转"), + new JLabel("D 顺时针旋转"), + new JLabel("空格 硬降"), + new JLabel("P 暂停") + }; + } else { + return new JLabel[] { + new JLabel("← → Move Left/Right"), + new JLabel("↓ Move Down"), + new JLabel("A Rotate CCW"), + new JLabel("D Rotate CW"), + new JLabel("Space Hard Drop"), + new JLabel("P Pause") + }; + } + } + + private void setupLayout() { + JPanel gameArea = new JPanel() { + private static final long serialVersionUID = 1L; + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + paintGameArea(g); + } + }; + gameArea.setBackground(BACKGROUND_COLOR); + gameArea.setPreferredSize(new Dimension( + COLUMNS * Cell.CELL_SIZE + 20, + ROWS * Cell.CELL_SIZE + 20 + )); + + add(gameArea, BorderLayout.CENTER); + add(infoPanel, BorderLayout.EAST); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + paintGameArea(g); + } + + private void paintGameArea(Graphics g) { + Graphics2D g2d = (Graphics2D) g; + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + + int cellSize = Cell.CELL_SIZE; + int offsetX = 10; + int offsetY = 10; + + g2d.setColor(new Color(50, 50, 80)); + g2d.fillRect(offsetX - 2, offsetY - 2, COLUMNS * cellSize + 4, ROWS * cellSize + 4); + + g2d.setColor(GRID_COLOR); + for (int i = 0; i < ROWS; i++) { + for (int j = 0; j < COLUMNS; j++) { + g2d.fillRect( + offsetX + j * cellSize + 1, + offsetY + i * cellSize + 1, + cellSize - 2, + cellSize - 2 + ); + } + } + + g2d.setColor(new Color(30, 30, 50)); + for (int i = 0; i <= ROWS; i++) { + g2d.drawLine( + offsetX, + offsetY + i * cellSize, + offsetX + COLUMNS * cellSize, + offsetY + i * cellSize + ); + } + for (int j = 0; j <= COLUMNS; j++) { + g2d.drawLine( + offsetX + j * cellSize, + offsetY, + offsetX + j * cellSize, + offsetY + ROWS * cellSize + ); + } + + for (int i = 0; i < ROWS; i++) { + for (int j = 0; j < COLUMNS; j++) { + if (wall[i][j] != null) { + paintCell(g2d, wall[i][j], offsetX, offsetY); + } + } + } + + if (currentTetromino != null) { + for (Cell cell : getCurrentCells()) { + paintCell(g2d, cell, offsetX, offsetY); + } + + paintGhostPiece(g2d, offsetX, offsetY); + } + + if (state.isPaused()) { + g2d.setColor(new Color(0, 0, 0, 150)); + g2d.fillRect(offsetX, offsetY, COLUMNS * cellSize, ROWS * cellSize); + + g2d.setColor(Color.WHITE); + g2d.setFont(new Font("Arial", Font.BOLD, 36)); + String pauseText = config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "暂停" : "PAUSED"; + int textWidth = g2d.getFontMetrics().stringWidth(pauseText); + g2d.drawString( + pauseText, + offsetX + (COLUMNS * cellSize - textWidth) / 2, + offsetY + ROWS * cellSize / 2 + ); + } + } + + private void paintCell(Graphics2D g2d, Cell cell, int offsetX, int offsetY) { + int cellSize = Cell.CELL_SIZE; + int x = offsetX + cell.getX() * cellSize; + int y = offsetY + cell.getY() * cellSize; + + Color baseColor = getCellColor(cell); + + GradientPaint gradient = new GradientPaint( + x, y, baseColor.brighter(), + x + cellSize, y + cellSize, baseColor.darker() + ); + g2d.setPaint(gradient); + g2d.fillRect(x + 2, y + 2, cellSize - 4, cellSize - 4); + + g2d.setColor(baseColor.brighter()); + g2d.fillRect(x + 2, y + 2, cellSize - 4, 3); + g2d.fillRect(x + 2, y + 2, 3, cellSize - 4); + + g2d.setColor(baseColor.darker().darker()); + g2d.fillRect(x + 2, y + cellSize - 5, cellSize - 4, 3); + g2d.fillRect(x + cellSize - 5, y + 2, 3, cellSize - 4); + } + + private void paintGhostPiece(Graphics2D g2d, int offsetX, int offsetY) { + if (currentTetromino == null) return; + + int cellSize = Cell.CELL_SIZE; + Cell[] ghostCells = calculateGhostPosition(); + + for (Cell cell : ghostCells) { + int x = offsetX + cell.getX() * cellSize; + int y = offsetY + cell.getY() * cellSize; + + Color baseColor = getCellColor(cell); + g2d.setColor(new Color( + baseColor.getRed() / 2, + baseColor.getGreen() / 2, + baseColor.getBlue() / 2, + 100 + )); + + g2d.drawRect(x + 2, y + 2, cellSize - 4, cellSize - 4); + } + } + + private Cell[] calculateGhostPosition() { + if (currentTetromino == null) return new Cell[0]; + + Cell[] cells = getCurrentCells(); + Cell[] ghostCells = new Cell[cells.length]; + + for (int i = 0; i < cells.length; i++) { + ghostCells[i] = new Cell(cells[i].getX(), cells[i].getY(), getCellColorIndex(cells[i])); + } + + while (!isGhostReachBottom(ghostCells)) { + for (Cell cell : ghostCells) { + cell.setY(cell.getY() + 1); + } + } + + return ghostCells; + } + + private boolean isGhostReachBottom(Cell[] cells) { + for (Cell cell : cells) { + int y = cell.getY() + 1; + if (y >= ROWS || (y >= 0 && cell.getX() >= 0 && cell.getX() < COLUMNS && wall[y][cell.getX()] != null)) { + return true; + } + } + return false; + } + + private Color getCellColor(Cell cell) { + switch (cell.getColor()) { + case Cell.COLOR_CYAN: return Color.CYAN; + case Cell.COLOR_BLUE: return Color.BLUE; + case Cell.COLOR_GREEN: return Color.GREEN; + case Cell.COLOR_YELLOW: return Color.YELLOW; + case Cell.COLOR_ORANGE: return Color.ORANGE; + case Cell.COLOR_RED: return Color.RED; + case Cell.COLOR_PINK: return Color.PINK; + default: return Color.GRAY; + } + } + + private int getCellColorIndex(Cell cell) { + switch (cell.getColor()) { + case Cell.COLOR_CYAN: return 0; + case Cell.COLOR_BLUE: return 1; + case Cell.COLOR_GREEN: return 2; + case Cell.COLOR_YELLOW: return 3; + case Cell.COLOR_ORANGE: return 4; + case Cell.COLOR_RED: return 5; + case Cell.COLOR_PINK: return 6; + default: return 0; + } + } + + public void resetGame() { + randomNum = 0; + random = new Random(); + wall = new Cell[ROWS][COLUMNS]; + + if (autoDrop != null) { + autoDrop.cancel(); + } + autoDrop = new Timer(); + + if (updateTimer != null) { + updateTimer.cancel(); + } + randomOne(); - autoDrop.schedule(new DropExecution(), (long)interval(), (long)interval()); + updateTimer = new Timer(); + updateTimer.scheduleAtFixedRate(new TimerTask() { + @Override + public void run() { + updateUI(); + } + }, 0, 1000); + + autoDrop.schedule(new DropExecution(), (long) interval(), (long) interval()); + + updateInfoLabels(); + requestFocusInWindow(); + } + + private void updateInfoLabels() { + if (scoreLabel != null) { + scoreLabel.setText("" + getScoreText() + "
" + state.getScore() + ""); + } + if (levelLabel != null) { + levelLabel.setText("" + getLevelText() + "
" + state.getLevel() + ""); + } + if (linesLabel != null) { + linesLabel.setText("" + getLinesText() + "
" + state.getLines() + ""); + } + if (timeLabel != null) { + timeLabel.setText("" + getTimeText() + "
" + state.getFormattedTime() + ""); + } + } + + @Override + public void updateUI() { + super.updateUI(); + updateInfoLabels(); + repaint(); } - /** - * һĸ񷽿 - */ public void randomOne() { Tetromino tetromino = null; - /* 7ĸ񷽿һ */ - switch(random.nextInt(KIND)) { + switch (random.nextInt(KIND)) { case I_SHAPED: tetromino = new IShaped(); break; case S_SHAPED: tetromino = new SShaped(); - break; + break; case T_SHAPED: tetromino = new TShaped(); - break; + break; case Z_SHAPED: tetromino = new ZShaped(); - break; + break; case L_SHAPED: tetromino = new LShaped(); - break; + break; case O_SHAPED: tetromino = new OShaped(); - break; + break; case J_SHAPED: tetromino = new JShaped(); - break; + break; } - currentTetromino = tetromino; //ǰĸ񷽿Ϊɵĸ񷽿 - randomNum ++; + currentTetromino = tetromino; + randomNum++; } - /** - * жǷ - * @return trueˣfalseû - */ public boolean isGameOver() { - int x, y; //ǰ˹ӵĺ - for(int i = 0; i < getCurrentCells().length; i ++) { + int x, y; + for (int i = 0; i < getCurrentCells().length; i++) { x = getCurrentCells()[i].getX(); y = getCurrentCells()[i].getY(); - if(isContain(x, y)) {//ɵλǷѴڷ󣬴ڵĻʾ + if (isContain(x, y)) { return true; } } - return false; } - /** - * ÿһ˹飬ͨıTimerTaskʱӿٶ - * @return ʱ - */ public double interval() { - return INIT_SPEED * Math.pow((double)39 / 38, 0 - randomNum); + int level = state.getLevel(); + int difficultyMultiplier = config.getSpeedMultiplier(); + return INIT_SPEED * Math.pow((double) 39 / 38, 0 - (randomNum + level * 5)) * (1 + difficultyMultiplier * 0.5); } - /** - * KeyControlʵ - * @return KeyControlʵ - */ public KeyControl getInnerInstanceOfKeyControl() { return keyListener; } - /** - * ڲ࣬ʵֶ˹Զ - * @author Leslie Leung - */ private class DropExecution extends TimerTask { @Override public void run() { - // TODO Auto-generated method stub + if (state.isPaused()) { + return; + } - if(isGameOver()) {// - JOptionPane.showMessageDialog(null, ""); + if (isGameOver()) { autoDrop.cancel(); - removeKeyListener(keyListener); + if (updateTimer != null) { + updateTimer.cancel(); + } + gameManager.showGameOver(); return; } - if(!isReachBottomEdge()) { + if (!isReachBottomEdge()) { currentTetromino.softDrop(); } else { - landIntoWall(); //Ѷ˹ӵǽ - removeRows(); //Уɾ - randomOne(); //½һ˹ + landIntoWall(); + removeRows(); + randomOne(); autoDrop.cancel(); autoDrop = new Timer(); - autoDrop.schedule(new DropExecution(), (long)interval(), (long)interval()); + autoDrop.schedule(new DropExecution(), (long) interval(), (long) interval()); } repaint(); } } - /** - * Ѷ˹ӵǽ - */ public void landIntoWall() { - int x, y; //˹鲻ƶĺ + int x, y; - for(int i = 0; i < getCurrentCells().length; i ++) { + for (int i = 0; i < getCurrentCells().length; i++) { x = getCurrentCells()[i].getX(); y = getCurrentCells()[i].getY(); - wall[y][x] = getCurrentCells()[i]; //ӵǽ + wall[y][x] = getCurrentCells()[i]; } } - /** - * ڲ࣬ʵ̵ּ¼ - * @author Leslie Leung - */ private class KeyControl extends KeyAdapter { @Override public void keyPressed(KeyEvent e) { - switch(e.getKeyCode()) { - case KeyEvent.VK_LEFT: //ƶ - - if(!isReachLeftEdge()) {//˹û߽ʱƶ + if (state.isPaused() && e.getKeyCode() != KeyEvent.VK_P) { + return; + } + + switch (e.getKeyCode()) { + case KeyEvent.VK_LEFT: + if (!isReachLeftEdge()) { currentTetromino.moveLeft(); repaint(); } break; - case KeyEvent.VK_RIGHT: //ƶ - - if(!isReachRightEdge()) {//˹ûұ߽ʱƶ + case KeyEvent.VK_RIGHT: + if (!isReachRightEdge()) { currentTetromino.moveRight(); repaint(); } break; - case KeyEvent.VK_DOWN: //ƶ - - if(!isReachBottomEdge()) {//˹û±߽ʱƶ + case KeyEvent.VK_DOWN: + if (!isReachBottomEdge()) { currentTetromino.softDrop(); repaint(); } - break; - case KeyEvent.VK_SPACE: //Ӳ - - hardDrop(); //Ӳ - landIntoWall(); //ӵǽ - removeRows(); //Уɾ + case KeyEvent.VK_SPACE: + hardDrop(); + landIntoWall(); + removeRows(); randomOne(); autoDrop.cancel(); autoDrop = new Timer(); - autoDrop.schedule(new DropExecution(), (long)interval(), (long)interval()); + autoDrop.schedule(new DropExecution(), (long) interval(), (long) interval()); repaint(); break; - case KeyEvent.VK_D: //˳ʱת - - if(!clockwiseRotateIsOutOfBounds() && !(currentTetromino instanceof OShaped)) {//˹ûԽ䲻ΪOʱת + case KeyEvent.VK_D: + if (!clockwiseRotateIsOutOfBounds() && !(currentTetromino instanceof OShaped)) { currentTetromino.clockwiseRotate(getAxis(), getRotateCells()); repaint(); } break; - case KeyEvent.VK_A: //ʱת - - if(!anticlockwiseRotateIsOutOfBounds() && !(currentTetromino instanceof OShaped)) {//˹ûԽ䲻ΪOʱת + case KeyEvent.VK_A: + if (!anticlockwiseRotateIsOutOfBounds() && !(currentTetromino instanceof OShaped)) { currentTetromino.anticlockwiseRotate(getAxis(), getRotateCells()); repaint(); } break; + + case KeyEvent.VK_P: + togglePause(); + break; } } } - /** - * ڲ࣬Iεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ + private void togglePause() { + if (state.isPaused()) { + state.resumeGame(); + } else { + state.pauseGame(); + } + repaint(); + } + private class IShaped extends Tetromino { - /** - * 췽 - */ public IShaped() { cells = new Cell[4]; @@ -252,7 +596,6 @@ public IShaped() { cells[2] = new Cell(5, 0, Cell.COLOR_CYAN); cells[3] = new Cell(6, 0, Cell.COLOR_CYAN); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -260,14 +603,7 @@ public IShaped() { } } - /** - * ڲ࣬Sεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ private class SShaped extends Tetromino { - /** - * 췽 - */ public SShaped() { cells = new Cell[4]; @@ -276,7 +612,6 @@ public SShaped() { cells[2] = new Cell(3, 1, Cell.COLOR_BLUE); cells[3] = new Cell(4, 1, Cell.COLOR_BLUE); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -284,14 +619,7 @@ public SShaped() { } } - /** - * ڲ࣬Tεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ private class TShaped extends Tetromino { - /** - * 췽 - */ public TShaped() { cells = new Cell[4]; @@ -300,7 +628,6 @@ public TShaped() { cells[2] = new Cell(5, 0, Cell.COLOR_GREEN); cells[3] = new Cell(4, 1, Cell.COLOR_GREEN); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -308,14 +635,7 @@ public TShaped() { } } - /** - * ڲ࣬Zεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ private class ZShaped extends Tetromino { - /** - * 췽 - */ public ZShaped() { cells = new Cell[4]; @@ -324,7 +644,6 @@ public ZShaped() { cells[0] = new Cell(4, 1, Cell.COLOR_ORANGE); cells[3] = new Cell(5, 1, Cell.COLOR_ORANGE); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -332,14 +651,7 @@ public ZShaped() { } } - /** - * ڲ࣬Lεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ private class LShaped extends Tetromino { - /** - * 췽 - */ public LShaped() { cells = new Cell[4]; @@ -348,7 +660,6 @@ public LShaped() { cells[2] = new Cell(5, 0, Cell.COLOR_PINK); cells[3] = new Cell(3, 1, Cell.COLOR_PINK); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -356,14 +667,7 @@ public LShaped() { } } - /** - * ڲ࣬Oεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ private class OShaped extends Tetromino { - /** - * 췽 - */ public OShaped() { cells = new Cell[4]; @@ -372,7 +676,6 @@ public OShaped() { cells[2] = new Cell(4, 1, Cell.COLOR_RED); cells[3] = new Cell(5, 1, Cell.COLOR_RED); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -380,14 +683,7 @@ public OShaped() { } } - /** - * ڲ࣬Jεĸ񷽿飬̳Tetromino - * @author Leslie Leung - */ private class JShaped extends Tetromino { - /** - * 췽 - */ public JShaped() { cells = new Cell[4]; @@ -396,7 +692,6 @@ public JShaped() { cells[2] = new Cell(5, 0, Cell.COLOR_YELLOW); cells[3] = new Cell(5, 1, Cell.COLOR_YELLOW); - /* תҪתĸ */ setAxis(); setRotateCells(); @@ -404,130 +699,120 @@ public JShaped() { } } - /** - * ɾ - */ public void removeRows() { - for(int i = 0; i < getCurrentCells().length; i ++) { - removeRow(getCurrentCells()[i].getY()); + int removedCount = 0; + for (int i = 0; i < ROWS; i++) { + if (removeSingleRow(i)) { + removedCount++; + i--; + } + } + + if (removedCount > 0) { + state.addLines(removedCount); + updateInfoLabels(); } } - /** - * ȡת - * @return ת - */ + private boolean removeSingleRow(int rowIndex) { + for (int j = 0; j < COLUMNS; j++) { + if (wall[rowIndex][j] == null) { + return false; + } + } + + for (int k = rowIndex; k >= 1; k--) { + System.arraycopy(wall[k - 1], 0, wall[k], 0, COLUMNS); + + for (int m = 0; m < COLUMNS; m++) { + if (wall[k][m] != null) { + wall[k][m].setY(wall[k][m].getY() + 1); + } + } + } + Arrays.fill(wall[0], null); + return true; + } + public Cell getAxis() { return currentTetromino.getAxis(); } - /** - * ȡҪתĸ - * @return Ҫתĸ - */ public Cell[] getRotateCells() { return currentTetromino.getRotateCells(); } - /** - * ȡǰ˹и - * @return ǰ˹и - */ public Cell[] getCurrentCells() { return currentTetromino.getCells(); } - /** - * ж϶˹Ƿ񵽴ײ(Ƿ񵽴ײһλǷз) - * @return truefalseû - */ public boolean isReachBottomEdge() { - int oldY, newY, oldX; //Ӿɵꡢµ;ɵĺ + int oldY, newY, oldX; - for(int i = 0; i < getCurrentCells().length; i ++) { + for (int i = 0; i < getCurrentCells().length; i++) { oldY = getCurrentCells()[i].getY(); newY = oldY + 1; oldX = getCurrentCells()[i].getX(); - if(oldY == ROWS - 1) {//ײ + if (oldY == ROWS - 1) { return true; } - if(isContain(oldX, newY)) {//һλз + if (isContain(oldX, newY)) { return true; } } return false; } - /** - * ж϶˹Ƿ񵽴߽(Ƿ񳬳߽һλǷײ) - * @return trueѵfalseû - */ public boolean isReachLeftEdge() { - int oldX, newX, oldY; //Ӿɵĺꡢµĺ;ɵ + int oldX, newX, oldY; - for(int i = 0; i < getCurrentCells().length; i ++) { + for (int i = 0; i < getCurrentCells().length; i++) { oldX = getCurrentCells()[i].getX(); newX = oldX - 1; oldY = getCurrentCells()[i].getY(); - if(oldX == 0 || isContain(newX, oldY)) {//߽ - return true; - } - - if(isContain(newX, oldY)) {//һλз + if (oldX == 0 || isContain(newX, oldY)) { return true; } } return false; } - /** - * ж϶˹Ƿ񵽴ұ߽(Ƿ񳬳ұ߽һλǷײ) - * @return trueѵfalseû - */ public boolean isReachRightEdge() { - int oldX, newX, oldY; //Ӿɵĺꡢµĺ;ɵ + int oldX, newX, oldY; - for(int i = 0; i < getCurrentCells().length; i ++) { + for (int i = 0; i < getCurrentCells().length; i++) { oldX = getCurrentCells()[i].getX(); newX = oldX + 1; oldY = getCurrentCells()[i].getY(); - if(oldX == COLUMNS - 1 || isContain(newX, oldY)) {//ұ߽ - return true; - } - - if(isContain(newX, oldY)) {//һλз + if (oldX == COLUMNS - 1 || isContain(newX, oldY)) { return true; } } return false; } - /** - * ж϶˹˳ʱתǷ񳬳߽(Ƿ񳬳߽һλǷз) - * @return true߽磻falseû߽ - */ public boolean clockwiseRotateIsOutOfBounds() { - int oldX; //rotateCellĺ - int oldY; //rotateCell - int newX; //rotateCellתĺ - int newY; //rotateCellת + int oldX; + int oldY; + int newX; + int newY; - for(int i = 0; i < 3; i ++) { + for (int i = 0; i < 3; i++) { oldX = getRotateCells()[i].getX(); oldY = getRotateCells()[i].getY(); - newX = getAxis().getX() - oldY + getAxis().getY(); //º㷨 - newY = getAxis().getY() + oldX - getAxis().getX(); //㷨 + newX = getAxis().getX() - oldY + getAxis().getY(); + newY = getAxis().getY() + oldX - getAxis().getX(); - if(newX < 0 || newY < 0 || newX > COLUMNS - 1 || newY > ROWS - 1) {//Խ磬true + if (newX < 0 || newY < 0 || newX > COLUMNS - 1 || newY > ROWS - 1) { return true; } - if(isContain(newX, newY)) {//Խ磬true + if (isContain(newX, newY)) { return true; } } @@ -535,28 +820,24 @@ public boolean clockwiseRotateIsOutOfBounds() { return false; } - /** - * ж϶˹ʱתǷ񳬳߽(Ƿ񳬳߽һλǷз) - * @return true߽磻falseû߽ - */ public boolean anticlockwiseRotateIsOutOfBounds() { - int oldX; //rotateCellĺ - int oldY; //rotateCell - int newX; //rotateCellתĺ - int newY; //rotateCellת + int oldX; + int oldY; + int newX; + int newY; - for(int i = 0; i < 3; i ++) { + for (int i = 0; i < 3; i++) { oldX = getRotateCells()[i].getX(); oldY = getRotateCells()[i].getY(); - newX = getAxis().getX() - getAxis().getY() + oldY; //º㷨 - newY = getAxis().getY() + getAxis().getX() - oldX; //㷨 + newX = getAxis().getX() - getAxis().getY() + oldY; + newY = getAxis().getY() + getAxis().getX() - oldX; - if(newX < 0 || newY < 0 || newX > COLUMNS - 1 || newY > ROWS - 1) {//Խ磬true + if (newX < 0 || newY < 0 || newX > COLUMNS - 1 || newY > ROWS - 1) { return true; } - if(isContain(newX, newY)) {//Խ磬true + if (isContain(newX, newY)) { return true; } } @@ -564,79 +845,40 @@ public boolean anticlockwiseRotateIsOutOfBounds() { return false; } - /** - * жijǷڷ - * @param x - * @param y - * @return trueڶfalseڶ - */ public boolean isContain(int x, int y) { - if(wall[y][x] == null) { + if (y < 0 || y >= ROWS || x < 0 || x >= COLUMNS) { return false; - } else { - return true; } + return wall[y][x] != null; } - /** - * ʵֶ˹Ӳ - */ public void hardDrop() { - while(!isReachBottomEdge()) { + while (!isReachBottomEdge()) { currentTetromino.softDrop(); } } - /** - * - * @param i е± - */ - public void removeRow(int i) { - int oldY, newY; - - for(int j = 0; j < COLUMNS; j ++) { - if(wall[i][j] == null) {//һûreturn - return; - } - } - - /* вѸķ */ - for(int k = i; k >= 1; k --){ - System.arraycopy(wall[k - 1], 0, wall[k], 0, COLUMNS); - - for(int m = 0; m < COLUMNS; m ++) { - if(wall[k][m] != null) {//ڲǿյĶҪ - oldY = wall[k][m].getY(); - newY = oldY + 1; - wall[k][m].setY(newY); - } - } - - } - Arrays.fill(wall[0], null); + private String getScoreText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "分数" : "Score"; } - @Override - public void paint(Graphics g) { - g.setColor(Color.BLACK); - g.fillRect(0, 0, getBounds().width, getBounds().height); - - /* ǽ */ - for(int i = 0; i < ROWS; i ++) { - for(int j = 0; j < COLUMNS; j ++) { - if(wall[i][j] == null) {//ijķΪʱ - g.setColor(Color.WHITE); - g.fillRect(j * Cell.CELL_SIZE + 1, i * Cell.CELL_SIZE + 1, Cell.CELL_SIZE - 2, Cell.CELL_SIZE - 2); - } else {//鲻Ϊʱ - wall[i][j].paintCell(g); - } - } - } - - /* ǰ˹ */ - for(int i = 0; i < getCurrentCells().length; i ++) { - getCurrentCells()[i].paintCell(g); - } - + private String getLevelText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "等级" : "Level"; + } + + private String getLinesText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "消除行数" : "Lines"; + } + + private String getTimeText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "时间" : "Time"; + } + + private String getNextText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "下一个" : "Next"; + } + + private String getControlsTitleText() { + return config.getLanguage() == GameConfig.LANGUAGE_CHINESE ? "操作说明" : "Controls"; } -} +} \ No newline at end of file diff --git a/Tetris/src/tetris/Tetromino.java b/Tetris/src/tetris/Tetromino.java index 422a5fd..fbb133a 100644 --- a/Tetris/src/tetris/Tetromino.java +++ b/Tetris/src/tetris/Tetromino.java @@ -1,68 +1,67 @@ package tetris; /** - * ĸ񷽿 + * Tetromino class for Tetris game * @author Leslie Leung */ public class Tetromino { - protected Cell[] cells; //öcells洢ĸ񷽿 - protected Cell axis; //ת - protected Cell[] rotateCells; //ҪתĸӼ + protected Cell[] cells; + protected Cell axis; + protected Cell[] rotateCells; /** - * ʵĸ񷽿ʱת㷨 - * @param axis תᣬcells±Ϊ0CellΪת - * @param rotateCells Ҫתĸӵļ + * Rotate the tetromino counterclockwise + * @param axis The axis cell to rotate around + * @param rotateCells The cells to rotate */ protected void anticlockwiseRotate(Cell axis, Cell[] rotateCells) { - int oldX; //ԱʾrotateCellĺ - int oldY; //ԱʾrotateCell - int newX; //ԱʾrotateCellתĺ - int newY; //ԱʾrotateCellת + int oldX; + int oldY; + int newX; + int newY; for(int i = 0; i < 3; i ++) { oldX = rotateCells[i].getX(); oldY = rotateCells[i].getY(); - newX = axis.getX() - axis.getY() + oldY; //º㷨 - newY = axis.getY() + axis.getX() - oldX; //㷨 + newX = axis.getX() - axis.getY() + oldY; + newY = axis.getY() + axis.getX() - oldX; - rotateCells[i].setX(newX); //Ŀӵĺ - rotateCells[i].setY(newY); //Ŀӵ + rotateCells[i].setX(newX); + rotateCells[i].setY(newY); } } /** - * ʵĸ񷽿˳ʱת㷨 - * @param axis תᣬcells±Ϊ0CellΪת - * @param rotateCells Ҫתĸӵļ + * Rotate the tetromino clockwise + * @param axis The axis cell to rotate around + * @param rotateCells The cells to rotate */ protected void clockwiseRotate(Cell axis, Cell[] rotateCells) { - int oldX; //ԱʾrotateCellĺ - int oldY; //ԱʾrotateCell - int newX; //ԱʾrotateCellתĺ - int newY; //ԱʾrotateCellת + int oldX; + int oldY; + int newX; + int newY; for(int i = 0; i < 3; i ++) { oldX = rotateCells[i].getX(); oldY = rotateCells[i].getY(); - newX = axis.getX() - oldY + axis.getY(); //º㷨 - newY = axis.getY() + oldX - axis.getX(); //㷨 + newX = axis.getX() - oldY + axis.getY(); + newY = axis.getY() + oldX - axis.getX(); - rotateCells[i].setX(newX); //Ŀӵĺ - rotateCells[i].setY(newY); //Ŀӵ + rotateCells[i].setX(newX); + rotateCells[i].setY(newY); } } /** - * ʵĸ񷽿Զ + * Move the tetromino down */ protected void softDrop() { - int oldY; //ijǰ - int newY; //ij + int oldY; + int newY; - /* и */ for(int i = 0; i < cells.length; i ++) { oldY = cells[i].getY(); newY = oldY + 1; @@ -72,13 +71,12 @@ protected void softDrop() { } /** - * ʵĸ񷽿Ƶ㷨 + * Move the tetromino left */ protected void moveLeft() { - int oldX; //ijǰĺ - int newX; //ijƺĺ + int oldX; + int newX; - /* и */ for(int i = 0; i < cells.length; i ++) { oldX = cells[i].getX(); newX = oldX - 1; @@ -88,13 +86,12 @@ protected void moveLeft() { } /** - * ʵĸ񷽿Ƶ㷨 + * Move the tetromino right */ protected void moveRight() { - int oldX; //ijǰĺ - int newX; //ijƺĺ + int oldX; + int newX; - /* и */ for(int i = 0; i < cells.length; i ++) { oldX = cells[i].getX(); newX = oldX + 1; @@ -104,40 +101,40 @@ protected void moveRight() { } /** - * ĸ񷽿ĸӵļ - * @return Cellļ + * Get the cells of the tetromino + * @return Array of cells */ protected Cell[] getCells() { return cells; } /** - * ȡת - * @return ת + * Get the axis cell + * @return Axis cell */ protected Cell getAxis() { return axis; } /** - * ȡҪתĿӵļ - * @return Ŀӵļ + * Get the cells that need to be rotated + * @return Array of cells to rotate */ protected Cell[] getRotateCells() { return rotateCells; } /** - * cells[0]Ϊת + * Set the axis cell (cells[0]) */ protected void setAxis() { axis = cells[0]; } /** - * ½Ϊ3鲢cells[1]cells[2]cells[3]ӵrotateCells + * Set the rotate cells (cells[1], cells[2], cells[3]) */ protected void setRotateCells() { rotateCells = new Cell[]{cells[1], cells[2], cells[3]}; } -} +} \ No newline at end of file diff --git a/Worm/bin/worm/Cell.class b/Worm/bin/worm/Cell.class new file mode 100644 index 0000000000000000000000000000000000000000..88dcc377dc8eb297649d98e44a24a35df55abd05 GIT binary patch literal 576 zcmZut%T5A85UgPr7S=`Z#Y06=FMtmY9z1Bg5H%!36EQ};m;qN@vn~V{(SPz{;v@0k z2l!FOnkCUhJxuj zS zk=GQ_LLBoJMi8}NANBEIVVY4+V0Jf{bwK389DYu}DzN6DR(qYQL!kQYSG*9NG%g7?568 evPtubL1RdoN%IBaAA9P3zzPknax}$z2nBK)3#2w&)yl@Y23Q6St~X_GhyYE=EO8tDiQ@VbvbIz7Ip8WRS0fR&j>6<)l)+WjPaDjU}{3(ygt zxWv;c)mQ*S8I#okz=?_&-Y&d$Xu z+9Qi*k1Q=mxpS;KWh=E$;o=UUJMa*WfYO>z*AwK-q*c%6jO;SYhMZM|@30)XYQIOy+dr_R)pX=&;*7Yb|*&dX_^desronyP!BV0)7 zpiel}cdnxB4tCdVDdl(I)bB28r1qyKF&%dLJ#cc~3lI8O&(mbmOUwf{AHG(P`RX*U z(MREBbQW_CaIaK%FJn7>w_(`h_!9Jc0Us;;v~s&`Y;pF?F#9Ee8n&=hN{54Or0@z} zEynzVIRwd#08h$ehY3j7RqTkhk;)O9PA8}3oRUn7n05Ic>El1a_ze|u#JcQ0&qC%NypnreMDNY3|u(*3(b+Z<-soo5#1AkNn8=o6Qj* zci;-Ot89)B2=F@D-@q8*PT(WTkNN)uU*j{Iy#eQA93cCKh6W!=AIED&>eoqJsCNZ? zJke-Cj#JKY6+3TAUy6PUbuxIHmr*6QTQFqsHh(J~B|X~!H$#2StMdh4o-f%|U-9PO zWV$7sAQjNvI(R+)dA5I-`QClU ZOv}97-`mm4;gFlL#z#)^`b)jK{{!wUddUC) literal 0 HcmV?d00001 diff --git a/Worm/bin/worm/WormFrame.class b/Worm/bin/worm/WormFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..5d5838473fe51cec0f3095c0fdf3b303ea80b09d GIT binary patch literal 1299 zcmZuxTTc@~6#k|ywq4f(P?&j9wILxLam5^AwA zh?tlg#Gr(*Nz9wYuqB8_3E=`Q9>i7&GU~(R*%rk15Ozo?#ZIx_CFr|_dyhbS1)`xA z`-0dn=6VKS)@CS6XH6>;@1~*CQ3rVwLy4~Ta-E?veNi1&uf*-FW(>w#)51#bMF%uP zbDA0av4*n@frQ!58A{Wd!A}ikdb!o5_UdE_WK_*ysE%Fm&WYfd*Ui_RHA#(oNhurAnf8^PTH@VSUv(N9$ei_Z(e^u~` z%t+}9tdwyaCuF2>QpPE?%Q!96&q?$$WeD2b>C~>#9hJmVDRFVNWNG08>X7avbkpYT zm$;=mnn{-(hM6?$;aB_n8I&SUk%a&0VpuWAos?m4 zD`nV@YV`5;fi`|MVH%EQ>Oq{LCYoC_$R0PLtG3OlwO7U(7Bu(zIW{$NganZxt=SHz z7z}kq+W0VCO}xlm=vm74tY&LogD;)mO+|-e4SivL`mBBQqaO1RmE4<|=xs2prqx#j z2mx7T3QQ?yzv%D6rz~<2P?(DnB}y=;_+5mQPYCx+L2|K}piFSdBq9V$d!l7iD4#@B zQ6>;|QPC|xqzF{Hs1l}vnO4Fe>X)Ub^No}B{MN;8Us3nz4yXV44!S@GsLRFst literal 0 HcmV?d00001 diff --git a/Worm/bin/worm/WormStage$KeyControl.class b/Worm/bin/worm/WormStage$KeyControl.class new file mode 100644 index 0000000000000000000000000000000000000000..cd5238778e324858ce2331ed6eccca2b3d662646 GIT binary patch literal 1126 zcmZWpOHUI~6#i~on0AqEKiAfuJ-PTxf>&rXAbPVCS|-H1Uz> z&gj;STN8ICP!chQg>L*&#B-+=6xy7}cka38c{9KFzWo3&f@vRuIIW@yAr)uP?L!yN zD(F#BhjS8~m+XQH6=4OvQic>nRA{)U(#e3dL=_AwxXe&5vWDF=$Pk=cw~B@6ePT;O z&+r(XjTxpP#u-||hYx#~89Z?-%^4c!43jUE3ah-B)K~LlQFDA_vB+(krx`lKbC311 z9@W=Hl$W_FqIdYlv{Yg;h@X{HG2GBFj++{8VVDYb>M02$A59tsUZno^Z#b>@ z%v)v3?x_lG#x!{`p4X`#Tjo2iVFHsH;+SG+KXjFvi(95BT6vnozo7l-6eiO8nvnSe z{|8}khvjTqk6v*GN0BpJIKkxt$a#jUl`$9^4mL#_Y)oZ!GsCBhB2Nj!GRZAGBSX8S z&K@w-iRuWNs#`jkirjxnH&dJ%@fs%8S=LFVWYl$woyzibDbFWF!g$Kl_jEypbktUT z5G1MFx!CM%?=nL4Xq)K$vS3i|jWieiX_#O*L8#lofEwxB0*h?J^;LSKm3Tc#KquaY z_NqVYC##FBzxpb0e<6i_yF?+PFj0YM_Yf@-9wvH7G#S|h+l0qcLH%dEsv(zy>>8?b z5U-)&o&%SwQ2B_qs^+c0CpGsLl+PHE>JHSEZ8U7bTXWfgwj$MS_#NL00`DtmlqL^d zldZa(Ruj&UI6dSHy{{}1$l)&XNW#J+tYH;4Ob9%|I-X$zZ-~Fcb9}%He8Nk7$7}q= pTXaxFACytQ-yi52f*U8D6rDKb$S(AgY^J0deG&Rd21#Cm>klb`_mBVp literal 0 HcmV?d00001 diff --git a/Worm/bin/worm/WormStage$Move.class b/Worm/bin/worm/WormStage$Move.class new file mode 100644 index 0000000000000000000000000000000000000000..fa8b8d548d30b51e51956caa2c42273025bfb4b2 GIT binary patch literal 1217 zcmZ8h%Tg0T6g?dt3BwQqs3<;AL`XmhzEBCE7ziXncnadKNm>|~%%o-}gmP`UwMtj) z+_}{%l2B0c0e%My|A8vY+nESRO;vZ_b8nx%_jKR+^=JPOz!NOjp&54+w4$pHo#<9j zkDwevKJ+N)#a#*CQxHI(T!p>pm+mfwjQbLKAkBwfJd!b8UOZNa@u_q_lgOZ4MZ6ed zsCCvgyR)AmFqJp0On8}w1&6PR2>FIILvuzLT7u`Dp(TdusF@ZFjZ>N-lDW*Puon5M zPDquNGiVITpavpKZBFxS#iuNoIV&Y%nhf-xoYuF&w>X0@DQsubv>h*oRb0ju6>Vr& zF@onRUSL$kOGFv!j(&dqefZ^Q|DzXUD#j60F@Z@HaT%PzD+)QOM#U7SRU|Q^Vit3h zuskcAb2L4?sAYsj^_>KlOYfXEw#hl zEFrQad@z0{Sk~mz3`ba7ocQUvjFB34YF(srx)^n0+O|l~bB79Ss}ysZnN&EENXYEH zmdJAA!A*MOt<*p)5RgxYRv!B3zQAyetd6n`C_TLeu$~e;KV&qn(^yM0=$SFxK)V~y z{1tSsXBTW2Rh6lT>LO}(Fvyx~_uzF=UlDb3RaGE*nh#LFQi57=cS)p(h64QGAlwaS z*j&J0MB@%7q;VSVy8e+LAV8!|1^6oX0h(9jvV@lM=|x=lRK!Jh|0P+Sr(E3t8fYCQ zb;ik#p_{rTOwBS(y^^H%&}n>6&G7+q_>2X7$1+NILy7`Ec#e@g21gZcl^Hv5yF7Q& PuZq+pwVLU7G62tC32hPp literal 0 HcmV?d00001 diff --git a/Worm/bin/worm/WormStage.class b/Worm/bin/worm/WormStage.class new file mode 100644 index 0000000000000000000000000000000000000000..0bd64952b6667ea1675ce2b087de87232a4cb875 GIT binary patch literal 1928 zcmaJ?>sA|86#gb88JG?bF18kEZA*(GRN}R2?HonplU|PIRi%3J}a8@;yEYFi#oCfVz?l}OVN{ArsZGs z#9xbdyZ*lMyTrY0;1yhy8(tOhH3K@Pn_%IRfgJLZP&Hv51z8qEXN&c+I4{b{k%%Q7 zt_EXFt))EIFM5s!Gwr&nm~yOANtJYX8p7k=isCjsIX9z0OKWJRcgeS0|GedtRRgj0 zYS2@Ync49Px`gLFFRx)+X4NY$B~!|Aj!-E=T{%aA%8|zP+T18rm|KtraU- z_H8G5PE>S?7A-gLF}8h+aXQe^x@}RdW$co#h+0E;^-f7Y<68x_f3q~nbkufj|G0*R zc>j4qN_lw})|#AUPOAa+X1?2}cq=PbZYI1%vkA_|G{{OwE(RO`RT(QU| zFB&Gn)e1%fTAJ@g*NAB*(A?s6vs5gHaV@*X5u+KPd)>^E;bjv1Q2Z^p~#m&T%c*?{uMoc`8CrmtzXEf}*Kh2gtNERYHj3Xv|ly$6_Sj80+ zYq)CS4ZNx2Efa6!nvUxx-od*j-oyJkJ}_|u2Tk0Ra~QciA%1cth9e#9 z94zh;=Hl>kJx*yYkb#lJ2DHQ-gt8lGSVx%0NVZM8$o~yAR?tL+LEE-JSeC(U>uCR(2{oMHx{tttJqV)S>~Za**o~Qd|Y`Aej-@?Vaf8#6z(tL(B?xNZ9V%c%-`RsbDWn`)HCY2P){LxW6j4P&}~7<8J;G y0k^n*jc$BHUcW^G-?8D}v#CGu@-*!soW&UTC{Ho;BhGVsaE_Aa5H(Roh5iE%^`)x- literal 0 HcmV?d00001