I am making a program in python where a part of it will assign 2 random numbers
ID: 3591027 • Letter: I
Question
I am making a program in python where a part of it will assign 2 random numbers between 1 and 13. One of the numbers will be for the user and the other for the computer. The numbers 1 through 13 are assigned to a card in the deck. 1=Ace, 2=2..11=jack, 12=queen, 13=king. After the numbers are picked the program will do something based on the numbers picked. Below is the code I have for completing this task but i was wondering if there is anyway to condense the code down. Note: I have to keep the picked = random.randint(1,13) in the code.
while player_picked == computer_picked:
player_picked = random.randint(1,13)
computer_picked = random.randint(1,13)
if player_picked == 1:
card_picked_player = "Ace"
if player_picked == 2:
card_picked_player = "Two"
if player_picked == 3:
card_picked_player = "Three"
if player_picked == 4:
card_picked_player = "Four"
if player_picked == 5:
card_picked_player = "Five"
if player_picked == 6:
card_picked_player = "Six"
if player_picked == 7:
card_picked_player = "Seven"
if player_picked == 8:
card_picked_player = "Eight"
if player_picked == 9:
card_picked_player = "Nine"
if player_picked == 10:
card_picked_player = "Ten"
if player_picked == 11:
card_picked_player = "Jack"
if player_picked == 12:
card_picked_player = "Queen"
if player_picked == 13:
card_picked_player = "King"
if computer_picked == 1:
card_picked_computer = "Ace"
if computer_picked == 2:
card_picked_computer = "Two"
if computer_picked == 3:
card_picked_computer = "Three"
if computer_picked == 4:
card_picked_computer = "Four"
if computer_picked == 5:
card_picked_computer = "Five"
if computer_picked == 6:
card_picked_computer = "Six"
if computer_picked == 7:
card_picked_computer = "Seven"
if computer_picked == 8:
card_picked_computer = "Eight"
if computer_picked == 9:
card_picked_computer = "Nine"
if computer_picked == 10:
card_picked_computer = "Ten"
if computer_picked == 11:
card_picked_computer = "Jack"
if computer_picked == 12:
card_picked_computer = "Queen"
if computer_picked == 13:
card_picked_computer = "King"
Explanation / Answer
You can make the code length to half of it by using a user defined function
ie you need only one time assignment, 13 are assigned to a card in the deck. 1=Ace, 2=2..11=jack, 12=queen, 13=king.
a function called assignPicked(num) will return card equalent to the num given in the function
here is the code
import random
def assignPicked(num): # user defined function with one argument
if num == 1:
return "Ace" # check cases and return
if num == 2:
return "Two"
if num == 3:
return "Three"
if num == 4:
return "Four"
if num == 5:
return "Five"
if num == 6:
return "Six"
if num == 7:
return "Seven"
if num == 8:
return "Eight"
if num == 9:
return "Nine"
if num == 10:
return "Ten"
if num == 11:
return "Jack"
if num == 12:
return "Queen"
if num == 13:
return "King"
# end of function
player_picked = random.randint(1,13) # these are initial declerations
computer_picked = random.randint(1,13)
card_picked_player =assignPicked(player_picked)
card_picked_computer=assignPicked(computer_picked)
while player_picked == computer_picked: # if they are equal take random again
player_picked = random.randint(1,13)
computer_picked = random.randint(1,13)
card_picked_player =assignPicked(player_picked)
card_picked_computer=assignpicked(computer_picked)
# this is your old code you may remove it
'''
if player_picked == 1:
card_picked_player = "Ace"
if player_picked == 2:
card_picked_player = "Two"
if player_picked == 3:
card_picked_player = "Three"
if player_picked == 4:
card_picked_player = "Four"
if player_picked == 5:
card_picked_player = "Five"
if player_picked == 6:
card_picked_player = "Six"
if player_picked == 7:
card_picked_player = "Seven"
if player_picked == 8:
card_picked_player = "Eight"
if player_picked == 9:
card_picked_player = "Nine"
if player_picked == 10:
card_picked_player = "Ten"
if player_picked == 11:
card_picked_player = "Jack"
if player_picked == 12:
card_picked_player = "Queen"
if player_picked == 13:
card_picked_player = "King"
if computer_picked == 1:
card_picked_computer = "Ace"
if computer_picked == 2:
card_picked_computer = "Two"
if computer_picked == 3:
card_picked_computer = "Three"
if computer_picked == 4:
card_picked_computer = "Four"
if computer_picked == 5:
card_picked_computer = "Five"
if computer_picked == 6:
card_picked_computer = "Six"
if computer_picked == 7:
card_picked_computer = "Seven"
if computer_picked == 8:
card_picked_computer = "Eight"
if computer_picked == 9:
card_picked_computer = "Nine"
if computer_picked == 10:
card_picked_computer = "Ten"
if computer_picked == 11:
card_picked_computer = "Jack"
if computer_picked == 12:
card_picked_computer = "Queen"
if computer_picked == 13:
card_picked_computer = "King"
'''
print card_picked_computer # do the calculations at here i just print
print card_picked_player
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.