This is my first interpreter written in Rust. The program lets you control a turtle with specific commands. The program is primarily for teaching programming, by visualizing instruction graphically.
https://gyorgy0.github.io/RuggedTurtle-release/
The program supports multiple commands for controlling the turtle's movement. Valid commands are some hungarian and english keywords.
You can declare numbers as a variable or you can refer to a previously declared variable in a variable declaration.
<variable_name> = variable value
-
+- addition (it adds two numbers or variables together) -
-- subtraction (it subtracts a number from another number or variable) -
*- multiplication (it multiplies a number with another number or variable) -
/- full division (it divides a number with another number or variable, it doesn't neccesarily produce an integer) -
:- integer division (it divides a number with another number or variable, it produces an integer) -
%- remainder division (it divides a number with another number or variable, it gives back the remainder)
-
forward(number of pixels that needs to be travelled by the turtle)
Aliases: e(), elore(), f(), forward() -
right(angle in degrees, it specifies how much it needs to rotate to the character's right side 0-360)
Aliases: j(), jobb(), jobbra(), r(), right() -
left(angle in degrees, it specifies how much it needs to rotate to the character's left side 0-360)
Aliases: b(), bal(), balra(), l(), left() -
pencolor(red channel 0-255, green channel 0-255, blue channel 0-255, alpha channel 0-255) - specifies the color of the line e.g. (0,0,0,255) - black, (255,255,255,255) - white. (255,255,255,255) - transparent
Aliases: tsz(), tollszin(), szin(), pc(), pencolor(), color() -
penwidth(width of the pen in pixels, greater the value the thicker the line left behind)
Aliases: tv(), tollvastagsag(), vastagsag(), pw(), penwidth(), width() -
penup - the turtle lifts up it's pen from the canvas so it doesn't paints it's path on the canvas
Aliases: tf, tollfel, pu, penup -
pendown - the turtle puts down it's pen so it leaves it's path behind
Aliases: tl, tollle, pd, pendown -
evaluate(<variable>) - simplifies and prints out the value of the specified variable
Aliases: kier(), kiertekeles(), kiszamolas(), eval(), calc(), calculate(), evaluate() -
print(<variable>) - prints out the specified variable
Aliases: ki(), kiir(), kiiratas(), print() -
clear - clears the terminal history
Aliases: trl, torol, clr, clear -
reset - resets the application
Aliases: alaphelyzet, reset, default -
help - prints out the commands and their usage
Aliases: ?, segitseg, help
repeat(variable, from, to (exclusive boundary - it goes until it hits the NUMBER BEFORE THE SPECIFIED number )) {commands}
Aliases: i() {}, ism() {}, ismetles() {}, r() {}, rep() {}, repeat() {}, for() {}
rugged-turtle-usage.mp4
Here are some commands and their effect on the turtle's movement.
for(i, 0, 200) {pencolor(55+i, 0, 55+i, 255); forward(30+i); right(59)}
for(i, 0, 200) {forward(100); right(59+i); forward(100)}


