Simulations Barb Ericson

Yüklə 449 b.
ölçüsü449 b.


  • Barb Ericson


  • Jan 2005

Learning Goals

Computers as Simulators

  • “The computer is the Proteus of machines. Its essence is its universality, its power to simulate. Because it can take on a thousand forms and serve a thousand functions, it can appeal to a thousand tastes.” Seymour Papert in Mindstorms

History of Turtles

  • Seymour Papert at MIT in the 60s

    • By teaching the computer to do something the kids are thinking about thinking
      • Develop problem solving skills
      • Learn by constructing and debugging something
        • Learn by making mistakes and fixing them

Using Turtles

  • Classes created at Georgia Tech

    • As part of a undergraduate class
  • Add bookClassesFinal to your classpath

Turtle Basics

  • The turtle starts off facing north and in the center of the world by default

    • World world1 = new World();
    • Turtle turtle1 = new Turtle(world1);
  • Turtles can move forward

    • turtle1.forward(100);

Turning a Turtle

  • Turtles can turn

    • Positive turns to right
      • turtle1.turn(90);
      • turtle1.forward(100);
    • Negative turns to the left
      • turtle1.turn(-90);
      • turtle1.forward(50);

The Pen

  • Each turtle has a pen

    • The default is to have the pen down to leave a trail
    • You can pick it up:
      • turtle1.penUp();
      • turtle1.turn(-90);
      • turtle1.forward(70);
    • You can put it down again:
      • turtle1.penDown();
      • turtle1.forward(100);

More Turtle Behaviors

  • Turtles can move to a specific location

    • turtle1.moveTo(400,10);
  • Of course, you can create many turtles and move them all

    • Run TurtleTest
      • Creates 1000 turtles and puts them in an array of turtles. Has each turn by a random amount from 0 to 359 and go forward by 100

Objects can Refuse

  • Turtles won’t move completely out of the boundaries of the world

    • World world2 = new World();
    • Turtle turtle2 = new Turtle(world2);
    • turtle2.forward(600);

Objects send Messages

  • Objects don’t “tell” each other what to do

    • They “ask” each other to do things
      • Ask don’t tell
  • Objects can refuse to do what they are asked


  • Write a method to have a turtle draw some basic shapes

    • Square
    • Triangle
    • Hexagon
    • Circle
    • Spiral
  • Use these methods to draw a simple house

Karel J. Robot

  • Set of classes developed to teach object-oriented programming

Using Karel J. Robot

  • Karel code is in karelpremeir0407

    • I modified the directories to match the package name
    • I also modified the constructor to be public
  • Follow the on-line book at

  • Add KarelJRobot.jar to the classpath. You may need to add the directory karelpremeir0407 as well.

  • Edit to try things out

    • World.setVisible(true); // not visible to start
    • World.readWorld(String file) // reads the file
    • UrRobot karel = new UrRobot(1, 1, East, 0,; // create a robot at 1,1 facing east with 0 beepers and a red badge

Robot Behaviors

  • move() // moves 1 block

  • turnLeft() // turns 90 degrees left

  • pickBeeper() // picks up a beeper

  • putBeeper() // drops a beeper

  • userPause(String message) // wait for user

World Builder

Using the World Builder

  • Double click on KarelJRobot.jar to bring up the world builder

  • Use it to position walls and beepers

  • Save it to a file

  • Modify KarelMain to read that file

Robot Challenges

  • Create a maze of walls and write a method to get the robot through the maze

  • Have the robot create a pattern by dropping beepers (like a pyramid)

  • Have several robots work together to gather beepers

Card Games

  • There are public domain card images available at

  • Dr. Estell of Ohio Northern University has some card game projects at

    • CardAssingment.doc


  • Alyce Brady of Kalamazoo College

    • Page of resources
    • Aquarium Lab Series
      • Review of basics and set-up for Marine Biology Case Study
    • Minnow Project


  • Object-oriented programs are simulations

    • Consist of interacting objects who send each other messages
      • Objects can refuse to do what you ask
  • Objects belong to classes

    • An object is an instance of a class
    • Classes describe the data and operations that all objects of the class will have
    • A class creates objects
  • Objects are responsible

    • They should control their data
    • They each have their own copy of their data

Yüklə 449 b.

Dostları ilə paylaş:

Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur © 2022
rəhbərliyinə müraciət

    Ana səhifə