## frankdpnw 3 years ago I am working on exercise 2.1 on homework 2.0. We are being asked to write a function that takes parameters instead of asking for user input for our Rock, Paper, Scissors program. I created the following function but I can't capture the return value and was wondering if you could help function: def p1(x): if x == 'rock' or x == 'scissors' or x == 'paper': return x else: print "still trying" and I call it this way p1('rock') I want to take the results of return x and put that into a variable called player_a and I can't make it work. I feel so dense thi

1. andrew.m.higgs

Try player_a = p1('rock') But that would just print 'rock'?

2. frankdpnw

yes, I did that and discovered that it does just as you said .. it prints rock regardless of how I call the function.

3. andrew.m.higgs

Well it would print 'paper' if you said: player_a = p1('paper') print player_a Your game of Rock Paper Scissors will need 2 arguments though. Player 1's and Player 2' choice. These 2 need to be compared and the winner decided. def rps(player_1, player_2): #do logic against choices here #return the winner winner = rps('rock', 'paper) print winner Something to that effect. Hope this helps somewhat.

4. snark

it must return a value either way: def f(x): if x == 'rock' or x == 'stone': return x else: return 'not'

5. frankdpnw

Thanks Andrew and Snark. I am going to rethink my approach based on Andrew's comments. I think the problem I am struggling with is the fact that rock, paper or scissors are strings and when I call the function, I call it as rps('rock') or rps('paper'), etc.

6. rahmanig

you can use random: function: return random(rock,scissor,paper) you can call it this way: function(rand) if that make sense. I hope that was helpful