-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
300 lines (189 loc) · 4.54 KB
/
README
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
# Skim-logo
## About
This program is a skim version of the Logo Programming Language, coded as assignment for the Intermediate Programming course at the University of Guelph.
## Compiling
To compile this program type "make". The binary executable will be created on the 'bin' folder.
## Running the program
To run the program type "./bin/runMe"
## How to use
To use this program, you need to type your inputs in the command line.
Each command and its parameters must be separated by a space. You can type more than one command per line, but the line length is limited.
### DATA TYPES
You can use 3 types of data. Any of these type can be stored in a variable (See the make command)
Int
----
Any parameter formed only by numbers.
Examples:
1
-123
9829
Boolean
-----------
Parameters true and false
Examples:
true
false
Float
-------
Any parmeter formed only by numbers and a single dot.
Examples:
-1.0
234.56
3.14159
String
--------
Any parameter begining with a double quote.
Examples:
"CIS2500
"LogoIsFun
"ThatsWhatSheSaid
### Commands
Available commands.
#### Command: make
##### Description:
Creates a variable with the name and value passed as parameters
Usage:
make [ string ] [ int | float | string | bool ]
#### Command: +
###### Description:
Plus arithmetic operation.
Usage:
[ int | float ] + [ int | float]
#### Command: -
##### Description:
Minus arithmetic operation.
Usage:
[ int | float ] - [ int | float]
#### Command: *
##### Description:
Times arithmetic operation.
Usage:
[ int | float ] + [ int | float]
#### Command: /
##### Description:
Divide arithmetic operation.
Usage:
[ int | float ] / [ int | float]
#### Command: and
##### Description:
and boolean operation
Usage:
and [ bool ] [ bool ]
#### Command: or
##### Description:
or boolean operation
Usage:
or [ bool ] [ bool ]
#### Command: <
##### Description:
Lesser than relational operation.
Usage:
[ int | float ] < [ int | float]
#### Command: <=
##### Description:
Less than or equal relational operation.
Usage:
[ int | float ] <= [ int | float]
#### Command: >
##### Description:
Greater than relational operation.
Usage:
[ int | float ] > [ int | float]
#### Command: >=
##### Description:
Greater than or equal relational operation.
Usage:
[ int | float ] >= [ int | float]
#### Command: =
##### Description:
Equal relational operation.
Usage:
[ int | float ] = [ int | float]
#### Command: <>
##### Description:
Not equal relational operation.
Usage:
[ int | float ] <> [ int | float]
#### Command: fd
##### Description:
Moves the turtle foward
Usage:
fd [ int | float ]
#### Command: bk
##### Description:
Moves the turtle backwards
Usage:
bk [ int | float ]
#### Command: rt
##### Description:
Rotate the turtle clockwise by the angle passed as parameter
Usage:
rt [ int | float ]
#### Command: lt
##### Description:
Rotate the turtle counter clockwise by the angle passed as parameter
Usage:
lt [ int | float ]
#### Command: pu
##### Description:
Disable the writing ability of the turtle
Usage:
pu
#### Command: pd
##### Description:
Enable the writing ability of the turtle
Usage:
pu
#### Command: setxy
##### Description:
Moves the turtle to the coordinate passed as parameter
Usage:
setxy [ int | float ] [ int | float ]
#### Command: home
##### Description:
Moves the turtle to the starting point of the board. Also resets its angle to 90 degrees
Usage:
home
#### Command: clean
##### Description:
Cleans the entire board
Usage:
clean
#### Command: st
##### Description:
If the turtle is hidden, makes it visible again
Usage:
st
#### Command: ht
##### Description:
If the turtle is visible, makes it hidden
Usage:
ht
#### Command: setpencolor
##### Description:
Changes the color of the turtle's pen
Usage:
setpencolor [ int ]
#### Command: beginfile
##### Description:
Creates a new file (name passed as parameter) and starts writing the user's commands in it
Usage:
beginfile [ string ]
#### Command: endfile
##### Description:
Stops the writing of a file
Usage:
endfile
#### Command: loadfile
##### Description:
Load a file previously saved, and execute its commands
Usage:
loadfile [ string ]
#### Command: exit
##### Description:
Closes the program
Usage:
exit
### Restrictions
- The turtle can't go out of the screen. If the user make an input that finishes outside the board, the turtle will stop at the border
- The max input is 90 characters (But there's no limit on the number of commands per line)