#ifndef DICE_H
#define DICE_H

struct Dice {
    int rolled[5] = {0};
    int num_rolled = 5;
    int held[5] = {0};
    int num_held = 0;
    int rolls_left = 3;
};

void roll_dice(Dice &d);
void print_dice(Dice &d);
void set_result(Dice &d);
void print_result(Dice &d);
char choose_roll(Dice &d);
int choose_dice(Dice &d, bool rolled);
void hold_dice(Dice &d, int dice);
void return_dice(Dice &d, int dice);
int sum_dice(Dice &d, int sides = 0);
int max_count(Dice &d);
bool is_full_house(Dice &d);
bool is_small_straight(Dice &d);
bool is_great_straight(Dice &d);

#endif