#include #include #include #include using namespace std; vector const colors { "spades", "hearts", "diamonds", "clubs" }; vector const values { "ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king" }; struct Card { int value{1}; string color{colors[0]}; void print() const { cout << values[value-1] << " of " << color; } }; /* skriv Deck klassen här */ int sum_hand(vector const& hand) { int sum{0}; for (auto const& c : hand) { if (c.value > 10) sum += 10; else sum += c.value; } return sum; } int play(string const& name, Deck& deck, int limit) { auto hand{deck.draw(2)}; cout << name << " hand:" << endl; for (auto const& c : hand) { c.print(); cout << endl; } while (sum_hand(hand) <= limit) { Card c{deck.draw()}; cout << name << " drew "; c.print(); cout << endl; hand.push_back(c); } int sum{sum_hand(hand)}; if (sum > 21) { cout << name << " is bust!" << endl; } else { cout << name << " stands with " << sum << " points!" << endl; } return sum; } int main() { Deck deck{}; deck.shuffle(); int player {play("player", deck, 17)}; bool player_won{false}; if (player == 21) { player_won = true; } else if (player < 21) { int dealer {play("dealer", deck, player)}; if (dealer <= player || dealer > 21) { player_won = true; } } if (player_won) { cout << "player won!" << endl; } else { cout << "dealer won!" << endl; } }