Bugs discovered on Solitaire Online

And by bugs, I don't mean the type found in Golden Spider.

I mean a programming error, or perhaps more accurately a feature.

The Undo button worked except that when moving a card from the Waste to the Stock, the card was placed on the Waste face up, and remained face up.

I'm calling this a feature rather than a bug as the coding worked as intended. It was just not what was required.

This was suprisingly difficult to fix.

The reason is that the javascript code is a big, long and monolithic. This is not a great coding style.

I've been coding for years and never normally write code in this fashion. It was partly an experiment, and partly because I didn't think about the initial design in sufficient detail.

I also could not (and can not) be bothered to refactor it in a better manner as I went along.

I have another coding project planned (Mahjong.day). I will plan and write this in a more traditional manner.

Let's return to SolitaireOnline.Org.

Although as an (ex)professional coder, I am slightly appalled by a 3000 line file, it isn't (or wasn't) entirely unknown in the games programming world.

Good editors do to a point obviate the need for multiple smaller files (within reason).

While I'm not holding the code in solitairemain.js up as a shining example of good coding practice, some of the ideas within it are sound.

I will implement these more successfully in Mahjong.day.