Turn on thread page Beta
    • Thread Starter
    Offline

    20
    ReputationRep:
    I am currently, learning Charles Dierbach's book, Introduction to Computer Science using Python.

    I am trying to make my turtle bounce off the canvas but it does not work. I have tried different variations but have not being able to fix it

    Here is my code:


    Code:
    Code:
    #Drunkard walk PYTHON
    
        from turtle import *
        from random import *
        
        #draw a house
        def house(t):
            pu()
            goto(270,100)
            pd()
            pensize(5)
            for i in range(4):
                fd(100)
                right(90)
            setheading(120)
            fd(100)
            setheading(240)
            fd(100)
            pu()
            goto(200,0)
            pd()
            setheading(90)
            fd(70)
            setheading(0)
            fd(40)
            setheading(270)
            fd(70)
            pu()
        
        
        #make roads
        def road(t):
            pu()
            goto(80, 280)
            pd()
            begin_fill()
            color('black')
            setheading(270)
            fd(250)
            setheading(180)
            fd(100)
            setheading(90)
            fd(250)
            setheading(0)
            fd(100)
            end_fill()
            pu()
            goto(80,25)
            pd()
            begin_fill()
            color('white')
            setheading(270)
            for i in range(4):
                fd(70)
                right(90)
                fd(100)
                right(90)
            end_fill()
            pu()
            goto(80, -45)
            pd()
            begin_fill()
            color('black')
            setheading(270)
            fd(240)
            setheading(180)
            fd(100)
            setheading(90)
            fd(240)
            setheading(0)
            fd(100)
            end_fill()
            
          #this is my code to keep turtle on canvas   
        def isInScreen(window, t):
            xmin=-299
            xmax=299
            ymin=-299
            ymax=299
        
            xTcor = t.xcor()
            yTcor = t.ycor()
            
            if xTcor<xmin or xTcor>xmax:
                new_heading = (180 - t.heading())
                return new_heading
            if yTcor<ymin or yTcor>ymax:
                new_heading = (360 - t.heading())
                return new_heading
            #house coord
            if (170<=xTcor<=200 or 200<=xTcor<=270)and yTcor==0:
                new_heading = (360 - t.heading())
                return new_heading
            if xTcor==170 and 0<=yTcor<=100:
                new_heading = (180 - t.heading())
                return new_heading
            if (170<=xTcor<=200 or 200<=xTcor<=270) and yTcor==100:
                new_heading = (360 - t.heading())
                return new_heading
            if xTcor==270 and 0<=yTcor<=100:
                new_heading = (180 - t.heading())
                return new_heading
            if 170<=xTcor<=271 and 100<=yTcor<=150:
                new_heading = (360 - t.heading())
                return new_heading
            if  200<=xTcor<=240 and yTcor ==0:
                new_heading = 0 
                return new_heading
            return  100
            
                
            
        
        #################MAIN####################
        setup(600,600)
        window=Screen()
        window.title("Drunkard walk")
        window.bgcolor("grey")
        
        
        #get the turtle and change the shape
        t=getturtle()
        t.shape('turtle')
        shapesize(2,1.2,1.2)
        
        pu()
        
        #change coords and make the ouer roads
        goto(290,290)
        pd()
        setheading(270)
        pensize(10)
        
        for i in range(4):
            fd(580)
            right(90)
        
        
        shape('circle')
        house(t)
        goto(80,0)
        road(t)
        penup()
        goto(-250,-260)
        shapesize(1,1,1)
        walking = True
        while walking:
            pendown()
            fd(10)
            color = choice(["black", "red", "yellow", "blue", "white", "green"]) 
            fillcolor(color)
            ch = randrange(2)
            if ch == 0:
                left(90)
            else:
                right(90)
            setheading(isInScreen(window, t))
        
        
        mainloop()
        exitonclick()
    Please help me how to fix it and where i went wrong?
 
 
 
Reply
Submit reply
Turn on thread page Beta
Updated: July 24, 2016
Poll
Do you think parents should charge rent?

The Student Room, Get Revising and Marked by Teachers are trading names of The Student Room Group Ltd.

Register Number: 04666380 (England and Wales), VAT No. 806 8067 22 Registered Office: International House, Queens Road, Brighton, BN1 3XE

Write a reply...
Reply
Hide
Reputation gems: You get these gems as you gain rep from other members for making good contributions and giving helpful advice.