"""hi i am having heaps of trouble with calling my whoWins function from main. i can get all of my other functions to call ok from main, but am having trouble with this one for some reason. any help would be greatly apreciated. cheers joel"""

import random
Ascore = 0
Bscore = 0
Dscore = 0
table = {1:"Rock", 2:"Paper",3:"Scissors"}
gameList = []
turnTuple = ()

Awins = {(2,1):"Paper beats rock - Player A wins",
              (1,3):"Rock beats scissors - Player A wins",
              (3,2):"Scissors beat paper - Player A wins."}

Bwins = {(1,2):"Paper beats rock - Player B wins",
              (3,1):"Rock beats scissors - Player B wins",
              (2,3):"Scissors beat paper - Player B wins."}

Cdraws = {(1,1):"Its a draw.",
                 (2,2):"Its a draw.",
                 (3,3):"Its a draw."}

def intro():
      print "\t\t\t\tRock, Paper, Scissors"            # Prints program intro
      print "\t\t\t\t\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\   "
      print "\t\t\t\t\tby"
      print "\t\t\t\t    Joel Watts"
      print "\t\t\t\t \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ "
      print
      print " \t\t\t\tInstructions\t\t\t\t\t\n The aim of this game is to play rock paper scissors.  The computer is to \
            simulate the whole game by producing the results for each game along with a statement declaring who has won the match."

# Here is the code so far
# for players A and B:

while Ascore < 10 and Bscore < 10:
    x = 0
    y = 0
    print "hello"
    x = random.randrange(1,4)
    y = random.randrange(1,4)
    turnA = table[x]
    turnB = table[y]
    turnTuple = (x,y)

    print "player A chose:",turnA
    print "player B chose:",turnB
    print

def whoWins():
    if turnTuple in Awins:
        print Awins[turnTuple]
        Ascore = Ascore + 1
    elif turnTuple in Bwins:
        print Bwins[turnTuple]
        Bscore = Bscore + 1
    elif turnTuple in Cdraws:
        Dscore = Dscore + 1
        print Cdraws[turnTuple]

#TESTING 1 2 3
def priSummary():
    print
    print "A scored: ", Ascore
    print "B scored: ", Bscore
    print "Draws: ", Dscore

def main():
    intro()

    priSummary()
    whoWins()
if __name__ == '__main__':
    main()

Edited 3 Years Ago by mike_2000_17: Fixed formatting

Please use code tags with your code to preserve the indentations. Otherwise the code is very difficult to read and not too many folks will help.

[code=python]
your Python code here

[/code]

sorry about that, this was my first post. i have used the code tags,hope this post works ok. cheers joel

import random
Ascore = 0
Bscore = 0
Dscore = 0
table = {1:"Rock", 2:"Paper",3:"Scissors"}
gameList = []
turnTuple = ()

Awins = {(2,1):"Paper beats rock - Player A wins",
         (1,3):"Rock beats scissors - Player A wins",
         (3,2):"Scissors beat paper - Player A wins."}

Bwins = {(1,2):"Paper beats rock - Player B wins",
         (3,1):"Rock beats scissors - Player B wins",
         (2,3):"Scissors beat paper - Player B wins."}

Cdraws = {(1,1):"Its a draw.",
          (2,2):"Its a draw.",
          (3,3):"Its a draw."}

def intro():
    print "\t\t\t\tRock, Paper, Scissors"            # Prints program intro
    print "\t\t\t\t\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\   "
    print "\t\t\t\t\tby"
    print "\t\t\t\t    Joel Watts"
    print "\t\t\t\t \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ "
    print
    print " \t\t\t\tInstructions\t\t\t\t\t\n The aim of this game is to play rock paper scissors. The computer is to \
                simulate the whole game by producing the results for each game along with a statement declaring who has won the match."

# Here is the code so far
# for players A and B:

while Ascore < 10 and Bscore < 10:
    x = 0
    y = 0
    print "hello"
    
    x = random.randrange(1,4)
    y = random.randrange(1,4)
    turnA = table[x]
    turnB = table[y]
    turnTuple = (x,y)
            
    print "player A chose:",turnA
    print "player B chose:",turnB
    print
def whoWins():  
    if turnTuple in Awins:
        print Awins[turnTuple]
        Ascore = Ascore + 1
    elif turnTuple in Bwins:
        print Bwins[turnTuple]
        Bscore = Bscore + 1
    elif turnTuple in Cdraws:
        Dscore = Dscore + 1
        print Cdraws[turnTuple]
  
#TESTING 1 2 3
def summary():
    print
    print "A scored: ", Ascore
    print "B scored: ", Bscore
    print "Draws: ", Dscore

def main():
    intro()
    whoWins()
    summary()
    
if __name__ == '__main__':
    main()
This article has been dead for over six months. Start a new discussion instead.