# Here is a command line Rock Paper Scissor game. # As you can see by my output I am not so good. ;) import random class RockPaperScissors(): """ Play Rock Paper Scissors with Python CLI! """ def __init__(self): # setup the random chooser for the computer self.rand = random.Random() self.cScore = 0 # computer score self.hScore = 0 # human score def getComputerMove(self): return self.rand.randrange(1,4) def getHumanMove(self): while True: choice = input("Make your move: rock (1), paper (2), scissors(3): ") choice = choice.strip() if choice == "1" or choice == "rock": return 1 if choice == "2" or choice == "paper": return 2 if choice == "3" or choice == "scissors": return 3 print("I didn't understand your choice. Please try again") def decideWinner(self, c, h): """ rock breaks scissors paper covers rock scissors cuts paper """ if (c, h) == (1, 3): print("rock breaks scissors") print("computer wins") self.cScore+=1 elif (h, c) == (1, 3): print("rock breaks scissors") print("you win") self.hScore+=1 elif (c, h) == (2, 1): print("paper covers rock") print("computer wins") self.cScore+=1 elif (h, c) == (2, 1): print("paper covers rock") print("you win") self.hScore+=1 elif (c, h) == (3, 2): print("scissors cuts paper") print("computer wins") self.cScore+=1 elif (h, c) == (3, 2): print("scissors cuts paper") print("you win") self.hScore+=1 else: print("Tie!") def showScore(self): print("Score:") print("Computer: ", self.cScore, " You: ", self.hScore) def playAgain(self): yn = input("Play Again? (y/n): ") yn = yn.strip() yn = yn.lower() if yn == "n" or yn == "no": return False return True def gameLoop(self): while True: print() print() computerMove = self.getComputerMove() humanMove = self.getHumanMove() print() print("you chose: ", humanMove, " computer chose: ", computerMove) self.decideWinner(computerMove, humanMove) print() self.showScore() if self.playAgain() == False: return if __name__ == '__main__': rps = RockPaperScissors() rps.gameLoop() ## my output: ## Make your move: rock (1), paper (2), scissors(3): 2 ## ## you chose: 2 computer chose: 3 ## scissors cuts paper ## computer wins ## ## Score: ## Computer: 1 You: 0 ## Play Again? (y/n): y ## ## ## Make your move: rock (1), paper (2), scissors(3): 1 ## ## you chose: 1 computer chose: 1 ## Tie! ## ## Score: ## Computer: 1 You: 0 ## Play Again? (y/n): y ## ## ## Make your move: rock (1), paper (2), scissors(3): 3 ## ## you chose: 3 computer chose: 1 ## rock breaks scissors ## computer wins ## ## Score: ## Computer: 2 You: 0
A python example based blog that shows how to accomplish python goals and how to correct python errors.
Thursday, March 3, 2011
Python - rock paper scissors game from the command line
Python - Compute the factorial of N with recursion (among others)
# Calculating the factorial of a number # is a good way to practice recursion. Below # are examples of both recursive and iterative # approaches to calculating a factorial. Of course # python has its own builtin math module that # can also take care of factorials. import math # A recursive function to calculate the # factorial of N def recursiveFactorial(n): if n == 1: return n return n * recursiveFactorial(n - 1) # Iterative calculation of the factorial # of N def iterativeFactorial(n): result = 1 while n > 1: result *= n n = n-1 return result # Builtin python math.factorial of N def pythonLib(n): return math.factorial(n) print("Iterative factorial of 5: ", iterativeFactorial(5)) print("Recursive factorial of 5: ", recursiveFactorial(5)) print("math.factorial of 5: ", pythonLib(5)) print("Iterative factorial of 10: ", iterativeFactorial(10)) print("Recursive factorial of 10: ", recursiveFactorial(10)) print("math.factorial of 10: ", pythonLib(10)) print("Iterative factorial of 15: ", iterativeFactorial(15)) print("Recursive factorial of 15: ", recursiveFactorial(15)) print("math.factorial of 15: ", pythonLib(15)) # my results: # Iterative factorial of 5: 120 # Recursive factorial of 5: 120 # math.factorial of 5: 120 # Iterative factorial of 10: 3628800 # Recursive factorial of 10: 3628800 # math.factorial of 10: 3628800 # Iterative factorial of 15: 1307674368000 # Recursive factorial of 15: 1307674368000 # math.factorial of 15: 1307674368000
Subscribe to:
Posts (Atom)