title: Logic error in python turtle
body: <p>I am coding in python 3.2 turtle and I have this beautiful drawing of a tank. and I know how to move it left and write. However, when trying to make the tank move up and down. I am faced with the problem that it goes up but if I let go and press the up button again. It turns to the left. It might be hard to explain so I included code.</p>
  
  <pre><code>"""
  Programmer: Bert
  Tank Run 1
  """
  
  #------------------------------------------------------------------------------
  #Importing random modules geddit
  from turtle import *
  from turtle import Turtle
  import turtle
  import random
  
  #Welcome Statement and story
  input("WELCOME TO TANK RUN 1!! PRESS ENTER TO CONTINUE")
  Name = input("Name your Tank: ")
  quitFunction = input(
  """The """ + Name + """ is in a battle and heading toward the
  enemy base camp so that the """ + Name + """ can blow it up
  Get to the base camp and do not let enemy
  artillery, or soldiers kill you. Good luck"""
  )
  
  #setting up variables
  unVar1 = 25
  unVar2 = 100
  unVar3 = 90
  unVar4 = 150
  unVar5 = -30
  unVar6 = 75
  unVar7 = 50
  t = Turtle()
  
  #defining shapes
  def polySquare(t, x, y, length):
      t.goto(x, y)
      t.setheading(270)
      t.begin_poly()
      for count in range(4):
          t.forward(length)
          t.left(90)
      t.end_poly()
      return t.get_poly()
  
  def polyCircle(t, x, y, radius):
      t.up()
      t.goto(x, y)
      t.down()
      t.hideturtle()
      t.circle(radius)
      t.end_poly()
      return t.get_poly()
  
  def polyRectangle(t, x, y, length1, length2):
      t.goto(x, y)
      t.setheading(270)
      t.begin_poly()
      for count in range(2):
          t.forward(length1)
          t.left(90)
          t.forward(length2)
          t.left(90)
      t.end_poly()
      return t.get_poly()
  
  def drawLine(t, x1, x2, y1, y2):
      t.up()
      t.hideturtle()
      t.goto(x1, y1)
      t.do+wn()
      t.goto(x2, y2)
  
  def tankCursor():
      """
      Create the tank cursor.  An alternate solution is to toss the temporary turtle
      and use the commented out polygon assignments instead of the poly* function calls
      """
      temporary = turtle.Turtle()
      screen = turtle.getscreen()
      delay = screen.delay()
      screen.delay(0)
      temporary.hideturtle()
      temporary.penup()
      tank = turtle.Shape("compound")
      # tire1 = ((10, unVar1), (10, unVar1 - unVar6), (10 + 30, unVar1 - unVar6), (10 + 30, unVar1))
      tire1 = polyRectangle(temporary, 10, unVar1, unVar6, 30)  # Tire #1
      tank.addcomponent(tire1, "gray", "black")
      # tire2 = ((110, unVar1), (110, unVar1 - unVar6), (110 + 30, unVar1 - unVar6), (110 + 30, unVar1))
      tire2 = polyRectangle(temporary, 110, unVar1, unVar6, 30)  # Tire #2
      tank.addcomponent(tire2, "gray", "black")
      # tire3 = ((110, unVar2), (110, unVar2 - unVar6), (110 + 30, unVar2 - unVar6), (110 + 30, unVar2))
      tire3 = polyRectangle(temporary, 110, unVar2, unVar6, 30)  # Tire #3
      tank.addcomponent(tire3, "gray", "black")
      # tire4 = ((10, unVar2), (10, unVar2 - unVar6), (10 + 30, unVar2 - unVar6), (10 + 30, unVar2))
      tire4 = polyRectangle(temporary, 10, unVar2, unVar6, 30)  # Tire #4
      tank.addcomponent(tire4, "gray", "black")
      # bodyTank = ((20, unVar3), (20, unVar3 - 130), (20 + 110, unVar3 - 130), (20 + 110, unVar3))
      bodyTank = polyRectangle(temporary, 20, unVar3, 130, 110)
      tank.addcomponent(bodyTank, "black", "gray")
      # gunTank = ((65, unVar4), (65, unVar4 - 100), (65 + 20, unVar4 - 100), (65 + 20, unVar4))
      gunTank = polyRectangle(temporary, 65, unVar4, 100, 20)   # Gun
      tank.addcomponent(gunTank, "black", "gray")
      # exhaustTank = ((50, unVar5), (50, unVar5 - 20), (50 + 10, unVar5 - 20), (50 + 10, unVar5))
      exhaustTank = polyRectangle(temporary, 50, unVar5, 20, 10)
      tank.addcomponent(exhaustTank, "black", "gray")
      # turretTank = ((50, unVar7), (50, unVar7 - 50), (50 + 50, unVar7 - 50), (50 + 50, unVar7))
      turretTank = polySquare(temporary, 50, unVar7, 50)  # Turret
      tank.addcomponent(turretTank, "red", "gray")
      turtle.addshape("tank", shape=tank)
      del temporary
      screen.delay(delay)
  
  tankCursor()  # creates and registers the "tank" cursor shape
  tank = turtle
  tank.shape("tank")
  
  turtle.up()  # get rid of the ink
  screen = turtle.Screen()
  
  def moveforward():    #I cannot get this function to work
      tank.left(90)
      tank.forward(40)
  
  def movebackward():    #I cannot get this function to work
      tank.left(90)
      tank.backward(40)
  
  def moveright():
      tank.forward(40)
  
  def moveleft():
      tank.backward(40)
  
  #Background color
  t.screen.bgcolor("green")
  
  #Movement of tank
  screen.onkeypress(moveright, "Right")
  screen.onkeypress(moveleft, "Left")
  screen.onkeypress(moveforward, "Up")
  screen.onkeypress(movebackward, "Down")
  </code></pre>