Skip to content

jaakkosipari/turtle-roy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turtle Roy

A Roy programming/learning environment with Turtle Graphics, as in the Logo programming language.

Try it online: turtle-roy.heroku.com/

Turtle Roy API

fd 100                      | moves 100 pixelx forward
lt 45                       | turns left 45 degrees
rt 90                       | turns right 90 degrees
penup                       | lifts the pen, no trace left when moving
pendown                     | lowers the pen again for drawing
cursor "rocket-large"       | changes the cursor. available (with and without -large): butterfly, car, fairy, formula, princess & rocket
clear                       | clear the paper and reset turtle to center
say "wat"                   | speak!
print "x"                   | print to console
login "raimo"               | login as "raimo" (this is the author name in your saved work)
save "asdf"                 | save current work as "asdf"
open "asdf"                 | open saved work "asdf" (presuming you've saved with this name and current author name)
whoami                      | show the author name of the logged-in user (this is just saved in a cookie)
ls                          | list your saved works
play c                      | plays the note C    
sequence [fd 100, rt 90]    | 100 pixels forward, then right turn
repeat 4 (say "hello")      | says "hello" 5 times
par [play c, play e]        | playes notes C and E in parallel

Examples

Bunch of examples available in the demo menu. Some more stuff here.

Basic Turtle commands

fd 100
lt 90
rt 45

Square

let square = repeat 4 (sequence[fd 50, lt 90])
square

Flower

let flower = repeat 36 (rt 10, square)
flower

Math

3 + 4
3 / 4
let factorial n = if n==1 then 1 else n * (factorial n - 1)
factorial 12

Strings

"apple" ++ "sauce"
"apple" + 10 (won't compile)

Lists

range 1 99
head [1,2,3]
tail [1,2,3]
concat [1,2,3] [4,5,6]
length [1,2,3]
let reverse xs = if (empty xs) then [] else concat (reverse (tail xs)) [head xs]
reverse [1,2,3]

Running

./sbt ~container:start

Credits

Thanks to Miikka "arcatan" Koskinen for creating tryroy, from where I shamelessly stole the Roy browser REPL.

Thanks to Brian McKenna for the Roy language and support.

See origins of the cursor images from src/main/webapp/images/image-sources.txt

About

Turtle Roy == Roy with Turtle Graphics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 70.5%
  • C++ 21.4%
  • Perl 4.8%
  • C 3.0%
  • Scala 0.1%
  • Shell 0.1%
  • Other 0.1%