Version 1 of my Tic Tac Toe application was the first Silverlight application I have written. It was the example application I wanted to use to learn the Silverlight development tools.

It is written to target the Silverlight plugin version 1.1 and uses C# and Silverlight templates for Orcas.

You can view a demo of the application running here: Tic Tac Toe

You can download the source code here: Source.zip

Next Version

In my haste to learn the features of Silverlight, I skipped out on code quality. So one of the first things I need to do is refactor. Each element (board, naught, cross, background, etc) needs to be properly broken down into separate Xaml files as well.

I would like to highlight the concepts of interaction between designer and developer by creating a folder for "Crosses" that a designer could just plong in Xaml files for. The application will have some configuration that allows the player to choose his/her game piece types. Ideally a designer could just plong in a new object for a cross or naught or game board and the system just updates automatically. Presumedly this might need some sort of reflection (is this available in the Silverlight version of the framework? Not sure) or there might be something more specific for this to Silverlight.

In terms of the actual game, the computer needs to be more intelligent. Currently it just picks a random free spot. This should be quite easy to make 3 different levels of difficulty.

The other functional improvement should be a line when the game is won through the successful 3 pieces. Or some sort of notification if there is a draw.

Finally, it needs some animation! I could try my hand at this, but I'll try and encourage someone with some proper design skills to have a try at Blend.