Question: 1 0 . 1 1 PROJ - 3 : Racko ( Checkpoint A ) In this project, you will implement the game of 'Rack -

10.11 PROJ-3: Racko (Checkpoint A)
In this project, you will implement the game of 'Rack-O,' a game that involves rearranging your hand of cards in order to have an increasing sequence. Each card just has a number. While Racko is typically played with 2 to 4 players, we will keep this simple and just use two players. One player's moves will be decided by the user via input. We will also build a computer player whose moves are decided by you, the programmer. This game will be built in stages: Checkpoint A, and Checkpoint B, and an extra credit Checkpoint C to participate in a Racko class competition!
This Idea/concept application of this project was obtained from Dr. Bhusnurmath at the University of Pennsylvania.
Overview
A Racko deck is composed of 60 cards, numbered 1 to 60. A hand is kept in a special place, called a rack. The objective is to be the first player to arrange all of the cards in your rack from lowest to highest.
To set-up the game, we shuffle the deck and each player gets dealt 10 cards one at a time. As a player receives a card, it is placed in their rack (i.e., without rearranging any of them, in the order they were dealt). The goal of each player is to create a rack where the sequence of card numbers is in ascending order, starting at slot 1. Players will try to accomplish this by selectively discarding from their hand and replacing with new cards.
To start the game, the top card of the deck is turned over to create a discard pile.
Each player then takes turns by:
Taking the top card from either the discard pile or the deck
Optionally discarding one card from their rack, and inserting the new card into the vacant slot
If a player draws a card from the deck, they may immediately discard it (rather than discard one from their rack)
If a player draws the top card from the discard, they must keep it (and discard one from their rack)
The first player to get 10 cards in ascending order calls Rack-O! and wins the game.
The following video explains the rules and gameplay of Racko:
Implementation Notes
You will notice that, in a sense, the objective of Rack-O is to get a sorted rack, but it is not how we would traditionally consider "sorting" -- none of our other sorting algorithms let us discard and select new elements!
Our project will make heavy use of lists. We will represent a player's rack, the deck and the discard pile as lists. Note that in both the deck and the discard pile, you only ever will access to the top card.
To add a card to a pile of cards, you just call the append method.
To take a card from the top of a pile of cards, you just call the pop method.
A player's rack can also be represented by a list. If their rack was:
rack =[3,17,11,30,33,38,49,46,25,53]
This rack is not yet "Rack-O", since it is not in ascending order.
Checkpoint A
In Checkpoint A, the game will not yet be playable as a two-player game. It will be playable by you in a type of "solitaire mode."
Implement these functions from the template following the description (specification) in their docstring:
show_top_card()
get_top_card()
add_card_to_discard()
check_racko()
find_and_replace()
play_hand()
The main function to drive the game has been provided.
Missing input/output statements are part of play_hand() and left for you to implement, guided by the sample input/output.
None of the other functions left to implement use input or print.
The case / capitalization of user input should be ignored.
On any invalid user input, the program should exit with a non-zero exit code.
Hint: Use Python Tutor. as much as possible when testing gameplay. Zybooks requires you specify all your inputs in advance and it is less enjoyable to play that way.
Sample input/output 1
When the inputs are:
no
yes
1
yes
5
yes
7
The expected behavior is (inputs are shown in-line)
--------------------------------------------------
Deck: [8,3,2]
Discard pile: [4]
Your current rack is: [5,1,7,6]
The top discard card is 4
Do you want it?(yes or no): no
The card from the deck is 2
Do you want it?(yes or no): yes
Enter the number of the card you want to kick out: 1
Your new rack is: [5,2,7,6]
--------------------------------------------------
Deck: [8,3]
Discard pile: [4,1]
Your current rack is: [5,2,7,6]
The top discard card is 1
Do you want it?(yes or no): yes
Enter the number of the card you want to kick out: 5
Your new rack is: [1,2,7,6]
--------------------------------------------------
Deck: [8,3]
Discard pile: [4,5]
Your current rack is: [1,2,7,6]
The top discard card is 5
Do you want it?(yes or no): yes
Enter the number of the card you want to discard: 1
Your new rack is: [9,5,7]
Computer rack is: [4,8,1]
--------------------------------------------------
Deck: [3,2]
Discard pile: [6]
Your current rack is: [9,5,7]
Computer rack is: [4,8,1]
The top discard card is 6
Do you want it?(yes or no): no
The card from the deck is 2
Do you want it?(yes or no): yes
Enter the number of the

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!