From 1fb65cfe962a2a5a8a7848ae548e540ad894b4c1 Mon Sep 17 00:00:00 2001 From: jtscholz <59942012+jtscholz@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:22:33 -0500 Subject: [PATCH 1/2] Add files via upload --- BarkBehavior.java | 8 ++++++++ CrawlBehavior.java | 8 ++++++++ DigitalWorldDriver.java | 29 +++++++++++++++++++++++++++++ DogRobot.java | 13 +++++++++++++ HumanRobot.java | 13 +++++++++++++ MoveBehavior.java | 4 ++++ Robot.java | 31 +++++++++++++++++++++++++++++++ RunBehavior.java | 7 +++++++ SimpleSpeakBehavior.java | 12 ++++++++++++ SpeakBehavior.java | 12 ++++++++++++ TalkBehavior.java | 4 ++++ WalkBehavior.java | 8 ++++++++ WallERobot.java | 13 +++++++++++++ iRobot.java | 14 ++++++++++++++ 14 files changed, 176 insertions(+) create mode 100644 BarkBehavior.java create mode 100644 CrawlBehavior.java create mode 100644 DigitalWorldDriver.java create mode 100644 DogRobot.java create mode 100644 HumanRobot.java create mode 100644 MoveBehavior.java create mode 100644 Robot.java create mode 100644 RunBehavior.java create mode 100644 SimpleSpeakBehavior.java create mode 100644 SpeakBehavior.java create mode 100644 TalkBehavior.java create mode 100644 WalkBehavior.java create mode 100644 WallERobot.java create mode 100644 iRobot.java diff --git a/BarkBehavior.java b/BarkBehavior.java new file mode 100644 index 0000000..82f3fe3 --- /dev/null +++ b/BarkBehavior.java @@ -0,0 +1,8 @@ + +public class BarkBehavior implements TalkBehavior{ + public String talk() + { + return "Woof Woof Woof"; + } + +} diff --git a/CrawlBehavior.java b/CrawlBehavior.java new file mode 100644 index 0000000..78efd64 --- /dev/null +++ b/CrawlBehavior.java @@ -0,0 +1,8 @@ + +public class CrawlBehavior implements MoveBehavior{ + + public String move() + { + return "Crawling playfully"; + } +} diff --git a/DigitalWorldDriver.java b/DigitalWorldDriver.java new file mode 100644 index 0000000..7361eb6 --- /dev/null +++ b/DigitalWorldDriver.java @@ -0,0 +1,29 @@ + +public class DigitalWorldDriver { + public void runWorld() { + Robot[] robots = new Robot[4]; + robots[0] = new DogRobot("Tipsy"); + robots[1] = new HumanRobot("Sam"); + robots[2] = new iRobot("Will"); + robots[3] = new WallERobot("Wall-E"); + + for(Robot robot : robots) { + displayRobot(robot); + } + + } + + private void displayRobot(Robot robot) { + System.out.println("\n----------------"); + System.out.println(robot); + System.out.println(robot.move()); + System.out.println(robot.talk()); + System.out.println("----------------"); + } + + + public static void main(String[] args) { + DigitalWorldDriver world = new DigitalWorldDriver(); + world.runWorld(); + } +} diff --git a/DogRobot.java b/DogRobot.java new file mode 100644 index 0000000..6b2f489 --- /dev/null +++ b/DogRobot.java @@ -0,0 +1,13 @@ + +public class DogRobot extends Robot{ + public DogRobot(String name) + { + super(name); + moveBehavior = new CrawlBehavior(); + talkBehavior = new BarkBehavior(); + } + public String toString() + { + return name + " is a happy Dog Robot"; + } +} diff --git a/HumanRobot.java b/HumanRobot.java new file mode 100644 index 0000000..4ed2d70 --- /dev/null +++ b/HumanRobot.java @@ -0,0 +1,13 @@ + +public class HumanRobot extends Robot{ + public HumanRobot(String name) + { + super(name); + moveBehavior= new WalkBehavior(); + talkBehavior= new SpeakBehavior(); + } + public String toString() { + return name + " is a typical human robot"; + } + +} diff --git a/MoveBehavior.java b/MoveBehavior.java new file mode 100644 index 0000000..b395e55 --- /dev/null +++ b/MoveBehavior.java @@ -0,0 +1,4 @@ + +public interface MoveBehavior { + public String move(); +} diff --git a/Robot.java b/Robot.java new file mode 100644 index 0000000..3ea0f56 --- /dev/null +++ b/Robot.java @@ -0,0 +1,31 @@ + +public abstract class Robot { + protected String name; + MoveBehavior moveBehavior; + TalkBehavior talkBehavior; + + public Robot(String name) + { + this.name = name; + } + + public abstract String toString(); + + public String move() + { + return moveBehavior.move(); + } + public String talk() + { + return talkBehavior.talk(); + } + public void setMoveBehavior(MoveBehavior mb) + { + moveBehavior= mb; + } + public void setTalkBehavior(TalkBehavior tb) + { + talkBehavior = tb; + } + +} diff --git a/RunBehavior.java b/RunBehavior.java new file mode 100644 index 0000000..07ec0e1 --- /dev/null +++ b/RunBehavior.java @@ -0,0 +1,7 @@ + +public class RunBehavior implements MoveBehavior{ + public String move() + { + return "Running super agressivelly!!! AAAAHHHHH"; + } +} diff --git a/SimpleSpeakBehavior.java b/SimpleSpeakBehavior.java new file mode 100644 index 0000000..f8c8367 --- /dev/null +++ b/SimpleSpeakBehavior.java @@ -0,0 +1,12 @@ +import java.util.Random; + +public class SimpleSpeakBehavior implements TalkBehavior{ + String[] randSSB = {"Wall-E","EVA!","Pop","Eva?","Eee-va?"}; + + public String talk() + { + Random r = new Random(); + return randSSB[r.nextInt(randSSB.length)]; + } + +} diff --git a/SpeakBehavior.java b/SpeakBehavior.java new file mode 100644 index 0000000..52c0879 --- /dev/null +++ b/SpeakBehavior.java @@ -0,0 +1,12 @@ +import java.util.Random; + +public class SpeakBehavior implements TalkBehavior{ + + String[] randSB = {"Hello","How are you","Good Day"}; + + public String talk() + { + Random r = new Random(); + return randSB[r.nextInt(randSB.length)]; + } +} diff --git a/TalkBehavior.java b/TalkBehavior.java new file mode 100644 index 0000000..a4b85f9 --- /dev/null +++ b/TalkBehavior.java @@ -0,0 +1,4 @@ + +public interface TalkBehavior { + public String talk(); +} diff --git a/WalkBehavior.java b/WalkBehavior.java new file mode 100644 index 0000000..5d15199 --- /dev/null +++ b/WalkBehavior.java @@ -0,0 +1,8 @@ + +public class WalkBehavior implements MoveBehavior{ + public String move() + { + return "Walking Gleefully"; + } + +} diff --git a/WallERobot.java b/WallERobot.java new file mode 100644 index 0000000..70f2c80 --- /dev/null +++ b/WallERobot.java @@ -0,0 +1,13 @@ + +public class WallERobot extends Robot{ + public WallERobot(String name) + { + super(name); + moveBehavior = new WalkBehavior(); + talkBehavior = new SimpleSpeakBehavior(); + } + public String toString() + { + return name + " is an environmentally friendly Wall-E Robot"; + } +} diff --git a/iRobot.java b/iRobot.java new file mode 100644 index 0000000..9cf51f6 --- /dev/null +++ b/iRobot.java @@ -0,0 +1,14 @@ + +public class iRobot extends Robot{ + public iRobot(String name) + { + super(name); + moveBehavior = new RunBehavior(); + talkBehavior= new SpeakBehavior(); + } + public String toString() + { + return name + " is a scary iRobot!!!"; + } + +} From a855e2bc0082f8229d73435b9a33e123c8a42f82 Mon Sep 17 00:00:00 2001 From: jtscholz <59942012+jtscholz@users.noreply.github.com> Date: Mon, 20 Jan 2020 21:29:28 -0500 Subject: [PATCH 2/2] Add files via upload