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(); + } +}