From 961f1cea630424701173c639269a62b0e83b4eb0 Mon Sep 17 00:00:00 2001 From: terry <724796052@qq.com> Date: Sun, 26 Jun 2022 17:57:21 +0800 Subject: [PATCH] strategy for tank fire and folder refactor --- docs/坦克大战笔记.docx | Bin 75864 -> 75858 bytes src/com/demo/tank/course6/Tank.java | 22 ++++++++++++++---- .../strategy/DefaultFireStrategy.java | 2 +- .../{course6 => }/strategy/FireStrategy.java | 2 +- .../strategy/FourDirectionFireStrategy.java | 2 +- src/com/demo/tank/util/PropertyManager.java | 5 ++++ src/config | 4 +++- 7 files changed, 29 insertions(+), 8 deletions(-) rename src/com/demo/tank/{course6 => }/strategy/DefaultFireStrategy.java (93%) rename src/com/demo/tank/{course6 => }/strategy/FireStrategy.java (70%) rename src/com/demo/tank/{course6 => }/strategy/FourDirectionFireStrategy.java (94%) diff --git a/docs/坦克大战笔记.docx b/docs/坦克大战笔记.docx index 5877f805b1cb14b4ede5e7f88da5ad2ae2a4eb72..3a038568d4a6c26221609f1b415d696e4d0d8cba 100644 GIT binary patch delta 11494 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 bf(pnD#*Uu^!pBbIqXwctJ(2y_G~oXMw*bhD diff --git a/src/com/demo/tank/course6/Tank.java b/src/com/demo/tank/course6/Tank.java index 74ca8a6..de73c5c 100644 --- a/src/com/demo/tank/course6/Tank.java +++ b/src/com/demo/tank/course6/Tank.java @@ -1,9 +1,10 @@ package com.demo.tank.course6; -import com.demo.tank.course6.strategy.FireStrategy; -import com.demo.tank.course6.strategy.FourDirectionFireStrategy; +import com.demo.tank.strategy.DefaultFireStrategy; +import com.demo.tank.strategy.FireStrategy; import com.demo.tank.enums.Direction; import com.demo.tank.enums.Group; +import com.demo.tank.util.PropertyManager; import com.demo.tank.util.ResourceManager; import java.awt.*; @@ -21,8 +22,7 @@ public class Tank { public static final int HEIGHT = ResourceManager.tankD.getHeight(); private Random random = new Random(); Rectangle rect = new Rectangle(); -// FireStrategy fireStrategy = new DefaultFireStrategy(); - FireStrategy fireStrategy = new FourDirectionFireStrategy(); + FireStrategy fireStrategy; public Tank(int x, int y, Direction dir, Group group, TankFrameV6 tankFrame) { @@ -36,6 +36,20 @@ public class Tank { rect.y = this.y; rect.width = Tank.WIDTH; rect.height = Tank.HEIGHT; + + if(this.group == Group.GOOD) { + String className = PropertyManager.getString("good.tank.fire.strategy"); + try { + fireStrategy = (FireStrategy) Class.forName(className).newInstance(); + System.out.println(fireStrategy); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + }else if(this.group == Group.BAD) fireStrategy = new DefaultFireStrategy(); } public void paint(Graphics g) { diff --git a/src/com/demo/tank/course6/strategy/DefaultFireStrategy.java b/src/com/demo/tank/strategy/DefaultFireStrategy.java similarity index 93% rename from src/com/demo/tank/course6/strategy/DefaultFireStrategy.java rename to src/com/demo/tank/strategy/DefaultFireStrategy.java index 7413b97..d2480f0 100644 --- a/src/com/demo/tank/course6/strategy/DefaultFireStrategy.java +++ b/src/com/demo/tank/strategy/DefaultFireStrategy.java @@ -1,4 +1,4 @@ -package com.demo.tank.course6.strategy; +package com.demo.tank.strategy; import com.demo.tank.course6.Bullet; import com.demo.tank.enums.Group; diff --git a/src/com/demo/tank/course6/strategy/FireStrategy.java b/src/com/demo/tank/strategy/FireStrategy.java similarity index 70% rename from src/com/demo/tank/course6/strategy/FireStrategy.java rename to src/com/demo/tank/strategy/FireStrategy.java index 4548cb4..fa656fd 100644 --- a/src/com/demo/tank/course6/strategy/FireStrategy.java +++ b/src/com/demo/tank/strategy/FireStrategy.java @@ -1,4 +1,4 @@ -package com.demo.tank.course6.strategy; +package com.demo.tank.strategy; import com.demo.tank.course6.Tank; diff --git a/src/com/demo/tank/course6/strategy/FourDirectionFireStrategy.java b/src/com/demo/tank/strategy/FourDirectionFireStrategy.java similarity index 94% rename from src/com/demo/tank/course6/strategy/FourDirectionFireStrategy.java rename to src/com/demo/tank/strategy/FourDirectionFireStrategy.java index 0d0cdeb..c364119 100644 --- a/src/com/demo/tank/course6/strategy/FourDirectionFireStrategy.java +++ b/src/com/demo/tank/strategy/FourDirectionFireStrategy.java @@ -1,4 +1,4 @@ -package com.demo.tank.course6.strategy; +package com.demo.tank.strategy; import com.demo.tank.course6.Bullet; import com.demo.tank.enums.Direction; diff --git a/src/com/demo/tank/util/PropertyManager.java b/src/com/demo/tank/util/PropertyManager.java index c0abe45..8361e4e 100644 --- a/src/com/demo/tank/util/PropertyManager.java +++ b/src/com/demo/tank/util/PropertyManager.java @@ -19,4 +19,9 @@ public class PropertyManager { if(property == null) return 0; return Integer.valueOf((String)property.get(key)); } + + public static String getString(String key){ + if(property == null) return ""; + return (String)property.get(key); + } } diff --git a/src/config b/src/config index 00285eb..0fb47e7 100644 --- a/src/config +++ b/src/config @@ -2,4 +2,6 @@ enemy.tank.number=8 tank.speed=5 bullet.speed=5 game.width=1080 -game.height=720 \ No newline at end of file +game.height=720 +good.tank.fire.strategy=com.demo.tank.strategy.FourDirectionFireStrategy +bad.tank.fire.strategy=com.demo.tank.strategy.DefaultFireStrategy \ No newline at end of file