Aug-10-2019, 10:14 AM
(Aug-06-2019, 05:07 PM)inamullah9 Wrote: I learned basic python in 1 week and here is what i developed. It is a basic rock paper scissor game between user and computer. One who scores 5 points wins the game. It took me 30 minutes to complete this.Hi inamullah9,
Well done so far. These are your first steps to become professional python programmer.
I just want to show you how i would code this nice little game to provide you with some introduction to data types and how to use them.
So it´s not meant to say "Your code is ugly and mine is better". No pun intended.
I´m sure there are a lot of pythonistas who would say to me "I can do that even better". So here is my code:
import random def choose(text, options): while True: answer = input(text) if answer in options: return answer print(f'Your options are {list(options)}') options = {1: 'Rock', 2: 'Paper', 3: 'Scissor'} matrix = {(1,1): 0, (2,2): 0, (3,3): 0, (1,3): 1, (2,1): 1, (3,2): 1, (1,2): 2, (2,3): 2, (3,1): 2} def main(): name = input('What`s your name? : ') winner = {0: f'Draw! Nobody', 1: f'{name}', 2: 'Computer'} while True: print(f'\nOk, {name} plays vs the computer.') score = [0, 0, 0] while True: player = int(choose(f'Enter [1] for Rock, [2] for Paper, [3] for Scissor ', '123')) cpu = random.randint(1, 3) state = (player, cpu) print(f'{options[player]} vs {options[cpu]}, {winner[matrix[state]]} wins!') score[matrix[state]] += 1 if score[1] == 5: print (f'{name.upper()} WINS THE MATCH!\n') break elif score[2] == 5: print('COMPUTER WINS THE MATCH!\n') break print (f'{name} score:{score[1]}, cpu score: {score[2]}') answer = choose(f'Do you want to play again, {name}? ', 'YNyn') if answer in 'Nn': break if __name__ == '__main__': main()