April Coding Challenge
What's a coding challenge?
It's not a contest, just a way to exercise your coding skills and show us what you can do. Feel free to work individually, in pairs, teams, whatever. Take the initial guidelines and stretch them as far as you like: beginners can accomplish it with a very basic interface, while experts can add all the bells and whistles you like. The only limit is time.
So what's the challenge this month?
A sliding puzzle game. Your app should, at the minimum, show a grid of randomly arranged puzzle tiles (standard grid is usually 4x4, but any size is fine) and allow the user to solve the puzzle by "sliding" pieces into an adjacent free space. If you're not familiar with this sort of puzzle, one java example can be found here
. You should stick to standard VB controls and API calls -- please avoid using third-party controls or DLLs that those wanting to try out your code may not have access to.
What do I get?
This isn't a contest, and there are no prizes. What you get is experience in coding, satisfaction in helping your peers, and the enjoyment of seeing your work produce a fun and tangible product. If any of the entries particularly stands out in terms of solid functionality, good design, and clear comments, it will be recognized by inclusion in our Code Library.
Sounds cool. So how does this work?
You have until April 25
to work on your tile puzzle apps using VB 4, 5, or 6. Make them as plain or fancy as you like, but try not to sacrifice basic error handling for extra frills. When you're satisfied with your app, post a zip file containing all the code and related files for your app (no binaries, please) in the Coding Challenge Entries thread
. During the last week of April, all entries will be available for everyone to discuss, compare, play, and enjoy.
What if I need help?
Attached are some starter graphics for you if you don't want to create your own tiles (or you can just use numbers, if you don't want to use graphics at all). Feel free to ask questions on the forum or in our IRC channel, although of course we will expect to see that you're making an effort on your own first (otherwise it defeats the whole point of the challenge, right?
). Or look for partners with whom you can learn. If you want to incorporate code snippets from other sources, such as the Code Library, just be sure to credit the source in your comments.
This is too easy. Where's the challenge?
Once you get the basics done, if you want to add to the challenge, consider options such as user-selectable graphics, 3D versions (where tiles can slide around corners), user-selectable grid sizes, high score tables, auto-solving options, etc. It will be great to see how much variety you all come up with.
Good luck and happy coding!