Make object scrambling abstract (well, almost - with exception of Square-1 - this theoretically could also be done the generic way, but this would require almost 20000 'ScrambleStates')
Remove statics from the Dino classes.
Introduce pseudorandom balancing into scrambling in case of the two Dinos (from now on, the more times a particular (ax,layer) combination has been chosen already in the scrambling sequence, the less likely it is to be chosen next).Fix Dino6 - isSolved(). Sadly, it cannot be the geeneric function - it needs to be another special case.
Convert both Dinos to the new, unified scrambling method.
Preparation for unification of scrambling. Scrambling of all objects will be done by a generic funtion, only fed a certain data structure by the objects. The data structure is going to be the ScrambleStateGraph - a directed state graph of all states we can come across while scrambling....
Remove the last 'isSolved()' (from Dino4) and put it to the parent class as a special case.
Standarize the 'isSolved()' method: now all objects, except one (Dino4) have a standard isSolved().This incidentally also fixes detection of the solved state in case of Diamond4, i.e. a Master FTO.
Preparation for 'smart scrambling' : introduce the total number of scrambles to the 'randomizeNewScramble' function.
Hide more stuff in the TwistyObject class.
Refactor the automatic scrambling. From now on, it is not needed to care about single and double turns when randomizing a new turn.
Change the automatic scramble API in the TwistyObject - in preparation for automatic scrambles in the Bandaged Objects.
Preparation for the Object Info popup: add the name, inventor, complexity info to each object.
Rename some classes.