SHOW:
|
|
- or go back to the newest paste.
1 | from turtle import * | |
2 | ||
3 | ||
4 | axiomA='A' | |
5 | rulesA = {} | |
6 | rulesA['A'] = 'AB' | |
7 | rulesA['B'] = 'A' | |
8 | ||
9 | axiomB='B' | |
10 | rulesB = {} | |
11 | rulesB['B'] = 'BA' | |
12 | rulesB['A'] = 'B' | |
13 | ||
14 | axiomF='F' | |
15 | rulesF = {} | |
16 | rulesF['F'] = 'F+F-F-F+F' | |
17 | turtleRulesF = {} | |
18 | turtleRulesF['F'] = 'forward(10)' | |
19 | turtleRulesF['+'] = 'left(90)' | |
20 | turtleRulesF['-'] = 'right(90)' | |
21 | ||
22 | axiomS='A' | |
23 | rulesS = {} | |
24 | rulesS['A'] = 'B-A-B' | |
25 | rulesS['B'] = 'A+B+A' | |
26 | turtleRulesS = {} | |
27 | turtleRulesS['A'] = 'forward(5)' | |
28 | turtleRulesS['B'] = 'forward(5)' | |
29 | turtleRulesS['+'] = 'left(60)' | |
30 | turtleRulesS['-'] = 'right(60)' | |
31 | ||
32 | ||
33 | - | print iterate(axiomA,rulesB,6) |
33 | + | |
34 | - | print iterate(axiomB,rulesA,6) |
34 | + | |
35 | - | directions = iterate(axiomF,rulesF,3) |
35 | + | |
36 | - | print directions |
36 | + | |
37 | output = output + rules.get(i,i) | |
38 | return output | |
39 | ||
40 | - | for words in directions: |
40 | + | |
41 | - | if words == 'F': |
41 | + | |
42 | - | forward(10) |
42 | + | |
43 | - | elif words == '+': |
43 | + | |
44 | - | left(90) |
44 | + | |
45 | - | elif words == '-': |
45 | + | |
46 | - | right(90) |
46 | + | |
47 | - | |
47 | + | |
48 | #print iterate(axiomA,rulesB,6) | |
49 | #print iterate(axiomB,rulesA,6) | |
50 | #directions = iterate(axiomF,rulesF,3) | |
51 | #print directions | |
52 | ||
53 | def evaluate(axiom,rules,turtleRules,times): | |
54 | for words in iterate(axiom,rules,times): | |
55 | eval(turtleRules[words]) | |
56 | ||
57 | speed(0) | |
58 | setx(-200) | |
59 | color('red','yellow') | |
60 | begin_fill() | |
61 | evaluate(axiomS,rulesS,turtleRulesS,6) | |
62 | end_fill() | |
63 | done() | |
64 | ||
65 | #special thanks to http://www.4dsolutions.net/ocn/lsystems.html |