Duplicate Question
The question on this page has been marked as a duplicate question.
Original Question
import random # given an input list of cards, shuffle them and return a new shuffled list def shuffle(deck): # STUDENT WILL COM...Question
import random
# given an input list of cards, shuffle them and return a new shuffled list
def shuffle(deck):
# STUDENT WILL COMPLETE THIS METHOD
deck1 = len(diamonds)
return deck
# ensure the human player picks a valid spade from the remaining cards in hand
def p1_algorithm(p1_spades):
# STUDENT WILL COMPLETE THIS METHOD
return p1_spades[0] # replace this line with student code
# given the complete state of the game, this AI algorithm will make a choice
# for the computer player and return the resulting selection.
def p2_algorithm(middle_cards,diamonds,p1_spades,p2_clubs):
# this simple algorithm just makes a random selection from the available cards
# STUDENT WILL COMPLETE THIS METHOD
return p2_clubs[0] # replace this line with student code
def play_round(diamonds, p1_spades, p2_clubs, p1_capture, p2_capture, middle_cards):
# STUDENT WILL COMPLETE THIS METHOD
middle_card = diamonds.pop(0);
middle_cards.append(middle_card);
print(str.format("Middle card(s): {0}", str(middle_cards)));
print(str.format(" Player 1 available: {0}", str(p1_spades)));
player1_bid = p1_algorithm(p1_spades);
p1_spades.remove(player1_bid);
player2_bid = p2_algorithm(middle_cards,diamonds,p1_spades,p2_clubs);
p2_clubs.remove(player2_bid);
print(str.format(" Player 2 bid: {0}", str(player2_bid)));
if (player1_bid > player2_bid):
while len(middle_cards) > 0:
value = middle_cards.pop(0);
p1_capture.append(value);
middle_cards.clear();
print(str.format(" Player 1 wins bid, has captured {0}", str(p1_capture)));
if (player2_bid > player1_bid):
while len(middle_cards) > 0:
value = middle_cards.pop(0);
p2_capture.append(value);
middle_cards.clear();
print(str.format(" Player 2 wins bid, has captured {0}", str(p2_capture)));
if (player2_bid == player1_bid):
print(" Tie bid - middle card remains");
return
def determine_winner(p1_capture, p2_capture):
print("===GAME OVER===")
# STUDENT WILL COMPLETE THIS METHOD
# MAIN PROGRAM LOGIC
# NO STUDENT CHANGES BELOW THIS POINT
# randomize random number generator with a known seed for repeatability
seed = int(input("Enter random seed: "))
random.seed(seed)
# initialize 3 hands, each with cards 2 - 10
diamonds = [2,3,4,5,6,7,8,9,10]
p1_spades = [2,3,4,5,6,7,8,9,10]
p2_clubs = [2,3,4,5,6,7,8,9,10]
# initialize empty lists of cards that each player captures or that are in the middle
p1_capture = []
p2_capture = []
middle_cards = []
# shuffle the deck of diamonds
diamonds = shuffle(diamonds)
# game continues while diamonds are left
while len(diamonds) > 0:
play_round(diamonds, p1_spades, p2_clubs, p1_capture, p2_capture, middle_cards)
# all diamonds are gone, so game is over - time to determine winner
determine_winner(p1_capture, p2_capture)
Fix this code
# given an input list of cards, shuffle them and return a new shuffled list
def shuffle(deck):
# STUDENT WILL COMPLETE THIS METHOD
deck1 = len(diamonds)
return deck
# ensure the human player picks a valid spade from the remaining cards in hand
def p1_algorithm(p1_spades):
# STUDENT WILL COMPLETE THIS METHOD
return p1_spades[0] # replace this line with student code
# given the complete state of the game, this AI algorithm will make a choice
# for the computer player and return the resulting selection.
def p2_algorithm(middle_cards,diamonds,p1_spades,p2_clubs):
# this simple algorithm just makes a random selection from the available cards
# STUDENT WILL COMPLETE THIS METHOD
return p2_clubs[0] # replace this line with student code
def play_round(diamonds, p1_spades, p2_clubs, p1_capture, p2_capture, middle_cards):
# STUDENT WILL COMPLETE THIS METHOD
middle_card = diamonds.pop(0);
middle_cards.append(middle_card);
print(str.format("Middle card(s): {0}", str(middle_cards)));
print(str.format(" Player 1 available: {0}", str(p1_spades)));
player1_bid = p1_algorithm(p1_spades);
p1_spades.remove(player1_bid);
player2_bid = p2_algorithm(middle_cards,diamonds,p1_spades,p2_clubs);
p2_clubs.remove(player2_bid);
print(str.format(" Player 2 bid: {0}", str(player2_bid)));
if (player1_bid > player2_bid):
while len(middle_cards) > 0:
value = middle_cards.pop(0);
p1_capture.append(value);
middle_cards.clear();
print(str.format(" Player 1 wins bid, has captured {0}", str(p1_capture)));
if (player2_bid > player1_bid):
while len(middle_cards) > 0:
value = middle_cards.pop(0);
p2_capture.append(value);
middle_cards.clear();
print(str.format(" Player 2 wins bid, has captured {0}", str(p2_capture)));
if (player2_bid == player1_bid):
print(" Tie bid - middle card remains");
return
def determine_winner(p1_capture, p2_capture):
print("===GAME OVER===")
# STUDENT WILL COMPLETE THIS METHOD
# MAIN PROGRAM LOGIC
# NO STUDENT CHANGES BELOW THIS POINT
# randomize random number generator with a known seed for repeatability
seed = int(input("Enter random seed: "))
random.seed(seed)
# initialize 3 hands, each with cards 2 - 10
diamonds = [2,3,4,5,6,7,8,9,10]
p1_spades = [2,3,4,5,6,7,8,9,10]
p2_clubs = [2,3,4,5,6,7,8,9,10]
# initialize empty lists of cards that each player captures or that are in the middle
p1_capture = []
p2_capture = []
middle_cards = []
# shuffle the deck of diamonds
diamonds = shuffle(diamonds)
# game continues while diamonds are left
while len(diamonds) > 0:
play_round(diamonds, p1_spades, p2_clubs, p1_capture, p2_capture, middle_cards)
# all diamonds are gone, so game is over - time to determine winner
determine_winner(p1_capture, p2_capture)
Fix this code
Answers
Answer
Your GOPS program should now allow a human player to compete against a computer opponent. The deck of diamonds in the middle should be shuffled, the human player can make any valid bid, and the computer opponent will bid a random value each time. The game scores will be calculated and displayed at the end.
Here is one more program run with a different random seed. Note that even with a consistent seed, the actual program output will depend on what the human player enters each round.
Enter random seed: 10
Middle card(s): [5]
Player 1 available: [2, 3, 4, 5, 6, 7, 8, 9, 10]
Enter player 1 bid: 4
Player 2 bid: 2
Player 1 wins bid, has captured [5]
Middle card(s): [8]
Player 1 available: [2, 3, 5, 6, 7, 8, 9, 10]
Enter player 1 bid: 9
Player 2 bid: 10
Player 2 wins bid, has captured [8]
Middle card(s): [10]
Player 1 available: [2, 3, 5, 6, 7, 8, 10]
Enter player 1 bid: 10
Player 2 bid: 5
Player 1 wins bid, has captured [5, 10]
Middle card(s): [6]
Player 1 available: [2, 3, 5, 6, 7, 8]
Enter player 1 bid: 2
Player 2 bid: 3
Player 2 wins bid, has captured [8, 6]
Middle card(s): [3]
Player 1 available: [3, 5, 6, 7, 8]
Enter player 1 bid: 3
Player 2 bid: 6
Player 2 wins bid, has captured [8, 6, 3]
Middle card(s): [4]
Player 1 available: [5, 6, 7, 8]
Enter player 1 bid: 5
Player 2 bid: 8
Player 2 wins bid, has captured [8, 6, 3, 4]
Middle card(s): [7]
Player 1 available: [6, 7, 8]
Enter player 1 bid: 7
Player 2 bid: 4
Player 1 wins bid, has captured [5, 10, 7]
Middle card(s): [2]
Player 1 available: [6, 8]
Enter player 1 bid: 8
Player 2 bid: 9
Player 2 wins bid, has captured [8, 6, 3, 4, 2]
Middle card(s): [9]
Player 1 available: [6]
Enter player 1 bid: 6
Player 2 bid: 7
Player 2 wins bid, has captured [8, 6, 3, 4, 2, 9]
===GAME OVER===
Player 1 captured: [5, 10, 7]
Player 2 captured: [8, 6, 3, 4, 2, 9]
Player 1 scored 22, Player 2 scored 32
PLAYER 2 WINNER
Here is one more program run with a different random seed. Note that even with a consistent seed, the actual program output will depend on what the human player enters each round.
Enter random seed: 10
Middle card(s): [5]
Player 1 available: [2, 3, 4, 5, 6, 7, 8, 9, 10]
Enter player 1 bid: 4
Player 2 bid: 2
Player 1 wins bid, has captured [5]
Middle card(s): [8]
Player 1 available: [2, 3, 5, 6, 7, 8, 9, 10]
Enter player 1 bid: 9
Player 2 bid: 10
Player 2 wins bid, has captured [8]
Middle card(s): [10]
Player 1 available: [2, 3, 5, 6, 7, 8, 10]
Enter player 1 bid: 10
Player 2 bid: 5
Player 1 wins bid, has captured [5, 10]
Middle card(s): [6]
Player 1 available: [2, 3, 5, 6, 7, 8]
Enter player 1 bid: 2
Player 2 bid: 3
Player 2 wins bid, has captured [8, 6]
Middle card(s): [3]
Player 1 available: [3, 5, 6, 7, 8]
Enter player 1 bid: 3
Player 2 bid: 6
Player 2 wins bid, has captured [8, 6, 3]
Middle card(s): [4]
Player 1 available: [5, 6, 7, 8]
Enter player 1 bid: 5
Player 2 bid: 8
Player 2 wins bid, has captured [8, 6, 3, 4]
Middle card(s): [7]
Player 1 available: [6, 7, 8]
Enter player 1 bid: 7
Player 2 bid: 4
Player 1 wins bid, has captured [5, 10, 7]
Middle card(s): [2]
Player 1 available: [6, 8]
Enter player 1 bid: 8
Player 2 bid: 9
Player 2 wins bid, has captured [8, 6, 3, 4, 2]
Middle card(s): [9]
Player 1 available: [6]
Enter player 1 bid: 6
Player 2 bid: 7
Player 2 wins bid, has captured [8, 6, 3, 4, 2, 9]
===GAME OVER===
Player 1 captured: [5, 10, 7]
Player 2 captured: [8, 6, 3, 4, 2, 9]
Player 1 scored 22, Player 2 scored 32
PLAYER 2 WINNER
Answer
File "GOPS.py", line 20
return bid # replace this line with student code
^
SyntaxError: 'return' outside function
return bid # replace this line with student code
^
SyntaxError: 'return' outside function
Answer
Which doe needs to be fixed
Answer
Fix the code
Answer
```python
# ensure the human player picks a valid spade from the remaining cards in hand
def p1_algorithm(p1_spades):
bid = int(input("Enter player 1 bid: "))
while bid not in p1_spades:
print("Invalid bid. Choose a valid card from your hand.")
bid = int(input("Enter player 1 bid: "))
return bid
```
In this code how many times does each section have to be indented.
# ensure the human player picks a valid spade from the remaining cards in hand
def p1_algorithm(p1_spades):
bid = int(input("Enter player 1 bid: "))
while bid not in p1_spades:
print("Invalid bid. Choose a valid card from your hand.")
bid = int(input("Enter player 1 bid: "))
return bid
```
In this code how many times does each section have to be indented.
There are no AI answers yet. The ability to request AI answers is coming soon!
Submit Your Answer
We prioritize human answers over AI answers.
If you are human, and you can answer this question, please submit your answer.