python use turtle draw a track n field race track -
write programme using turtle draws track several lanes. may inquire user come in integer in between 1 , 8 number of lanes. track typically consists of 2 straightaways semicircles on both sides. lane enclosed between 2 of these shapes. thus, track 6 lanes should have 7 figures of similar shape, enclosed in 1 another.
the question stated above outcome trying produce. each line of track keeps starting in same line. please help! should trying alter starting position?
import turtle def main(): side = 80 n = int(input("how many lanes want?\n")) turtle.pendown() cnt in range(n+1): race = turtle.turtle() race.forward(side) race.circle(side/2,180) race.forward(side) race.circle(side/2,180) side = side = side + 20 main()
some of import things note:
turtle.pendown()
not alter particular instance or race
, want race.pendown()
each time race = turtle.turtle()
, create new instance of race
take statement out side of loop.
each loop create need move race
(for spacing of tracks), can with:
race.penup() #inside loop. race.right(90) race.forward(20) #i think should 20... race.right(-90)
just clear looks in end:
import turtle
def main(): side = 80 n = int(input("how many lanes want?\n")) race = turtle.turtle() cnt in range(n+1): race.forward(side) race.circle(side,180) race.forward(side) race.circle(side,180) side = side = side + 20 race.penup() #inside loop. race.right(90) race.forward(20) #i think should 20... race.right(-90) race.backward(10) race.pendown() main()
meanwhile, in midst of 3 lanes:
even more refactored code:
import turtle def create_track(n, side=80, change=20): race = turtle.turtle() cnt in range(n+1): race.forward(side) race.circle(side,180) race.forward(side) race.circle(side,180) side = side + alter race.penup() race.right(90) race.forward(change) race.right(-90) race.backward(change/2) race.pendown() def main(): n = int(input("how many lanes want?\n")) create_track(n) if __name__ == "__main__": main()
python-3.x turtle-graphics
No comments:
Post a Comment