Click in the CommandCenter box (subwindow) to start.
TurtleGraphics Programming Environment Applet
If this applet is broken and you are using Chrome, click here.
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.