# Turtle Graphics Applet

Click in the CommandCenter box (subwindow) to start.

 alt="Your browser understands the tag but isn't running the applet, for some reason." Your browser is completely ignoring the tag!

TurtleGraphics Programming Environment Applet

```
TG is a Logo programming environment which provides a
command line interface to a Java-based implementation
of a subset of Berkeley Logo with some Jave extensions.

Most of this Help message has been taken from Brian
Harvey's documentation of Berkeley Logo, from Computer
Science Logo Style, Brian Harvey, The MIT Press, 1997.
Brian has kindly provided Berkeley Logo under the GNU
General Public License.  Thank you, Brian!

The center of the graphics window is turtle location
0,0.  Positive X is to the right; positive Y is up.
Headings (angles) are measured in degrees clockwise
from the positive Y axis. (This differs from the
common mathematical convention of measuring angles
counterclockwise from the positive X axis.)  The
turtle is represented as a hexagon with head, legs
and a tail; the actual turtle position is in the
middle of the turtle.

AND trueFalse1 trueFalse2
Outputs true if trueFalse1 AND trueFalse2 are
true, otherwise it outputs false.

Example:
IF AND EQUAL? XCOR 0 EQUAL? YCOR 0 PRINTLN "Home

BF word-or-sentence
BUTFIRST word-or-sentence
If the input is a word, all characters except its
first are output. If the input is a sentence, all
words except the first are output.

BK number
BACK number
Moves the turtle backward, i.e., exactly
opposite to the direction that it's facing,
by the specified number of turtle steps.

Example: BACK 150

BL word-or-sentence
BUTLAST word-or-sentence
If the input is a word, all characters except its
last are output. If the input is a sentence, all
words except the last one are output.

CG
CLEAN
Erases everything that the turtle has drawn in the
graphics window.  The turtle's state (position,
heading, pen color, etc.) is not changed.

COS number
Outputs the cosine of number, which is degrees.

COUNT word-or-sentence
If the input is a word, the number of characters
in it is output. If the input is a sentence, the
number of words in it is output.

CT
CLEARTEXT
Erases all of the text in the terminal window.

DIFFERENCE number1 number2
Outputs the result of subtracting number2 from
number1.

Example: DIFFERENCE 15 7

EQUAL? value1 value2
EQUALP value1 value2
If value1 is equal to value2, true is output;
otherwise false is output.

Example: EQUAL? MOUSEX 0

EMPTY? word-or-sentence
EMPTYP word-or-sentence
Outputs true if its input is a word that has no
characters in it, otherwise false. Outputs true
if its input is a sentence that has no words in
it, otherwise false.

FD number
FORWARD number
Moves the turtle forward, in the direction it is
facing, by the specified number of turtle steps.

Example: FORWARD 100

FILL
Whatever color is under the turtle is changed to
the turtle's color, and this process is repeated
in an outward manner for all pixels that are
neighbors and match the original color.

FIRST word-or-sentence
If the input is a word, its first character is
output. If the input is a sentence, its first
word is output.

GREATER? value1 value2
GREATERP value1 value2
If value1 is greater than value2, true is output;
otherwise false is output.

Example: GREATER? MOUSEX 0

HEADING
Outputs the turtle's heading (degrees).

Example: PRINTLN HEADING

HT
HIDETURTLE
Makes the turtle invisible.

HOME
Moves the turtle to the center of the graphics
window, i.e., coordinates 0,0.

IF boolean [ instructions ]
The instructions enclosed in the square brackets
are performed if the boolean value is true,
nothing is done if it's false.  The boolean
value must be either true or false.

Example: IF LESS? :INPUT 0 [ STOP ]

ITEM number word-or-sentence
Outputs the number-th element of its second input.
If its second input is a word, it outputs a word
consisting on the number-th character. If its
second input is a sentence, it outputs the
number-th word of it.

KEYPRESSED
If a user-defined procedure with the name KEYPRESSED,
expecting one input, has been defined, it is performed when
a key is depressed while the graphics canvas has focus.

Example: TO keyPressed :keyNum
PRINTLN SENTENCE "keyPressed= :keyNum
END

Key numbers are:

Number    Character Key           Number   Action Key
--------   ----------------        ------   -----------
8      Backspace                65536   Up Arrow
9      Tab                      65537   Down Arrow
10      Enter                    65538   Left Arrow
27      Esc                      65539   Right Arrow
32 - 127   ASCII Characters         65540   Alt
65541   Control
65542   Shift

LABEL word
LABEL sentence
The text representing LABEL's input is drawn in
the graphics window.

LAST word-or-sentence
If the input is a word, its last character is
output. If the input is a sentence, its last
word is output.

LESS? value1 value2
LESSP value1 value2
If value1 is less than value2, true is output;
otherwise false is output.

Example: LESS? MOUSEX 0

LT number
LEFT number
Turns the turtle counterclockwise by the
specified angle measured by a number of degrees
(1/360 of a circle).

Example: LEFT 180

MAKE name value
Creates a variable named name if it doesn't
already exist.  The contents of the variable
is set to value.

Example: MAKE "WHITE 7

MEMBER? character word
MEMBER? word sentence
MEMBERP character word
MEMBERP word sentence
Outputs true if its first input is in its second
input, otherwise it outputs false.

MINUS number
Outputs the negative of number.

Example: MINUS 10

MOUSECLICK
When a mouse-click (left button) is received by
TG, it invokes a user-defined procedure with the
name MOUSECLICK, if one has been defined.

Example: TO mouseclick
PRINTLN "mouseclick
END

MOUSEX
Outputs the X-coordinate where the mouse was
when it was last clicked.

MOUSEY
Outputs the Y-coordinate where the mouse was
when it was last clicked.

NOT trueFalse
Outputs false if trueFalse is true, else false.

OR trueFalse1 trueFalse2
Outputs true if trueFalse1 OR trueFalse2 is true,
otherwise it outputs false.

Example:
IF OR EQUAL? XCOR 0 EQUAL? YCOR 0 PRINTLN [On Axis]

OUTPUT value
The current invocation of the procedure in which
OUTPUT exists is teminated and value is output.

Example: TO randomColor
OUTPUT RANDOM 16
END

PD
PENDOWN
Puts the turtle's pen down so that it leaves a
trace when it moves.

PP
PRINTPROCS
Displays the names and inputs of all the user-
defined procedures in the terminal window.

PRINTLN word
PRINTLN sentence
The text representing PRINTLN's input is drawn
in the terminal window.

PRODUCT number1 number2
Outputs the result of multiplying number1 by
number2.

Example: PRODUCT 64 8

PT
PRINTTEXT name
Displays the source code representation of
the user-defined procedure named name in the
terminal window.

PU
PENUP
Lifts the turtle's pen up so that it leaves no
trace when it moves.

QUOTIENT number1 number2
Outputs the result of dividing number1 by number2.

Example: QUOTIENT 16384 4096

RANDOM number
Outputs some integer greater-than or equal-to
zero AND less-than number.

Example: RANDOM 16

REMAINDER number1 number2
Output the remainder left after dividing number1
by number2. Number1 and number2 must be integers.

Example: REMAINDER 1234 10

REPEAT number [ instructions ]
Repeats the instructions enclosed in the square
brackets the specified number of times.

Example: REPEAT 4 [ FD 100 RT 90 ]

ROUND number
Outputs the closest integer to number.

Example: ROUND 22.45

RT number
RIGHT number
Turns the turtle clockwise by the specified angle,
measured in degrees (1/360 of a circle).

Example: RIGHT 90

SENTENCE word word
SENTENCE word sentence
SENTENCE sentence word
SENTENCE sentence sentence
Outputs a sentence consisting of its first input
concatenated with its second input.

SETC number
SETPC number
SETPENCOLOR number
Sets the turtle's color - the color of its pen.
Color is expressed as a number.  The available
colors are:

Number  Color       Number  Color
------  -------     ------  -------
0    black          8    brown
1    blue           9    tan
2    green         10    forest
3    cyan          11    aqua
4    red           12    salmon
5    magenta       13    purple
6    yellow        14    orange
7    white         15    grey

Example: SETC 10

SETH number
SETHEADING number
Turns the turtle to a new absolute heading.
The input, number, is the heading in degrees
clockwise from the positive Y axis, i.e.,
0 is due North (up),
90 is due East (right),
180 is due South (down), and
270 is due West (left).

Example: SETH 90

SETLH number
SETLABELHEIGHT number
The height of characters drawn with the LABEL
procedure is set to the input.

Example: SETLABELHEIGHT 24

SETPS number
SETPENSIZE number
Sets the width of the turtle's pen, which
determines the thickness of the trace it leaves,
the line it draws.

Example: SETPENSIZE 5

SETX number
Moves the turtle horizontally to the specified
absolute window position.

Example: SETX 100

SETXY number1 number2
Moves the turtle to an absolute window position,
which is two numbers: the new horizontal (X) and
vertical (Y) coordinates.

Example: SETXY 50 -30

SETY number
Moves the turtle vertically to the specified
absolute window position.

Example: SETY 100

SIN number
Outputs the sine of number which is in degrees.

Example: SIN 45

SQRT number
Outputs the square root of number.

Example: SQRT 64

ST
SHOWTURTLE
Makes the turtle visible.

STOP
The current invocation of the procedure in which
STOP exists terminates.

Example: IF EQUAL? :input 0 [STOP]

SUM number1 number2
Outputs the result of adding number1 and number2.

Example: SUM 123 456

WAIT number
Execution of the program is suspended for number
of milliseconds (1/1000 of a second).

WORD word word
Outputs a word consisting of its first input
concatenated with its second input.

XCOR
Outputs the turtle's X coordinate.

Example: MAKE "curX XCOR

YCOR
Outputs the turtle's Y coordinate.

Example: LABEL YCOR

```

See Appendix J for the application version of this applet as well as all of its source code.

Table of Contents