title: Beginner to Python - why the heck is my while loop not working?
body: <p>I am trying to write a program for an assignment where you input a specific command and you can play Rock-Paper-Scissors-Lizard-Spock against the computer.
  It was done and working until I realized that the assignment instructions wanted me to make it so that you keep playing the game until one person gets five wins. </p>
  
  <p>So I thought, no big deals, let's throw in a while loop and some variables to track the wins. But when I run the program, it only runs once still. I don't know what I am doing wrong - as this should work. This is my first time working with Python (version 3.3) and this IDE, so I really need some help. Usually I'd just debug but I can't figure out how to work the one in this IDE.</p>
  
  <p>Here is my code. The trouble while-loop is at the way bottom. I am nearly positive everything inside the class works. I would like to note that I already tried while(computerWins &lt; 5 and userWins &lt; 5), so I don't think the condition is the problem.</p>
  
  <pre><code>import random
  
  computerWins = 0
  userWins = 0
  print ('SELECTION KEY:\nRock = r\nPaper = p\nScissors = sc\nLizard = l\nSpock = sp')
  
  class rockPaperScissorsLizardSpock:
  #Two methods for converting from strings to numbers
  
      #convert name to number using if/elif/else
      #also converts abbreviated versions of the name
      def convertName(name):
          if(name == 'rock' or name == 'r'):
              return 0
          elif(name == 'Spock' or name == 'sp'):
              return 1
          elif(name == 'paper' or name == 'p'):
              return 2
          elif(name == 'lizard' or name == 'l'):
              return 3
          elif(name == 'scissors' or name == 'sc'):
              return 4
          else:
              print ('Error: Invalid name')
  
      #convert number to a name using if/elif/else
      def convertNum(number):
          if(number == 0):
              return 'rock'
          elif(number == 1):
              return 'Spock'
          elif(number == 2):
              return 'paper'
          elif(number == 3):
              return 'lizard'
          elif(number == 4):
              return 'scissors'
          else:
              print ('Error: Invalid number')
  
      #User selects an option, and their selection is saved in the 'choice' variable    
      #Using a while loop so that the user cannot input something other than one of the legal options
      prompt = True
      while(prompt):
          i = input('\nEnter your selection: ')
          if(i=='r' or i=='p' or i=='sc' or i=='l' or i=='sp'):
              prompt = False
          else:
              print('Invalid input.')
      prompt = True
  
      #Convert the user's selection first to a number and then to its full string
      userNum = convertName(i)
      userChoice = convertNum(userNum)
  
      #Generate random guess for the computer's choice using random.randrange()
      compNum = random.randrange(0, 4)
  
      #Convert the computer's choice to a string
      compChoice = convertNum(compNum)
  
      print ('You chose', userChoice)
      print ('The computer has chosen', compChoice)
  
      #Determine the difference between the players' number selections
      difference = (compNum - userNum) % 5
  
      #Use 'difference' to determine who the winner of the round is
      if(difference == 1 or difference == 2):
          print ('The computer wins this round.')
          computerWins = computerWins+1
      elif (difference == 4 or difference == 3):
          print ('You win this round!')
          userWins = userWins+1
      elif(difference == 0):
          print ('This round ended up being a tie.')
  
  #Plays the game until someone has won five times
  while(computerWins != 5 and userWins != 5):
      rockPaperScissorsLizardSpock()
  
  if(computerWins == 5 and userWins != 5):
      print ('The computer wins.')
  elif(computerWins != 5 and userWins == 5):
      print ('You win!')
  </code></pre>