mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 05:07:35 +00:00
LibCards+Games: Move "create a deck" logic to LibCards
`create_standard_deck()` is the usual 52-card deck, but more custom setups (such as Spider's multiples-of-one-suit) can be created by passing suit counts to `create_deck()`.
This commit is contained in:
parent
1d533acbc0
commit
46299f3853
5 changed files with 64 additions and 42 deletions
|
@ -199,20 +199,12 @@ void Game::setup(String player_name, int hand_number)
|
|||
m_passing_button->set_focus(false);
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Card> deck;
|
||||
deck.ensure_capacity(Card::card_count * 4);
|
||||
|
||||
for (int i = 0; i < Card::card_count; ++i) {
|
||||
deck.append(Card::construct(Cards::Suit::Clubs, static_cast<Cards::Rank>(i)));
|
||||
deck.append(Card::construct(Cards::Suit::Spades, static_cast<Cards::Rank>(i)));
|
||||
deck.append(Card::construct(Cards::Suit::Hearts, static_cast<Cards::Rank>(i)));
|
||||
deck.append(Card::construct(Cards::Suit::Diamonds, static_cast<Cards::Rank>(i)));
|
||||
}
|
||||
NonnullRefPtrVector<Card> deck = Cards::create_standard_deck(Cards::Shuffle::Yes);
|
||||
|
||||
for (auto& player : m_players) {
|
||||
player.hand.ensure_capacity(Card::card_count);
|
||||
for (uint8_t i = 0; i < Card::card_count; ++i) {
|
||||
auto card = deck.take(get_random_uniform(deck.size()));
|
||||
auto card = deck.take_last();
|
||||
if constexpr (!HEARTS_DEBUG) {
|
||||
if (&player != &m_players[0])
|
||||
card->set_upside_down(true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue