Skip to content
Snippets Groups Projects
dice.h 985 B
#ifndef DICE_H
# define DICE_H

# include <stdint.h>
# include <iostream>

class dice {
 private:
  int32_t base;
  uint32_t number, sides;
 public:
  dice() : base(0), number(0), sides(0)
  {
  }
  dice(int32_t base, uint32_t number, uint32_t sides) :
  base(base), number(number), sides(sides)
  {
  }
  inline void set(int32_t base, uint32_t number, uint32_t sides)
  {
    this->base = base;
    this->number = number;
    this->sides = sides;
  }
  inline void set_base(int32_t base)
  {
    this->base = base;
  }
  inline void set_number(uint32_t number)
  {
    this->number = number;
  }
  inline void set_sides(uint32_t sides)
  {
    this->sides = sides;
  }
  int32_t roll(void) const;
  std::ostream &print(std::ostream &o);
  inline int32_t get_base() const
  {
    return base;
  }
  inline int32_t get_number() const
  {
    return number;
  }
  inline int32_t get_sides() const
  {
    return sides;
  }
};

std::ostream &operator<<(std::ostream &o, dice &d);

#endif