Those of you who’ve written a chess engine understand how difficult it is to refrain from tinkering with the code. One always has ideas for more efficient algorithms or more concise code. These ideas need expression, need testing and verification. But at some point, due to the cruel law of diminishing returns, one has to walk away and work on other problems.
I feel I’ve reached that point. I’d like to shift my focus from improving the playing strength of MadChess to writing a Graphical User Interface (GUI). To that end, I spent time today reading about the latest Microsoft technologies for building Windows applications. I’m not entirely sure, but I believe I’ll use Windows Presentation Foundation (WPF). I like the combination of XML markup (for positioning / styling user interface controls) and C# code (for handling user input and implementing the application logic).
Plus, WPF provides a ribbon control. This evening I managed to construct a basic WPF application with a ribbon.
Now I need to make a list of chess GUI features I’d like to implement. And prioritize the list. Then start replacing the bogus buttons in the basic WPF application with chess buttons and chess features…
Update a few weeks later: In case you’re wondering, I never pursued this. Went back to programming my chess engine (not a GUI).