#include <algorithm> #include <vector> #include <iostream> #include <iomanip> #include <memory> #include <array> using namespace std; using dice_type = vector<int>; const array<unique_ptr<const Score>, 3> score_types { make_unique<Ones>(), make_unique<Twos>(), make_unique<Pair>() }; void print_results(dice_type const & dice) { for ( int die : dice ) { cout << setw(2) << left << die; } cout << right; for ( auto const & score_type : score_types ) { cout << setw(6) << score_type->score(dice); } cout << endl; } int main() { cout << "Tärningar " << right; for ( auto const & score_type: score_types ) { cout << setw(6) << score_type->name(); } cout << '\n'; dice_type dice {1,2,1,3,4}; print_results(dice); dice.assign( {3,3,1,1,1} ); print_results(dice); dice.assign( {5,5,6,6,3} ); print_results(dice); }