Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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