Python Forum
Creating code to make up to 4 turtle move simultaneously in a random heading
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Creating code to make up to 4 turtle move simultaneously in a random heading
#1
I have been working on this code for a while now and I can not seem to get these turtle to move at all. I can get them to the starting positions but I cant get them to randomly choose a heading and move 40 pix in that direction(random direction for each turtle between 2 and 4) and then continue to do so until tone of the turtles crosses a red line. My code is below.

""" The goal of this program is to have up to 4 turtles and as little as 2
turtles start out on the green line and race to the red line going in
random directions until one turtle crosses the line. anytime the turtles
hit the top or bottom edge they are to be tranported to a set position
on the grid to restart"""


import turtle as t
import random

def Grid(p):
p.hideturtle()
p.speed(50)
p.penup()
p.setposition(a,b)
p.pendown()
p.setposition(a,d)
p.penup()
p.setposition(a+40,b)
p.pendown()
p.setposition(a+40,d+40)
p.penup()
p.setposition(a+80,b)
p.pendown()
p.setposition(a+80,d+40)
p.penup()
p.setposition(a+120,b)
p.pendown()
p.setposition(a+120,d+40)
p.penup()
p.setposition(a+160,b)
p.pendown()
p.setposition(a+160,d+40)
p.penup()
p.setposition(a+200,b)
p.pendown()
p.setposition(a+200,d+40)
p.penup()
p.setposition(a+240,b)
p.pendown()
p.setposition(a+240,d+40)
p.penup()
p.setposition(a+280,b)
p.pendown()
p.setposition(a+280,d+40)
p.penup()
p.setposition(a+320,b)
p.pendown()
p.setposition(a+320,d+40)
p.penup()
p.setposition(a+360,b)
p.pendown()
p.setposition(a+360,d+40)
p.penup()
p.setposition(a+400,b)
p.pendown()
p.setposition(a+400,d+40)
p.penup()
p.setposition(a+440,b)
p.pendown()
p.setposition(a+440,d+40)
p.penup()
p.setposition(a+480,b)
p.pendown()
p.setposition(a+480,d+40)
p.penup()
p.setposition(a+520,b)
p.pendown()
p.setposition(a+520,d+40)
p.penup()
p.setposition(a+560,b)
p.pendown()
p.setposition(a+560,d+40)
p.penup()
p.setposition(a+600,b)
p.pendown()
p.setposition(a+600,d+40)
p.setposition(a,d+40)
p.setposition(a,b)
p.setposition(a+640,b)
p.setposition(a+640,b+40)
p.setposition(a,b+40)
p.setposition(a,b+80)
p.setposition(a+640,b+80)
p.setposition(a+640,b+120)
p.setposition(a,b+120)
p.setposition(a,b+160)
p.setposition(a+640,b+160)
p.setposition(a+640,b+200)
p.setposition(a,b+200)
p.setposition(a,b+240)
p.setposition(a+640,b+240)
p.setposition(a+640,b+280)
p.setposition(a,b+280)
p.setposition(a,b+320)
p.setposition(a+640,b+320)
p.setposition(a+640,b+360)
p.setposition(a,b+360)
p.setposition(a,b+400)
p.setposition(a+640,b+400)
p.setposition(a+640,b+440)
p.setposition(a,b+440)
p.setposition(a,b+480)
p.setposition(a+640,b+480)
p.setposition(a+640,b+520)
p.setposition(a,b+520)
p.setposition(a,b+560)
p.setposition(a+640,b+560)
p.setposition(a+640,b+600)
p.setposition(a,b+600)
p.setposition(a,b+640)
p.setposition(a+640,b+640)
p.setposition(a+640,b)
p.penup()
p.pencolor('green')
p.pensize(5)
p.setposition(a+40,b)
p.pendown()
p.setposition(a+40,d+40)
p.penup()
p.pencolor('red')
p.pensize(5)
p.setposition(a+600,b)
p.pendown()
p.setposition(a+600,d+40)
p.penup()
p.setposition(-75,20)
p.penup()
p.setposition(a+80,b-40)
p.pendown()
p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+120,b-40)
p.pendown()
p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+160,b-40)
p.pendown()
p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+200,b-40)
p.pendown()
p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+240,b-40)
p.pendown()
p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+280,b-40)
p.pendown()
p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+320,b-40)
p.pendown()
p.write("70",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+360,b-40)
p.pendown()
p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+400,b-40)
p.pendown()
p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+440,b-40)
p.pendown()
p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+480,b-40)
p.pendown()
p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+520,b-40)
p.pendown()
p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+560,b-40)
p.pendown()
p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+80,d+60)
p.pendown()
p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+120,d+60)
p.pendown()
p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+160,d+60)
p.pendown()
p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+200,d+60)
p.pendown()
p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+240,d+60)
p.pendown()
p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+280,d+60)
p.pendown()
p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+320,d+60)
p.pendown()
p.write("70",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+360,d+60)
p.pendown()
p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+400,d+60)
p.pendown()
p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+440,d+60)
p.pendown()
p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+480,d+60)
p.pendown()
p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+520,d+60)
p.pendown()
p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()
p.setposition(a+560,d+60)
p.pendown()
p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
p.penup()



def atTopEdge(turtle,h):
if turtle.xcor()==d+40:
return True
else:
return False
def atBottomEdge(turtle,b):
if turtle.xcor()==d:
return True
else:
return False
def atRightEdge(turtle,w):
if turtle.ycor==a+640:
return True
else:
return False
def atLeftEdge(turtle,a):
if turtle.ycor()==a:
return True
else:
return False


def startPoints(start):
route=[0,90,180,270]
direction=random.choice(route)
if turtles ==2:
t.penup()
start.penup()
mutants[0].goto(a+40,b+200)
mutants[0].fillcolor(colorX[x])
mutants[0].setheading(directionA)
mutants[0].pencolor(colorX[x])
mutants[0].pendown()
mutants[1].goto(a+40,d-160)
mutants[1].fillcolor(colorQ[q])
mutants[1].setheading(directionB)
mutants[1].pencolor(colorQ[q])
mutants[1].pendown()

elif turtles ==3:
start.penup()
mutants[0].setposition(a+40,b+40)
mutants[0].fillcolor(colorX[x])
mutants[0].setheading(directionA)
mutants[0].pencolor(colorX[x])
mutants[0].pendown()
mutants[1].setposition(a+40,d)
mutants[1].fillcolor(colorQ[q])
mutants[1].setheading(directionB)
mutants[1].pencolor(colorQ[q])
mutants[1].pendown()
mutants[2].setposition(a+40,20)
mutants[2].fillcolor(colorG[g])
mutants[2].setheading(directionC)
mutants[2].pencolor(colorG[g])
mutants[2].pendown()

else:
start.penup()
mutants[0].setposition(a+40,b+80)
mutants[0].fillcolor(colorX[x])
mutants[0].setheading(directionA)
mutants[0].pencolor(colorX[x])
mutants[0].pendown()
mutants[1].setposition(a+40,b+240)
mutants[1].fillcolor(colorQ[q])
mutants[1].setheading(directionB)
mutants[1].pencolor(colorQ[q])
mutants[1].pendown()
mutants[2].setposition(a+40,d-40)
mutants[2].fillcolor(colorG[g])
mutants[2].setheading(directionC)
mutants[2].pencolor(colorG[g])
mutants[2].pendown()
mutants[3].setposition(a+40,d-200)
mutants[3].fillcolor(colorP[p])
mutants[3].setheading(directionD)
mutants[3].pencolor(colorP[p])
mutants[3].pendown()

return startPoints



def createTurtles(turtles):
route=[0,90,180,270]
direction=random.choice(route)
mutants=[]
while turtles <2 or turtles >4:
turtles=int(input('Please enter a number between 2 and 4 for the amount of turtles for simulation: '))
else:
for k in range(0,turtles):

new_turtle=t.Turtle()
new_turtle.penup()
new_turtle.shape('turtle')
new_turtle.color(colorP[x])
new_turtle.speed(50)
mutants.append(new_turtle)


return mutants


w=800
h=600
a=-w/2
b=-h/2
c=w/2
d=h/2
f=a+640

t.setup(w,h)
win=t.Screen()
win.title("Turtle Race")
tt=t.getturtle()

q=random.randint(0,1)
g=random.randint(0,1)
p=random.randint(0,1)
x=random.randint(0,1)
y=random.randint(0,3)

colorX=["black","red"]
colorQ=["pink","blue"]
colorG=["orange","gold"]
colorP=["magenta","brown"]

turtles=int(input('Enter a number between 2 and 4 for the amount of turtles for simulation: '))
mutants=createTurtles(turtles)


route=[0,90,180,270]

directionA=random.choice(route)
directionB=random.choice(route)
directionC=random.choice(route)
directionD=random.choice(route)
directionE=random.choice(route)

list_color=[]


Grid(tt)
startPoints(tt)
t.exitonclick()

terminate=False

while not terminate:
direction=random.choice(route)
direct=random.randrange(0,2)
for k in range(0,len(mutants)):
if direct==0:
mutants[k].right(90)
else:
mutants[k].left(90)

mutants[k].forward(40)
if atTopEdge(mutants[k],d+40):
mutants[k].setposition(a+40,d)
elif atBottomEdge(mutants[k],b):
mutants[k].setposition(a+40,d)
elif atLeftEdge(mutants[k],a):
mutants[k].setposition(a+40,d)
elif atRightEdge(mutants[k],a+600):
terminate=True
print("Turtle",mutants[k],"Wins!!")
Reply
#2
First off, you need to format your code using the BBCode tags: https://python-forum.io/misc.php?action=help&hid=25 Your code is too hard to read to be much help.

A few things to look at:
Check out for-loops: https://docs.python.org/3/tutorial/contr...statements
You shouldn't use single-letter variables names; they aren't descriptive and it makes it difficult to understand what the variables should be. a,b,c and d are *awful* variable names.

Finally, you say your code doesn't work right but you don't say how it isn't working right. You need to clearly explain what the code should do and what it is doing instead.
Reply
#3
I hope that makes it easier to read. The code will create the a grid and put up to 4 turtles on the grid in specified positions and give them color. What I can not seem to figure out is getting the turtles to each randomly choose a direction and move 40 pixels in that direction. I figured the while loop at the bottom would have fixed my problem but it did not. Also is there a more reasonable way I could have created the grid instead of hard coding it?
Thanks for the quick reply




""" The goal of this program is to have up to 4 turtles and as little as 2
    turtles start out on the green line and race to the red line going in
    random directions until one turtle crosses the line. anytime the turtles
    hit the top or bottom edge they are to be tranported to a set position
    on the grid to restart"""


import turtle as t
import random

def Grid(p):
    p.hideturtle()
    p.speed(50)
    p.penup()
    p.setposition(a,b)
    p.pendown()
    p.setposition(a,d)
    p.penup()
    p.setposition(a+40,b)
    p.pendown()
    p.setposition(a+40,d+40)
    p.penup()
    p.setposition(a+80,b)
    p.pendown()
    p.setposition(a+80,d+40)
    p.penup()
    p.setposition(a+120,b)
    p.pendown()
    p.setposition(a+120,d+40)
    p.penup()
    p.setposition(a+160,b)
    p.pendown()
    p.setposition(a+160,d+40)
    p.penup()
    p.setposition(a+200,b)
    p.pendown()
    p.setposition(a+200,d+40)
    p.penup()
    p.setposition(a+240,b)
    p.pendown()
    p.setposition(a+240,d+40)
    p.penup()
    p.setposition(a+280,b)
    p.pendown()
    p.setposition(a+280,d+40)
    p.penup()
    p.setposition(a+320,b)
    p.pendown()
    p.setposition(a+320,d+40)
    p.penup()
    p.setposition(a+360,b)
    p.pendown()
    p.setposition(a+360,d+40)
    p.penup()
    p.setposition(a+400,b)
    p.pendown()
    p.setposition(a+400,d+40)
    p.penup()
    p.setposition(a+440,b)
    p.pendown()
    p.setposition(a+440,d+40)
    p.penup()
    p.setposition(a+480,b)
    p.pendown()
    p.setposition(a+480,d+40)
    p.penup()
    p.setposition(a+520,b)
    p.pendown()
    p.setposition(a+520,d+40)
    p.penup()
    p.setposition(a+560,b)
    p.pendown()
    p.setposition(a+560,d+40)
    p.penup()
    p.setposition(a+600,b)
    p.pendown()
    p.setposition(a+600,d+40)
    p.setposition(a,d+40)
    p.setposition(a,b)
    p.setposition(a+640,b)
    p.setposition(a+640,b+40)
    p.setposition(a,b+40)
    p.setposition(a,b+80)
    p.setposition(a+640,b+80)
    p.setposition(a+640,b+120)
    p.setposition(a,b+120)
    p.setposition(a,b+160)
    p.setposition(a+640,b+160)
    p.setposition(a+640,b+200)
    p.setposition(a,b+200)
    p.setposition(a,b+240)
    p.setposition(a+640,b+240)
    p.setposition(a+640,b+280)
    p.setposition(a,b+280)
    p.setposition(a,b+320)
    p.setposition(a+640,b+320)
    p.setposition(a+640,b+360)
    p.setposition(a,b+360)
    p.setposition(a,b+400)
    p.setposition(a+640,b+400)
    p.setposition(a+640,b+440)
    p.setposition(a,b+440)
    p.setposition(a,b+480)
    p.setposition(a+640,b+480)
    p.setposition(a+640,b+520)
    p.setposition(a,b+520)
    p.setposition(a,b+560)
    p.setposition(a+640,b+560)
    p.setposition(a+640,b+600)
    p.setposition(a,b+600)
    p.setposition(a,b+640)
    p.setposition(a+640,b+640)
    p.setposition(a+640,b)
    p.penup()
    p.pencolor('green')
    p.pensize(5)
    p.setposition(a+40,b)
    p.pendown()
    p.setposition(a+40,d+40)
    p.penup()
    p.pencolor('red')
    p.pensize(5)
    p.setposition(a+600,b)
    p.pendown()
    p.setposition(a+600,d+40)
    p.penup()
    p.setposition(-75,20)
    p.penup()
    p.setposition(a+80,b-40)
    p.pendown()
    p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+120,b-40)
    p.pendown()
    p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+160,b-40)
    p.pendown()
    p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+200,b-40)
    p.pendown()
    p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+240,b-40)
    p.pendown()
    p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+280,b-40)
    p.pendown()
    p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+320,b-40)
    p.pendown()
    p.write("70",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+360,b-40)
    p.pendown()
    p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+400,b-40)
    p.pendown()
    p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+440,b-40)
    p.pendown()
    p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+480,b-40)
    p.pendown()
    p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+520,b-40)
    p.pendown()
    p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+560,b-40)
    p.pendown()
    p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+80,d+60)
    p.pendown()
    p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+120,d+60)
    p.pendown()
    p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+160,d+60)
    p.pendown()
    p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+200,d+60)
    p.pendown()
    p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+240,d+60)
    p.pendown()
    p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+280,d+60)
    p.pendown()
    p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+320,d+60)
    p.pendown()
    p.write("70",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+360,d+60)
    p.pendown()
    p.write("60",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+400,d+60)
    p.pendown()
    p.write("50",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+440,d+60)
    p.pendown()
    p.write("40",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+480,d+60)
    p.pendown()
    p.write("30",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+520,d+60)
    p.pendown()
    p.write("20",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()
    p.setposition(a+560,d+60)
    p.pendown()
    p.write("10",move=False,align="center",font=("Ariel",12,"normal"))
    p.penup()



def atTopEdge(turtle,h):
    if turtle.xcor()==d+40:
        return True
    else:
        return False
def atBottomEdge(turtle,b):
    if turtle.xcor()==d:
         return True
    else:
        return False
def atRightEdge(turtle,w):
    if turtle.ycor==a+640:
     return True
    else:
        return False
def atLeftEdge(turtle,a):
    if turtle.ycor()==a:
     return True
    else:
        return False


def startPoints(start):
    route=[0,90,180,270]
    direction=random.choice(route)
    if turtles ==2:
          t.penup()
          start.penup()
          mutants[0].goto(a+40,b+200)
          mutants[0].fillcolor(colorX[x])
          mutants[0].setheading(directionA)
          mutants[0].pencolor(colorX[x])
          mutants[0].pendown()
          mutants[1].goto(a+40,d-160)
          mutants[1].fillcolor(colorQ[q])
          mutants[1].setheading(directionB)
          mutants[1].pencolor(colorQ[q])
          mutants[1].pendown()
          
    elif turtles ==3:
          start.penup()
          mutants[0].setposition(a+40,b+40)
          mutants[0].fillcolor(colorX[x])
          mutants[0].setheading(directionA)
          mutants[0].pencolor(colorX[x])
          mutants[0].pendown()
          mutants[1].setposition(a+40,d)
          mutants[1].fillcolor(colorQ[q])
          mutants[1].setheading(directionB)
          mutants[1].pencolor(colorQ[q])
          mutants[1].pendown()
          mutants[2].setposition(a+40,20)
          mutants[2].fillcolor(colorG[g])
          mutants[2].setheading(directionC)
          mutants[2].pencolor(colorG[g])
          mutants[2].pendown()
          
    else:
          start.penup()
          mutants[0].setposition(a+40,b+80)
          mutants[0].fillcolor(colorX[x])
          mutants[0].setheading(directionA)
          mutants[0].pencolor(colorX[x])
          mutants[0].pendown()
          mutants[1].setposition(a+40,b+240)
          mutants[1].fillcolor(colorQ[q])
          mutants[1].setheading(directionB)
          mutants[1].pencolor(colorQ[q])
          mutants[1].pendown()
          mutants[2].setposition(a+40,d-40)
          mutants[2].fillcolor(colorG[g])
          mutants[2].setheading(directionC)
          mutants[2].pencolor(colorG[g])
          mutants[2].pendown()
          mutants[3].setposition(a+40,d-200)
          mutants[3].fillcolor(colorP[p])
          mutants[3].setheading(directionD)
          mutants[3].pencolor(colorP[p])
          mutants[3].pendown()
     
    return startPoints



def createTurtles(turtles):
    route=[0,90,180,270]
    direction=random.choice(route)
    mutants=[]
    while turtles <2 or turtles >4:
        turtles=int(input('Please enter a number between 2 and 4 for the amount of turtles for simulation: '))
    else:
        for k in range(0,turtles):
            
            new_turtle=t.Turtle()
            new_turtle.penup()
            new_turtle.shape('turtle')
            new_turtle.color(colorP[x])
            new_turtle.speed(50)
            mutants.append(new_turtle)
            
        
    return mutants


w=800
h=600
a=-w/2
b=-h/2
c=w/2
d=h/2
f=a+640

t.setup(w,h)
win=t.Screen()
win.title("Turtle Race")
tt=t.getturtle()

q=random.randint(0,1)
g=random.randint(0,1)
p=random.randint(0,1)
x=random.randint(0,1)
y=random.randint(0,3)

colorX=["black","red"]
colorQ=["pink","blue"]
colorG=["orange","gold"]
colorP=["magenta","brown"]

turtles=int(input('Enter a number between 2 and 4 for the amount of turtles for simulation: '))
mutants=createTurtles(turtles)


route=[0,90,180,270]

directionA=random.choice(route)
directionB=random.choice(route)
directionC=random.choice(route)
directionD=random.choice(route)
directionE=random.choice(route)

list_color=[]


Grid(tt)
startPoints(tt)
t.exitonclick()

terminate=False

while not terminate:
    direction=random.choice(route)
    direct=random.randrange(0,2)
    for k in range(0,len(mutants)):
        if direct==0:
            mutants[k].right(90)
        else:
            mutants[k].left(90)
            
        mutants[k].forward(40)
        if atTopEdge(mutants[k],d+40):
             mutants[k].setposition(a+40,d)
        elif atBottomEdge(mutants[k],b):
             mutants[k].setposition(a+40,d)
        elif atLeftEdge(mutants[k],a):
             mutants[k].setposition(a+40,d)
        elif atRightEdge(mutants[k],a+600):
             terminate=True
             print("Turtle",mutants[k],"Wins!!")
Reply
#4
There is definitely a more reasonable way to create that grid using one or more for-loops. However, I can't understand your current for-loop without spending way more time than I have to work it out on my own. There isn't a single comment and p, a, b, d are terrible variable names because they convey absolutely zero information. use whole words for your variables!!!!

To get you started, you want to do something like this:
# when working with grids/positions, x,y are acceptable variable names
tmp_a = a  # I don't know what these are, so I'm resuing them.
tmp_d = d 
for x in range(0,16): # 16 * 40 = 640 which seems to be as high as you're going
    for y in range(0, 16):  
       p.setposition(tmp_a, tmp_d)
       tmp_d += 40
    tmp_a += 40
I don't know if this will accomplish what you want but it should illustrate how to loop through a range of numbers, adjusting them by 40 each time through.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Photo I need help with a circle random color code and error Vxploit 4 2,955 Mar-21-2021, 07:23 PM
Last Post: jefsummers
  Tracy the turtle code shortening invaneri 1 4,104 Sep-06-2020, 05:36 AM
Last Post: buran
  Creating a link that takes the user to a random page card51shor 9 6,043 Jul-06-2020, 05:38 AM
Last Post: card51shor
  [split] help me make this code better please (basic) Rustam 2 2,228 Jun-19-2020, 01:27 PM
Last Post: Rustam
  John Guttag Book - Finger Exercise 4 - need help to make the code better pritesh 12 10,523 May-06-2020, 05:10 PM
Last Post: riteshp
  How to make tkinter object move endlessly JacobTroubler 2 4,573 Dec-25-2019, 01:29 AM
Last Post: woooee
  How to make this dictionary-generating code more efficient? Mark17 4 2,319 Oct-08-2019, 07:42 PM
Last Post: Mark17
  Code: Creating a basic python game? searching1 5 3,377 Nov-12-2018, 05:18 AM
Last Post: searching1
  creating functions - make optional argument a reversal anstuteville 2 2,554 Aug-31-2018, 02:36 PM
Last Post: anstuteville
  How to make faster this code Ace 1 2,928 Oct-23-2017, 12:11 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020