Program development history

The basic aim of the Unravel program development was to provide a means of developing solutions to complex Rubik-style cubes and solving them.

The earliest version of the Unravel program dates back to pre-1990. It was a rudimentary program utilizing a monochrome monitor (colour monitors were not in common use at the time) and was limited to size 11x11x11 cubes (size 11 in the terminology used in this Online Help). A brief summary of the various implementations, each an advance on the previous one, is shown in the table below.

 
Item No. Programming Language Monitor Type Cube Size Range
1 Fortran Monochrome 2 to 11
2 Fortran Colour 2 to 15
3 Fortran & C mixture Colour 2 to 15
4 C Colour 2 to 15
5 Visual C++ Colour 2 to 16
6 Java Colour 2 to 99*
* This is a program limit but actual limit is a function of monitor size and user's visual acuity (acuteness of vision).

The development of the Unravel program has been an incremental process with long time increments between updates. All development has been done using a Windows Operating System. While it is hoped that the Java program will run using other operating systems, there is no guarantee that implementation difficulties will not arise.

Only the last two items are available from the Unravel developer's website. The Visual C++ version is provided as a Windows executable program. Unlike the Java version, the language used in the development of the C++ version has little relevance to users as they see only the final executable file. Only some minor changes have been made to that version since 2001. The Java Item 6 is the most recent and the most capable version, and is the one described in this Unravel Online Help. All the Java version development was done after 2001 with most being done before 2005. All non-local imported class files for the Unravel program are standard files that were provided by Sun Microsystems Inc.

Both the Java and the C++ versions of the Unravel program can be downloaded and used independently. The default directories, where the relevant working files are stored, are different. For cubes up to size 16, the saved state files for the Java version with standard unmarked centres are compatible with those for the C++ version. Those files can be swapped between versions. However, in other respects (such as macro definitions) the versions are not compatible even though corresponding files may be given the same name.