tags:

views:

549

answers:

7

So far, most of my GUI programming has been done in C++ with the Qt Framework, I'd like to branch out a little bit and do some C# with WPF. Originally, I wanted to write something like Adium for Windows, but that seems a tad...ambitious for a starting project. I'm not even sure if you can call libpurple stuff from C#, but I'd like to find out.

However, it seems my imagination is rather lacking and I'm having trouble thinking of something that isn't either completely trivial (a text editor! a calculator! wee!) or rather hard (something with libpurple).

So, any suggestions?

I don't want to write a calculator (even if it seems a rather fitting starting project for a GUI framework)!

A: 

Make a game. Or have a look at the Silverlight Showcase and find something interesting and make it, but better.

jeffamaphone
They sure could use a better nav, if that's written in Silverlight. How am I supposed to get at the dots under the other dots?
Yeah; so it would seem.
jeffamaphone
+4  A: 

A long time ago I started the "Quest for the Perfect Project" with a few colleagues - the idea was that we'd try to do everything as well as we possibly could, fully test-driven etc, while learning WPF, WCF etc. We reckoned that Battleships would be a really good game. You can start off relatively simply, but there are lots of ways to extend it over time.

We never actually got anywhere with the project, mostly because we all ended up at different companies and I started writing C# in Depth, but I still think Battleships was a good game to use for learning.

Start off with a two player, single screen, local-only game, and then work out network play, AI, variations for more than two players, leagues, chat etc.

(When running as a single screen it would be seriously non-ideal as an actual game - each player would have to look away while setting up the ships to start with, and if any player wanted to see their own ships later on to get an idea of how close the other player was, that other player would have to look away. It would be great for making sure you've got a working game engine though.)

Jon Skeet
Battleships, huh? Are you and I thinking of the same game, where players sit across from each other so they can't see each other's ships? Not sure how I'd work that out on a single screen, but that is an interesting idea.
@sorren Yes, we're thinking of the same game. I'll edit the answer to explain how it would work.
Jon Skeet
A: 

Quite another interesting game is what Tess Ferrandez (she an escalation engineer in the ASP.NET team at Microsoft) wrote on her blog, it's a game called "Traffic Jam", similar to "Parking Lot" on the iPhone. It's written in Silverlight, but you could easily make it a Windows WPF application.

Chris
A: 

Write a spreadsheet program.

Daniel Earwicker
Care to explain? I'm missing the fun-factor.
Henk Holterman
+1  A: 
Anthony Brien
+1  A: 

Try taking a look at Coding4Fun. There are a few WPF projects on there that might be of use to you, including a version of Sudoku. You can either use the articles to sow some seeds and try to develop the apps yourself, or just grab the code and pull it apart to see how it all works.

GavinM
+1  A: 

My usual starting point for these kinds of expeditions is to write a simple accounting program; money in/Money out with scheduling and graphing.

It turned out to be a pretty useful exercise when i started out with WPF because it gives you the scope for some pretty advanced stuff when you get around to visualizing the data (if you want to get fancy!) and also has a LOB edge to it meaning you're more likely to gain some commercially viable skills with it. I also used IsolatedStorage in mine which was fairly useful.

Anywho, that's my suggestion.

Stimul8d