One of my favorite HDi apps was blackjack, so I have been just itching to turn it into a Silverlight application. Now, this one wasn’t quite so easy. My goal in writing blackjack for HDi originally was to take advantage of the timing element and remove as many references to style as possible from the script. So, in turning this into a Silverlight app, I found myself putting a lot of markup references back into the script. When the application first starts and a reference to the container is first obtained, all required UI references are cached in the UI object in blackjack.js.
The original application assumed a high definition screen resolution of 1920×1080. And, while many of you might have this resolution or better, it is not the majority. One of the challenges of web development is making sure your application works on a variety of platforms and browsers. Of course using the Silverlight solves a lot of these problems for you. But you still need to be considerate of screen resolutions. As of January 2008, 86% of internet users had a screen resolution of 1024×768 or higher. With that in mind, I reduced the width of my application to 1024 pixels and shrunk the other assets accordingly.
One of the things I kept in this application was the debug trace script and exception handling. You could of course rely on Internet Explorer script debugging if you would like. But, personally, I’m not a fan of those error alerts and I like having them neatly displayed on the page.
It seemed much more appropriate to enable the mouse for this game rather than navigating buttons using the arrow keys. You’ll notice that the buttons have events for MouseLeftButtonDown (clicking), MouseEnter (mousing over), and MouseLeave (mousing out).