in reply to Re: Re: Re: (ichimunki) Re (tilly) 1: Dice::Dice
in thread Dice::Dice
Since we are attempting to model an actual physical object using OO Perl, we may as well look at an actual die in the world. It has two main attributes which are useful to us (although I have one game which takes advantage of a third, but is way out of scope)-- number of sides, and which side is up.
Our instance, in order to be accurate, should have these attributes and nothing else. A history attribute is an open door to a serious memory leak unless you manage the size of the history very actively.
About face, as the die sits on a surface, the face up is an attribute. Roll is an action. Sometimes we want to know what the up face is without changing it, like in Yahtzee. We roll all five dice, examine them, reroll the ones we don't like, reroll again, then score. For scoring we need to have a way to check all five dice without changing them.