CoveredHoleMetric AI, major revisions on net.blockout.production.Blocks file
(optimize, simplify), and major overhaul of method by which next block chosen.
MORE DETAILS BELOW:
===================
Doing away with usage of java.util.Hashtable. Using HashMap and HashSet
instead. Introducing use of generics into code base. Using more ArrayList and
eliminating java.util.Vector usage. The code no longer compiles under old
JDKs. The effort to cast elements of HashMap into proper type was too complex.
Unfortunately to compile most of the code base under e.g. JDK 1.1, some tweaks
would be now necessary. The effort to not use tools provided by modern JDKs
was no longer worth the effort. As a result the compile warnings, of
"unchecked types" variety, are now all gone. The deprecation compile warnings
are still present however.
net.blockout.meta.BlockGenerator now defines compact() and decompact() which is
going to and from a semi-compiled string format, for a net.blockout.Block.
Improving canonical form which is needed for unique mirror block computations,
getCanonicalBlock(). net.blockout.production.Blocks has been re-generated with
revised code. As a result the 7-er blocks load twice as fast now if
net.blockout.production.BlocksConfig.INCLUDE_7ER_BLOCKS is set to true.
Defining ImprovedBlockSource which is quite complex but is a much improved
random block chooser which has the ability to avoid duplicates in close
list proximity. A debug flag will print informative output to console, which
very well describes how the new algorithm works. It's similar to the Tetris
block choosing algorithm, only with way more flexibility.
GameSidebar double update() to prevent blank.
Minor tweaks to net.blockout.production.Levels.
Saving OrigImprovedBlockSource which was the precursor to ImprovedBlockSource.
Will probably be removed.