Blocks World problem , realize a program which:
Read the configuration of the blocks from an input file. Replace the current world with the read configuration. Specific command needs to be implemented allowing this to happen at any point;
Allow for block movements (command needed);
Allow for blocks being cleared (command needed);
Allow for blocks being filled with a specified volume. Blocks should be cleared up in order to be filled (command needed);
Allow for UNDO and REDO of commands;
Limit the space on the floor and the stack's height;
Store the history of operations in a HSQL database;
Display the historical operations between two dates (command needed).