Turtle Art: Difference between revisions
(more limitations) |
(some detail from actual experience) |
||
Line 25: | Line 25: | ||
There are many restrictions compared to Logo. User defined procedures can't have parameters. Limited screen real-estate makes building large programs infeasible. Only simple variables are available, no lists or other data-structures. You can't make user defined functions which return a value. The conditionals and some of the functions only take constants or variables, not expressions. |
There are many restrictions compared to Logo. User defined procedures can't have parameters. Limited screen real-estate makes building large programs infeasible. Only simple variables are available, no lists or other data-structures. You can't make user defined functions which return a value. The conditionals and some of the functions only take constants or variables, not expressions. |
||
There are five palettes of program elements available for program construction. |
There are five palettes of program elements available for program construction. You add blocks to your program by dragging them from the palette to the main area. You can delete a block by dragging it back onto the palette. |
||
*Turtle (green) |
*Turtle (green) |
||
** |
**Clean |
||
**Forward(n) |
**Forward(n) |
||
**Back(n) |
**Back(n) |
||
Line 33: | Line 33: | ||
**Right(angle) |
**Right(angle) |
||
**Arc(angle,radius) |
**Arc(angle,radius) |
||
** |
**SetYX(x,y) |
||
**SetH(heading) |
**SetH(heading) |
||
**Turtle state values (can plug into a parameter) |
**Turtle state values (can plug into a parameter) |
||
Line 67: | Line 67: | ||
***jog down |
***jog down |
||
*My blocks (yellow) |
*My blocks (yellow) |
||
** |
**Stack1,2 - a rhombus which tops a stack, equivalent to a procedure definition (but without parameters). |
||
**" |
**"Stack1,2" - blocks for invoking a stack (no parameters) |
||
**Store in "box"(n) - blocks for setting a variable |
**Store in "box" 1,2(n) - blocks for setting a variable |
||
**" |
**"Box1,2" (plugs into a parameter) |
||
***''A glaring limitation: you cannot rename these objects. Thus, you are limited to two procedures and two global variables! Madness!'' |
|||
*My stuff (?) |
*My stuff (?) |
||
** ? (no screenshot, and not in groups, but I see it in the source tree) |
** ? (no screenshot, and not in groups, but I see it in the source tree. Perhaps these are features that are under development?) |
||
**1input, 1inputs, 3inputs: looks like invoking a stack with 1/2/3 parameters |
**1input, 1inputs, 3inputs: looks like invoking a stack with 1/2/3 parameters |
||
**boutput: looks like a blank condition |
**boutput: looks like a blank condition |
||
Line 78: | Line 79: | ||
There are also some icons at the bottom right for user control: |
There are also some icons at the bottom right for user control: |
||
* Show/Hide the |
* Show/Hide the current program |
||
* Eraser - clear the screen and reset the turtle (same as the Clean block) |
|||
* Eraser |
|||
* Stop (for infinite loops) |
* Stop (for infinite loops) |
||
Revision as of 18:35, 30 December 2007
see more templates or propose new |
Turtle Art is an activity with a Logo-inspired graphical "turtle" that draws colorful art based on Scratch-like snap-together visual programming elements.
There are many restrictions compared to Logo. User defined procedures can't have parameters. Limited screen real-estate makes building large programs infeasible. Only simple variables are available, no lists or other data-structures. You can't make user defined functions which return a value. The conditionals and some of the functions only take constants or variables, not expressions.
There are five palettes of program elements available for program construction. You add blocks to your program by dragging them from the palette to the main area. You can delete a block by dragging it back onto the palette.
- Turtle (green)
- Clean
- Forward(n)
- Back(n)
- Left(angle)
- Right(angle)
- Arc(angle,radius)
- SetYX(x,y)
- SetH(heading)
- Turtle state values (can plug into a parameter)
- X, Y, heading
- Pen (cyan)
- Pen Up
- Pen Down
- Set Pen Size(n)
- Set Color(n)
- Set Shade(n)
- Fill Screen(color,shade)
- Pen state values (can plug into a parameter)
- Pen size, color, shade
- Numbers (violet)
- Values (can plug into a parameter)
- Number (constant)
- Infix operators(left,right)
- +, -, *, /, mod
- Random(min, max) (constants or boxes only)
- Conditions (oval, plugs into an If block)
- <, >, = (takes two constants or boxes)
- and, or, not (takes other conditions)
- Print(n)
- Values (can plug into a parameter)
- Flow (orange)
- Wait(n)
- Forever[stack] (no continuation)
- Repeat(n)[stack]
- If(condition)[then]
- If(condition)[then][else]
- Stop (no continuation)
- Connectors:
- jog right
- jog down
- My blocks (yellow)
- Stack1,2 - a rhombus which tops a stack, equivalent to a procedure definition (but without parameters).
- "Stack1,2" - blocks for invoking a stack (no parameters)
- Store in "box" 1,2(n) - blocks for setting a variable
- "Box1,2" (plugs into a parameter)
- A glaring limitation: you cannot rename these objects. Thus, you are limited to two procedures and two global variables! Madness!
- My stuff (?)
- ? (no screenshot, and not in groups, but I see it in the source tree. Perhaps these are features that are under development?)
- 1input, 1inputs, 3inputs: looks like invoking a stack with 1/2/3 parameters
- boutput: looks like a blank condition
- opwithlip, opwithlipb: looks like box parameters that can be chained (socket on right)
There are also some icons at the bottom right for user control:
- Show/Hide the current program
- Eraser - clear the screen and reset the turtle (same as the Clean block)
- Stop (for infinite loops)
<gallery>
Image:Turtle0.png|Turtle Art startup screen
Image:Turtle1.png|Clicking on the Blocks menu brings the basic tool set into view
Image:Turtle2.png|Drag blocks from the menu
Image:Turtle3.png|Click on the top block of a stack to execute the stack
Image:Turtle4.png|Other blocks can be found under the tabs
Image:Turtle5.png|
Image:Turtle6.png|Example projects are found on the Projects menu on the upper right of the screen
Image:542-turtleart-2.png
Image:Turtle-recursion-1.jpg|A recursive algorithm (difficult without parameters)