I recently played with XNA. There is a game that I have developed many times, on the Commodore 64 as a kid, on the Commodore Amiga, later on Windows 9X with MFC, after that in .NET and Windows Forms, and now with XNA. The development experience in XNA was the best, and I can run my game on the phone, on Windows and on my XBOX.
The goal of the game is to have higher score . Each player moves only in a specific direction (vertical or horizontal). In each turn a player move the token (S shape) and take a number (replace a number with the token), the value of the number is added to the player score.
One interesting thing about the game is that I usually lose when I play with it. The game thinking is base on Min-Max with Alpha-Beta pruning algorithm. The heuristics is very simple: player1 score minus player2 score. The computer/XBox/Phone is thinking while the player is thinking.
When I win, I think what I did wrong, When I lose, I proud that the algorithm works, but I then I think how come a so simple algorithm can be so smart…
The only way to win the computer is if you get a board that has a better number setting in your playing direction, how do I know that? because I added an option to play the same game with the opposite direction…
The game is working and is almost done, but I have more ideas that I want to implement before I will upload it to the Windows 7 Application Store, for example a two players game using push notifications.
If you familiar with C# and .NET, you just need a good kick start for XNA and you there, and XNA is not just for games, it is the easiest platform to develop 2D and 3D based graphics and animations on top of Windows, Windows Phone and XBOX, and you can host an XNA Windows in your WPF/WinForm application.