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 | - | axiomF='F--F--F' |
11 | + | |
12 | rulesB['A'] = 'B' | |
13 | - | rulesF['F'] = 'F+F--F+F' |
13 | + | |
14 | axiomF='F' | |
15 | rulesF = {} | |
16 | rulesF['F'] = 'F+F-F-F+F' | |
17 | - | output = "" |
17 | + | |
18 | - | for i in axiom: |
18 | + | |
19 | - | output = output + rules.get(i,i) |
19 | + | |
20 | - | return output |
20 | + | output = "" |
21 | - | |
21 | + | for i in axiom: |
22 | output = output + rules.get(i,i) | |
23 | - | if times == 0: |
23 | + | return output |
24 | - | print axiom |
24 | + | |
25 | - | else: |
25 | + | |
26 | - | iterate(compose(axiom, rules), rules, times -1) |
26 | + | output = '' |
27 | - | |
27 | + | if times == 0: |
28 | - | iterate(axiomB,rulesB,6) |
28 | + | output = axiom |
29 | - | iterate(axiomA,rulesA,6) |
29 | + | else: |
30 | - | iterate(axiomF,rulesF,6) |
30 | + | return iterate(compose(axiom, rules), rules, times -1) |
31 | return output | |
32 | ||
33 | print iterate(axiomA,rulesB,6) | |
34 | print iterate(axiomB,rulesA,6) | |
35 | directions = iterate(axiomF,rulesF,3) | |
36 | print directions | |
37 | ||
38 | color('red','yellow') | |
39 | begin_fill() | |
40 | for words in directions: | |
41 | if words == 'F': | |
42 | forward(10) | |
43 | elif words == '+': | |
44 | left(90) | |
45 | elif words == '-': | |
46 | right(90) | |
47 | ||
48 | end_fill() | |
49 | done() | |
50 | ||
51 | #special thanks to http://www.4dsolutions.net/ocn/lsystems.html |