Remove .md and image files and move python files into main chapter folders
This commit is contained in:
parent
5978779a9a
commit
67806dab6a
159 changed files with 0 additions and 4562 deletions
|
|
@ -1,68 +0,0 @@
|
|||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 10
|
||||
# Problem 15
|
||||
|
||||
import turtle
|
||||
|
||||
def createLSystem(numIters,axiom):
|
||||
startString = axiom
|
||||
endString = ""
|
||||
for i in range(numIters):
|
||||
endString = processString(startString)
|
||||
startString = endString
|
||||
|
||||
return endString
|
||||
|
||||
def processString(oldStr):
|
||||
newstr = ""
|
||||
for ch in oldStr:
|
||||
newstr = newstr + applyRules(ch)
|
||||
|
||||
return newstr
|
||||
|
||||
def applyRules(ch):
|
||||
newstr = ""
|
||||
if ch == 'H':
|
||||
newstr = 'HFX[+H][-H]' # Rule 1
|
||||
elif ch == 'X':
|
||||
newstr = 'X[-FFF][+FFF]FX' # Rule 2
|
||||
else:
|
||||
newstr = ch # no rules apply so keep the character
|
||||
|
||||
return newstr
|
||||
|
||||
def drawLsystem(aTurtle, instructions, angle, distance):
|
||||
savedInfoList = []
|
||||
for cmd in instructions:
|
||||
if cmd == 'F':
|
||||
aTurtle.forward(distance)
|
||||
elif cmd == 'B':
|
||||
aTurtle.backward(distance)
|
||||
elif cmd == '+':
|
||||
aTurtle.right(angle)
|
||||
elif cmd == '-':
|
||||
aTurtle.left(angle)
|
||||
elif cmd == '[':
|
||||
savedInfoList.append([aTurtle.heading(), aTurtle.xcor(), aTurtle.ycor()])
|
||||
print(savedInfoList)
|
||||
elif cmd == ']':
|
||||
newInfo = savedInfoList.pop()
|
||||
aTurtle.setheading(newInfo[0])
|
||||
aTurtle.setposition(newInfo[1], newInfo[2])
|
||||
|
||||
def main():
|
||||
inst = createLSystem(6, "H") # create the string
|
||||
print(inst)
|
||||
t = turtle.Turtle() # create the turtle
|
||||
wn = turtle.Screen()
|
||||
wn.tracer(10)
|
||||
|
||||
t.up()
|
||||
t.back(200)
|
||||
t.down()
|
||||
t.speed(0)
|
||||
drawLsystem(t, inst, 25.7, 5) # draw the picture
|
||||
# angle 2, segment length 5
|
||||
wn.exitonclick()
|
||||
|
||||
main()
|
||||
Loading…
Reference in a new issue