title: Towers of hanoi in python with turtle graphics moving disks
body: <p>I've made the game: Towers of Hanoi in Python with turtle graphics because it was my school assignment.</p>
  
  <pre><code>#For moving disks 
  Selected = []
  Steps = 0
  
  amount = 6 #amount of disks
  
  #Properties = [X, Y, Width, Height, Tower's Disks]
  Tower1 = [-2 - amount, -1, amount, 3/2, []]
  Tower2 = [0, -1, amount, 3/2, []]
  Tower3 = [2 + amount, -1, amount, 3/2, []]
  
  Tower1[4] = CreateDisks(amount, Tower1)
  
  Tower1 = TowerCreate(Tower1)
  Tower2 = TowerCreate(Tower2)
  Tower3 = TowerCreate(Tower3)
  #(After / Na 'TowerCreate') Properties = [X, Y, Width, Height, Tower's Disks, Tower's Button]
  </code></pre>
  
  <p>Now we have this piece of code for the movement but my teacher won't allow me to use classes so I can only use functions (defs), can anyone help me re-code this into defs so my program will still work? So that you can still click the buttons and the disks move to the correct position.</p>
  
  <pre><code>class Move:
      #'Properties' contents: [X, Y, Width, Height, Tower's Disks, Tower's Button]
      #'Selected' contents: [Disk to move, Tower's selected Button / Start Disk location]
      def __init__(self, Properties):
          self.Properties = Properties
          self.X = Properties[0] * 20
          self.Disk_List = Properties[4]
          self.Act_Colour = 'white'
          self.Inact_Colour = 'black'
  
      def movement(self, x, y):
          global Steps
          self.Y = (self.Properties[1] + len(self.Disk_List)) * 20 + 45
  
          if len(Selected) == 0 and len(self.Disk_List) &gt; 0:
              self.Properties[5].fillcolor(self.Act_Colour)
              Selected.append(self.Disk_List) #Adds the list with disks to the selected tower
              Selected.append(self.Properties[5]) #To reset the color of the botton
          elif len(Selected) == 2 and len(self.Disk_List) &gt; 0 and Selected[0][-1].shapesize()[1] == self.Disk_List[-1].shapesize()[1]: #To deselect toe button
              Selected[1].fillcolor(self.Inact_Colour)
              del Selected[0]
              del Selected[0]            
          elif len(Selected) == 2 and (len(self.Disk_List) == 0 or Selected[0][-1].shapesize()[1] &lt; self.Disk_List[-1].shapesize()[1]): #Lazy function
              Selected[1].fillcolor(self.Inact_Colour)
              Selected[0][-1].goto(self.X, self.Y) #Highest disk of thelist
              self.Disk_List.append(Selected[0][-1]) #Put the highest disk of the list in the correct place in the list
  
              del Selected[0][-1] #del the disk from the tower and selected 
              del Selected[0] #del the lost from  'Selected',the list of the tower remains
              del Selected[0] #del thebutton
  
              Steps = Steps + 1
  </code></pre>