Sorry KodeZwerg, I added to new code to the source while hovering over and playing with 4 other graphics related Lazarus projects until late at night (hmm ....early morning = 1 am) and realized next morning after your reply that your code was in fact the move types coding I was interested in. Kinda of a brain fuzz due to too many fun things to play around with ("a case of too much candy all at once"). I will definitely try out your new suggestions.
Been having fun with the Lazarus graphics and trying out new things (stepping out of my comfort zone).
Also been trying out Code Typhon and the Lazarus converter, just to see the difference between the 2 Pascal Programming Environments.
Updated: Added the following for types of moves
if (abs(Current - Empty) = 1) then how := 'Slided from ';
if (abs(Current - Empty) > 1) then how := 'Jumped from ';
Memo1.Lines.AddStrings(how + IntToStr(Current) + ' to ' + IntToStr(Empty) );
Slided from 1 to 2
Jumped from 3 to 1
Slided from 4 to 3
Jumped from 2 to 4
Jumped from 0 to 2
Slided from 1 to 0
Jumped from 3 to 1
Slided from 2 to 3Now have jumps and slides. Yay. Hipee. Horray!Got me thinking, how to replay the moves or do the solution (going back the other way). More to play around with.
As always, many thanks KodeZwerg.