Simple turtle graphics: Difference between revisions
Content added Content deleted
Line 279: | Line 279: | ||
New_Line; |
New_Line; |
||
end main; |
end main; |
||
</syntaxhighlight> |
|||
=={{header|EasyLang}}== |
|||
[https://easylang.dev/ide/#run=subr%20home%0A%20%20%20deg%20%3D%200%0A%20%20%20x%20%3D%2050%0A%20%20%20y%20%3D%2050%0A%20%20%20down%20%3D%200%0A%20%20%20move%20x%20y%0A.%0Acall%20home%0A%23%20%0Aproc%20forward%20n%20.%20.%0A%20%20%20x%20%2B%3D%20cos%20deg%20*%20n%0A%20%20%20y%20%2B%3D%20sin%20deg%20*%20n%0A%20%20%20if%20down%20%3D%201%0A%20%20%20%20%20%20line%20x%20y%0A%20%20%20else%0A%20%20%20%20%20%20move%20x%20y%0A%20%20%20.%0A%20%20%20sleep%200.1%0A.%0Aproc%20turn%20a%20.%20.%0A%20%20%20deg%20-%3D%20a%0A.%0A%23%20%0Aproc%20house%20.%20.%0A%20%20%20call%20turn%20180%0A%20%20%20call%20forward%2045%0A%20%20%20call%20turn%20180%0A%20%20%20down%20%3D%201%0A%20%20%20%23%20%0A%20%20%20call%20forward%2030%0A%20%20%20call%20turn%2090%0A%20%20%20call%20forward%2030%0A%20%20%20call%20turn%2090%0A%20%20%20call%20forward%2030%0A%20%20%20call%20turn%2090%0A%20%20%20call%20forward%2030%0A%20%20%20%23%20%0A%20%20%20call%20turn%2030%0A%20%20%20call%20forward%2030%0A%20%20%20call%20turn%20120%0A%20%20%20call%20forward%2030%0A%20%20%20call%20home%0A.%0Acall%20house%0A%23%20%0Aproc%20bar%20a%5B%5D%20.%20.%0A%20%20%20call%20turn%2090%0A%20%20%20call%20forward%2030%0A%20%20%20call%20turn%20-90%0A%20%20%20down%20%3D%201%0A%20%20%20for%20i%20to%20len%20a%5B%5D%0A%20%20%20%20%20%20max%20%3D%20higher%20max%20a%5Bi%5D%0A%20%20%20.%0A%20%20%20for%20i%20to%20len%20a%5B%5D%0A%20%20%20%20%20%20h%20%3D%20a%5Bi%5D%20%2F%20max%20*%2050%0A%20%20%20%20%20%20w%20%3D%2045%20%2F%20len%20a%5B%5D%0A%20%20%20%20%20%20call%20turn%20-90%0A%20%20%20%20%20%20call%20forward%20h%0A%20%20%20%20%20%20call%20turn%2090%0A%20%20%20%20%20%20call%20forward%20w%0A%20%20%20%20%20%20call%20turn%2090%0A%20%20%20%20%20%20call%20forward%20h%0A%20%20%20%20%20%20call%20turn%20-90%0A%20%20%20.%0A%20%20%20call%20turn%20180%0A%20%20%20call%20forward%2045%0A%20%20%20call%20home%0A.%0Acall%20bar%20%5B%2050%2033%20200%20130%2050%20%5D%0A Run it] |
|||
<syntaxhighlight lang="easylang"> |
|||
subr home |
|||
deg = 0 |
|||
x = 50 |
|||
y = 50 |
|||
down = 0 |
|||
move x y |
|||
. |
|||
call home |
|||
# |
|||
proc forward n . . |
|||
x += cos deg * n |
|||
y += sin deg * n |
|||
if down = 1 |
|||
line x y |
|||
else |
|||
move x y |
|||
. |
|||
sleep 0.1 |
|||
. |
|||
proc turn a . . |
|||
deg -= a |
|||
. |
|||
# |
|||
proc house . . |
|||
call turn 180 |
|||
call forward 45 |
|||
call turn 180 |
|||
down = 1 |
|||
# |
|||
call forward 30 |
|||
call turn 90 |
|||
call forward 30 |
|||
call turn 90 |
|||
call forward 30 |
|||
call turn 90 |
|||
call forward 30 |
|||
# |
|||
call turn 30 |
|||
call forward 30 |
|||
call turn 120 |
|||
call forward 30 |
|||
call home |
|||
. |
|||
call house |
|||
# |
|||
proc bar a[] . . |
|||
call turn 90 |
|||
call forward 30 |
|||
call turn -90 |
|||
down = 1 |
|||
for i to len a[] |
|||
max = higher max a[i] |
|||
. |
|||
for i to len a[] |
|||
h = a[i] / max * 50 |
|||
w = 45 / len a[] |
|||
call turn -90 |
|||
call forward h |
|||
call turn 90 |
|||
call forward w |
|||
call turn 90 |
|||
call forward h |
|||
call turn -90 |
|||
. |
|||
call turn 180 |
|||
call forward 45 |
|||
call home |
|||
. |
|||
call bar [ 50 33 200 130 50 ] |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||