-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
72 lines (55 loc) · 1.38 KB
/
main.cpp
File metadata and controls
72 lines (55 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
author: Kyriazis
*/
#include "LOGO.h"
TO draw_square WITH args FSTART
SETPENCOLOR ARG(2)
REPEAT 4 TIMES
DO
FORWARD ARG(1)
RIGHT NUMBER: 90
END
FEND
START_PROGRAM
MAKE L = LIST[ARRAY{ WORD: "FORWARD" , NUMBER : 100 }, WORD:"1", WORD : ":2", ARRAY{ WORD: "FORWARD" , NUMBER : 100 }, ARRAY{ WORD: "FORWARD" , NUMBER : 100 }, ARRAY{ WORD: "FORWARD" , NUMBER : 100 }, ARRAY{ WORD: "FORWARD" , NUMBER : 100 }]
MAKE turtle = LIST[
ARRAY{ WORD: "FORWARD" , NUMBER : 100 },
ARRAY{ WORD: "RIGHT", NUMBER : 90 },
ARRAY{ WORD: "FORWARD", NUMBER : 100 },
ARRAY{ WORD: "RIGHT", NUMBER : 90 },
ARRAY{ WORD: "FORWARD", NUMBER : 100 },
ARRAY{ WORD: "LEFT", NUMBER : 90 },
ARRAY{ WORD: "FORWARD", NUMBER : 100 },
ARRAY{ WORD: "LEFT", NUMBER : 90 }]
; CENTER
REPEAT 2 TIMES
DO
FOREACH turtle DO
IF ITEM({ 1 }, ELEM) == (WORD:"FORWARD") DO
FORWARD NUMBER : 100
; ELIF ITEM({ 1 }, ELEM) == (WORD:"BACK") DO
BACK ITEM({ 2 }, ELEM)
; ELIF ITEM({ 1 }, ELEM) == (WORD:"LEFT") DO
LEFT ITEM({ 2 }, ELEM)
; ELSE
RIGHT ITEM({ 2 }, ELEM)
END
END
END
PENUP
CENTER
RIGHT NUMBER : 90
FORWARD NUMBER : 150
PENDOWN
REPEAT 360 TIMES DO
FORWARD NUMBER : 2
RIGHT NUMBER : 1
END
REPEAT 72 TIMES
DO
CALL draw_square(LIST[PRODUCT(NUMBER:12, REPCOUNT),
LIST[SUM(NUMBER:12, REPCOUNT), NUMBER:0, NUMBER : 0]])
RIGHT NUMBER : 10;
END
; wait(3);
END_PROGRAM