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 (Le, 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: 1. Taking the top card from either the discard pile or the deck 2. 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)

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
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:
1. Taking the top card from either the discard pile or the deck
2. Optionally discarding one card from their rack, and inserting the new card into the vacant slot
0
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:
18
15
S430
0:07/3:46
.
29
34
40
AL
RACKO
GALER
9
✪
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.
Transcribed Image Text: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: 1. Taking the top card from either the discard pile or the deck 2. Optionally discarding one card from their rack, and inserting the new card into the vacant slot 0 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: 18 15 S430 0:07/3:46 . 29 34 40 AL RACKO GALER 9 ✪ 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.
• 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, 531
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:
.
.
.
..
• 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.
show_top_card()
get_top_card()
add_card_to_discard()
check_racko()
find_and_replace()
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, 21
Discard pile: [4]
Your current rack is: [5, 1, 7, 61
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, 61
Deck: [8, 31
Discard pile: [4, 11
Your current rack is: [5, 2, 7, 61
The top discard card is 1
Transcribed Image Text:• 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, 531 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: . . . .. • 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. show_top_card() get_top_card() add_card_to_discard() check_racko() find_and_replace() 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, 21 Discard pile: [4] Your current rack is: [5, 1, 7, 61 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, 61 Deck: [8, 31 Discard pile: [4, 11 Your current rack is: [5, 2, 7, 61 The top discard card is 1
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 7 images

Blurred answer
Knowledge Booster
Class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education