diff --git a/Game1How/.classpath b/Game1How/.classpath
new file mode 100644
index 00000000..fb501163
--- /dev/null
+++ b/Game1How/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Game1How/.project b/Game1How/.project
new file mode 100644
index 00000000..dc304c05
--- /dev/null
+++ b/Game1How/.project
@@ -0,0 +1,17 @@
+
+
+ Game1How
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/TeachingKidsProgramming/src/org/teachingkidsprogramming/section05recursion/CloneTurtles.java b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section05recursion/CloneTurtles.java
new file mode 100644
index 00000000..09fcb292
--- /dev/null
+++ b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section05recursion/CloneTurtles.java
@@ -0,0 +1,71 @@
+package org.teachingkidsprogramming.section07objects;
+
+import java.util.ArrayList;
+
+import org.teachingextensions.WindowUtils.MultiTurtleWindow;
+import org.teachingextensions.logo.Turtle;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors;
+import org.teachingextensions.logo.utils.LineAndShapeUtils.Text;
+
+public class CloneTurtles
+{
+ //Uncomment the two lines of code below to create a container and a window for your turtles --#1
+ public ArrayList turtles = new ArrayList();
+ public MultiTurtleWindow mtw = new MultiTurtleWindow();
+ //
+ public CloneTurtles()
+ {
+ showSomeTurtles();
+ }
+ //
+ private void showSomeTurtles()
+ {
+ //Use a FOR loop to add your three turtles --#4.1
+ for (int i = 0; i < 3; i++)
+ {
+ //Create a turtle instance --#2.1
+ Turtle myTurtle = new Turtle();
+ //Add your turtles to your turtle container --#2.2
+ turtles.add(myTurtle);
+ //Repeat --#4.2
+ }
+ //Create a variable to count the number of turtles in the container --#3.1
+ int numberOfTurtles = turtles.size();
+ //Uncomment to Show the number of turtles in the container on the window --#3.2
+ new Text("There are " + numberOfTurtles + " turtles in the turtle container").setTopLeft(50, 50)
+ .setPenColor(PenColors.Yellows.Gold).addTo(mtw);
+ //
+ //Use a FOREACH loop to add your turtles to your window --#5.1
+ for (Turtle turtle : turtles)
+ {
+ //Add and Show your turtles on your window --#5.3
+ mtw.addAndShowTurtle(turtle);
+ //Repeat --#5.2
+ }
+ //Use a FOR loop to teleport all of your turtles around your window --#6.1
+ for (int i = 0; i < 3; i++)
+ {
+ //Get your turtle's current position and then set the X position to i*100 + 350 --#6.3
+ turtles.get(i).setX(i * 100 + 350);
+ //Get your turtle's current position and then set the Y position to i*100 + 100 --#6.4
+ turtles.get(i).setY(i * 100 + 100);
+ //Repeat --#6.2
+ }
+ //Use a FOREACH loop to set values for all of your turtles --#7.1
+ for (Turtle turtle : turtles)
+ {
+ //Set the pen width to 10 pixels -- #7.3
+ turtle.setPenWidth(10);
+ //Set the turtle speed to 9 --#7.4
+ turtle.setSpeed(9);
+ //Have each turtle draw a star with a side that is 100 pixels --#7.5
+ turtle.drawStar(100);
+ //Repeat --#7.2
+ }
+ }
+ //
+ public static void main(String[] args)
+ {
+ new CloneTurtles();
+ }
+}
diff --git a/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game1.java b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game1.java
new file mode 100644
index 00000000..b655dae4
--- /dev/null
+++ b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game1.java
@@ -0,0 +1,10 @@
+package org.teachingkidsprogramming.section10game;
+
+import org.teachingextensions.logo.utils.EventUtils.MouseLeftClickListener;
+
+public class Game1 implements MouseLeftClickListener
+{
+ public static void main(String[] args)
+ {
+ }
+}
\ No newline at end of file
diff --git a/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game2.java b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game2.java
new file mode 100644
index 00000000..85f5b8a3
--- /dev/null
+++ b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game2.java
@@ -0,0 +1,190 @@
+package org.teachingkidsprogramming.section10game;
+
+import org.teachingextensions.WindowUtils.ProgramWindow;
+import org.teachingextensions.logo.Tortoise;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors.Blues;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors.Grays;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors.Reds;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors.Whites;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors.Yellows;
+import org.teachingextensions.logo.utils.EventUtils.MouseLeftClickListener;
+
+public class Game2 implements MouseLeftClickListener
+{
+ private ProgramWindow programWindow;
+ public Game2()
+ {
+ // Create a ProgramWindow titled My Bubble --#1.1
+ programWindow = new ProgramWindow("My Bubble");
+ // Uncomment the line below -- #1.2
+ programWindow.setWindowVisible(true);
+ // Have SimpleBubble listen for when the left mouse button is clicked in your program window --#2.2
+ programWindow.addMouseLeftClickListener(this);
+ Tortoise.getBackgroundWindow().addMouseLeftClickListener(this);
+ //Show Tortoise
+ Tortoise.show();
+ //Set the speed of the Tortoise to 10
+ Tortoise.setSpeed(10);
+ //Make a rectangular button with Tortoise 1
+ Tortoise.setPenWidth(5);
+ Tortoise.setX(200);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setX(150);
+ Tortoise.setY(175);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setX(200);
+ Tortoise.setY(175);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setX(250);
+ Tortoise.setY(175);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //Colors
+ //
+ //
+ //
+ //
+ //
+ Tortoise.setPenWidth(5);
+ //
+ Tortoise.setPenColor(Yellows.Yellow);
+ Tortoise.setX(300);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setPenColor(Reds.Red);
+ Tortoise.setX(350);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setPenColor(Blues.Aqua);
+ Tortoise.setX(400);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setPenColor(Grays.Black);
+ Tortoise.setX(450);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //
+ Tortoise.setPenColor(Grays.Black);
+ Tortoise.setX(500);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ Tortoise.setPenWidth(3);
+ Tortoise.setPenColor(Whites.White);
+ Tortoise.setX(500);
+ Tortoise.setY(125);
+ for (int i = 0; i < 4; i++)
+ {
+ Tortoise.turn(90);
+ Tortoise.move(25);
+ }
+ //Make a finish line
+ Tortoise.setPenColor(Grays.Black);
+ Tortoise.setPenWidth(2);
+ Tortoise.setX(600);
+ Tortoise.setY(0);
+ Tortoise.setAngle(180);
+ Tortoise.move(500);
+ //Move Tortoise to 100X 300Y
+ Tortoise.setX(100);
+ Tortoise.setY(300);
+ Tortoise.setAngle(0);
+ }
+ public void onLeftMouseClick(int x, int y)
+ {
+ //If button is pressed (Hint: Find X First, then find Y)(Mouse Left Click Listener) #5.1
+ Tortoise.show();
+ if (x >= 200 && x <= 225)
+ {
+ if (y >= 175 && y <= 200)
+ {
+ //Move Tortoise 25 pixels up #6
+ Tortoise.setAngle(180);
+ Tortoise.move(25);
+ }
+ else if (y >= 125 && y <= 150)
+ {
+ //Move Tortoise 25 pixels up #6
+ Tortoise.setAngle(0);
+ Tortoise.move(25);
+ }
+ }
+ else if (x >= 150 && x <= 175)
+ {
+ if (y >= 175 && y <= 200)
+ {
+ //Move Tortoise 25 pixels to the left #6
+ Tortoise.setAngle(-90);
+ Tortoise.move(25);
+ }
+ }
+ else if (x >= 250 && x <= 275)
+ {
+ if (y >= 175 && y <= 200)
+ {
+ //Move Tortoise 25 pixels to the left #6
+ Tortoise.setAngle(90);
+ Tortoise.move(25);
+ }
+ }
+ if (Tortoise.getX() == 600)
+ {
+ Tortoise.explode();
+ Tortoise.setPenColor(Reds.Crimson);
+ Tortoise.setPenWidth(5);
+ }
+ if (Tortoise.getY() <= 225 && Tortoise.getY() >= 100)
+ {
+ if (Tortoise.getX() <= 550 && Tortoise.getX() >= 125)
+ {
+ Tortoise.setX(100);
+ Tortoise.setY(300);
+ }
+ }
+ }
+ public static void main(String[] args)
+ {
+ new Game2();
+ }
+}
\ No newline at end of file
diff --git a/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game3.java b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game3.java
new file mode 100644
index 00000000..edec639a
--- /dev/null
+++ b/TeachingKidsProgramming/src/org/teachingkidsprogramming/section10game/Game3.java
@@ -0,0 +1,80 @@
+package org.teachingkidsprogramming.section10game;
+
+import org.teachingextensions.approvals.lite.util.NumberUtils;
+import org.teachingextensions.logo.Tortoise;
+import org.teachingextensions.logo.utils.ColorUtils.ColorWheel;
+import org.teachingextensions.logo.utils.ColorUtils.PenColors;
+import org.teachingextensions.logo.utils.EventUtils.MouseLeftClickListener;
+import org.teachingextensions.logo.utils.EventUtils.MouseRightClickListener;
+import org.teachingextensions.logo.utils.LineAndShapeUtils.Circle;
+import org.teachingextensions.logo.utils.LineAndShapeUtils.Text;
+
+public class Game3 implements MouseRightClickListener, MouseLeftClickListener
+{
+ public static void main(String[] args)
+ {
+ new Game3();
+ }
+ public Game3()
+ {
+ setUpTheWindow();
+ prepareColorPalette();
+ // Listen for left clicks on the window for the tortoise --#1
+ Tortoise.getBackgroundWindow().addMouseLeftClickListener(this);
+ // Listen for right clicks on the window for the tortoise --#20.2
+ Tortoise.getBackgroundWindow().addMouseRightClickListener(this);
+ }
+ @Override
+ public void onLeftMouseClick(int x, int y)
+ {
+ // addDot at x and y (recipe below) --#5
+ addDot(x, y);
+ // Uncomment to write the text "Right click to clear the window" on the screen at position 100, 100 --#8
+ new Text("Right click to clear the window").setTopLeft(100, 100).addTo(Tortoise.getBackgroundWindow());
+ }
+ private void addDot(int x, int y)
+ {
+ // ------------- Recipe for addDot --#6
+ // createCircle at x and y (recipe below) --#2
+ createCircle(x, y);
+ // Move the tortoise to the current position of the mouse (x,y) --#4
+ Tortoise.moveTo(x, y);
+ // ------------- End of addDot Recipe
+ }
+ private void createCircle(int x, int y)
+ {
+ // ------------- Recipe for createCircle --#3.0 (everything in this recipe)
+ int number = NumberUtils.getRandomInt(7, 17);
+ // Create a new circle with a radius of 11 using the next color on the color wheel
+ Circle circle = new Circle(number, ColorWheel.getNextColor());
+ // Change the circle to be 60% opaque
+ circle.setTransparency(40);
+ // Move the circle so that it's center is at the current position of the mouse (x,y)
+ circle.setCenter(x, y);
+ // Place the circle on the tortoise's window
+ circle.addTo(Tortoise.getBackgroundWindow());
+ // ------------- End of createCircle Recipe --#3.1
+ Tortoise.setPenColor(ColorWheel.getRandomColorFromWheel());
+ }
+ @Override
+ public void onRightMouseClick(int x, int y)
+ {
+ // Clear everything from the window HINT: Use Tortoise --#7
+ Tortoise.clear();
+ }
+ private static void prepareColorPalette()
+ {
+ ColorWheel.addColor(PenColors.Reds.Red);
+ ColorWheel.addColor(PenColors.Greens.Green);
+ ColorWheel.addColor(PenColors.Blues.Blue);
+ ColorWheel.addColor(PenColors.Purples.Purple);
+ ColorWheel.addColor(PenColors.Pinks.Pink);
+ ColorWheel.addColor(PenColors.Greens.Teal);
+ }
+ private void setUpTheWindow()
+ {
+ Tortoise.show();
+ Tortoise.setSpeed(10);
+ Tortoise.hide();
+ }
+}