Overview
All of you are now comfortable creating objects from
existing classes and calling capabilities on them. In this lab, you will use your
new found skills to do fun things with turtles. Turtles are very smart and know
how to move in all sorts of ways. They can even turn angles.
This lab has to be done using the interaction pane. Make
sure that you save your interaction pane history by right-clicking on the
interaction pane and choosing the save history option. You will submit this
history and a screen shot of your turtle drawing. You will have to set
classpath before you can use the World and Turtle classes. More details on this
coming later.
Create a new World object and populate it with a few turtle.
Then call operations on those turtles to draw nifty graphics. The best turtle
drawing will be put up on the class website and the winner will be given a
small prize.
Please make sure that your drawings don't look the same. If
they do, you may get into a lot of trouble.
Example turtle code.
World w = new
World();
Turtle t1 = new Turtle(100, 100, w);
Turtle t2 = new Turtle(50, 50, w);
t1.backward(100);
t1.turnRight();
t1.forward(100);
t1.turnLeft();
t1.forward(100);
t1.turnLeft();
t1.forward(100);
t2.turnRight();
t2.setHeading(150); // makes t2 face
150 degrees North
t2.forward(200); // moving forward will draw a
slanted line
The above code will put two
turtles in the world. The capability calls on t1 will draw a square. t2 will
draw a slanted line.
Create a new project by clicking
on Project menu and then clicking on new. Make sure that you save your Project
in the Turtle directory, i.e. the directory in which you extracted the Turtle
files available on the course website.
ClassPath
ClassPath
tells JDK tools and applications where to find third-party and user-defined
classes i.e. classes that are not Java extensions or part of the Java platform.
You only need to set the class path when you want to load a class that's not in
the current directory or in any of its subdirectories, and not in a location
specified by the extensions mechanism.
DrJava
had made this thing very simple. In DrJava there is an option named Project Properties to set and remove the
classpath in Project menu.
When
we click this option, another form will open. In this form you will find various
kinds of options available to set the classpath and to remove the existing classpath.
Now
to add classpath of an existing class click Add
button.
Now
add the World class by giving it's complete path (for e.g.
D:\turtle\World.class) and click OK. Again click on the add button and add the
Turtle class the same way. Also make sure that the Build Directory, Project
Root and Working Directory shown above point to the Turtle dir, which in our
example case is D:\turtle. Now this class is
available i.e. we can instantiate this class and use all its functionality. Not
only this class is available to us but any class which is in this folder is
accessible. We can instantiate it and use it.
Alternate way of setting ClassPath (if the above
doesn't work for you)
The class path can be set by setting the CLASSPATH
environment variable. Click on Start Menu button and then click on Run. In the
Run dialog box, type “cmd” with the quotes and hit enter. You will see a black
window similar to the one shown below. Type the command as shown but
change d:\\package\\beans.jar to the directory you have extracted the
Turtle files in. The Turtle files are available on the course website. If you
extract your files in d:\turtle, the command will be,
set CLASSPATH=d:\\turtle
CLASSPATH has to be in caps.
C :> set
CLASSPATH=classpath1; classpath2...
Class paths to the .jar, .zip or .class files. Each
classpath should end with a filename
or directory depending on what you are setting the class path to:
·
For a .jar or .zip file that contains .class files, the class path ends
with the name of the .zip or .jar file.
·
For .class files in an unnamed package, the class path ends with the
directory that contains the .class files.
·
For .class files in a named package, the class path ends with the
directory that contains the "root" package (the first package in the
full package name).
Following Error will occur if we don’t set the classpath.
But after setting class path
Make a project by clicking Project Menu and selecting
‘New’ option. Enter a name for your project and click Save. DrJava will display
Project Properties window, set classpath to World.class
and Turtle.class as shown in the
start of the tutorial.
Hint:
To make sure that you have made the project
correctly and added the class paths of Turtle.class and World.class in the
right way type the following in Interaction Pane:
World
w = new World();
A window should appear as shown below, indicating that the classes have
been added accurately.
Problems
1. Instantiate World class. Now make two
objects named sqr, rect of Turtle class. Now draw square
and, rectangle using these turtles. For square take x=200 and for rectangle
length=180 and width=90.
Hint:
// Instantiate World object
World world = new
World();
//Instantiate Turtle class
and pass object or World class as parameter.
Turtle turtle1= new
Turtle(world);
// You can also give
coordinates to draw turtle at a specific position
Turtle turtle2= new
Turtle(a,b,world);
Where a and b are x and y
coordinated on the window.
By entering the code:
World world= new World();
Turtle turtle1= new Turtle(10,10,world);
Turtle turtle2= new Turtle(50,50,world);
Turtle turtle3= new Turtle(77,77,world);
Following Window is
displayed
Use following
methods to draw Rectangle and Square.
Turtle1.turnLeft(); // To Move Left.
Turtle1.turnRght(); // To Move Right
Turtle1.forward(x); // To Move x steps
The final result should be something like this
2.
Write the first three letters of your first name
with three different turtles?
hey there and thank you for your info ? I have certainly picked up something new from right here.
ReplyDeleteI did however expertise several technical issues using this web site, since I
experienced to reload the website a lot of times previous to I could get it to load properly.
I had been wondering if your web host is OK? Not that I
am complaining, but sluggish loading instances times will sometimes affect your placement in google and could damage your high-quality score
if ads and marketing with Adwords. Anyway I?m adding this RSS to my e-mail and could look out for a lot more of your respective fascinating content.
Make sure you update this again soon..