The Results! Phrogram's Spring 2009 programming contest

rated by 0 users
This post has 0 Replies | 1 Follower

Top 10 Contributor
Posts 559
davidw Posted: Fri, Jun 26 2009 4:40 PM | Locked

This spring's contest, on using the File I/O and Extended File I/O libraries, had three entries - -

    * Enigma, by Cipherboy
    * IndentAndCase, by LFS
    * MapMaker, by Battles

Before I announce the results, let me say all three are very solid entries. Also, thanks to those who gave their input on the entries. It helps to consider multiple perspectives. Perhaps reflecting  how different programmers react differently to different programs (or something like that!), the input was "all over the map" (and not just about MapMaker). Everyone had a different recommendation on how the three programs compared! That just goes to show how highly subjective this is but then as they say, maybe "that's what makes horse-racing" too. Or in this case, program-judging.

Before summarizing the entries, it is also worth noting that each seemed to have a few "issues," as Cipherboy might say. It may be because the file I/O libraries (both extended and non-extended) are not such well-traveled roads for most phrogrammers. But even so, these programs all do cool things and deserve to be recognized as solid examples of what you can do with Phrogram, even if it's not related to a game or making digital art.

On a side note, there was some discussion in the forums about whether program entries should use the file I/O or the extended file I/O library, and both were OK. And, while it was great to see two entries presented using both libraries, we considered the extended file I/O version in assessing their relative merits and ranking ... so, without further adieu, here is a quick summary of each entry.

Enigma - Cipherboy, in a short time, you have had a big impact by being so energetic in sharing your ideas and commenting on others' ideas. Your love of programming is infectious and it has been a lot of fun to read your posts. This is your first entry, and it reflects your passion for ciphers and puzzles. When I ran it, I got it to create text files with plain text and encrypted messages, but ran into some problems on other aspects, beginning with an error on Line 641, which could not find the ciphertext file when I clicked on Option #2, to "view all text." It seemed to be looking for text in the wrong place (looking in /bin but stored in /files?) This may have been my error in set-up but it wasn't obvious how to fix the code and anyway, normally the judges should not have to do that. It also took some time to figure out what exactly the program does, because the Yes/No option at the outset does not really explain there are two things you can do, either create a new cipher (yes) or decode a cipher text (no). It's also not clear how the decoder works and I could not get it to do anything other than return gibberish for gibberish. So, maybe I'm not a power user, but it just didn't seem that clear. Lastly, while I don't share one reviewer's comment that your program "goes way way over my head so unfortunately unable to test," I also saw code at the end of your program that I could never get to run, relating to error messages and solving a specific cipher. So, all in all, while this program shows a lot of ingenuity, and did accomplish some interesting things while using the file I/O methods, it still had some kinks to be worked out!

MapMaker - Battles, you also joined the Phrogram user community somewhat recently. While you have mentioned in your posts that you are still getting the hang of programming, you are clearly making a lot of progress! Your program, which generates 2D terrains for games or other programs, is very robust! It includes several methods for loading, drawing, randomizing, saving and providing information about a map, and you placed comments in your code that will be of immense help anyone who wants to go back and figure out how you put it all together. One thing I really liked about the program is that it is really not all that different than how XML is used, in terms of taking sequential information out of external files and using it to create user value in a program.  The usability of the program is also commendable; it was cool how the space bar brings the user back and forth across menus and screens. It starts feeling pretty intuitive once you have done it a few times, which is definitely the mark of a good piece of software. It's also interesting that you took feedback from other users in refining your entry and solving some problems you had early on. The final result is a program that makes custom tile-based maps, although there is a limit to the number of unique tiles you can use (which makes sense - and 45 should be high enough for making lots of interesting maps). Overall, very nice job!

IndentAndCase - LFS, over the past few years, you have solidified your place as one of Phrogram's best programmers. Your entry this time - a tool for case (meaning lower or upper) and indent formatting for programs, also generates a plain text file with indents and cases. It is yet another example of how you have shared your knowledge and enthusiasm for programming with the Phrogram community. Keeping your code "neat and tidy" saves review time and shows other programmers that you respect their time when they need to review what you wrote. Looking at your program's code, it's also very interesting to see how you compartmentalized so many aspects of the program into bite-size chunks. That too, helps others who try to review it to learn how it works. The only issue I had with IndentAndCase, which we discussed in email, was making sure the file path was correct, and figuring out how to change it, or remove the "Invalid Folder location" message that showed up if the path was incorrect. Once I got the hang of that, I found that the program worked like a charm - and it's definitely handy, as it looks like you already used it yourself in commenting on Cipherboy's entry.

So, here's how these programs ranked ... just keep in mind that if you don't agree with this ranking, that's fine too! In this particular contest, with all three entries so intriguing and clever, you could make a strong case for just about any ranking. In other words, your "mileage may vary" and what do judges know, anyway? ;)

Second runner up goes to ... Cipherboy, for Enigma - a fascinating exploration into ciphers ... Cipherboy, you get a t-shirt (let me know your size, XL, L, M or S) and your choice of Phrogram Talk or Precision Math as your prize. Congrats!

First runner up goes to ... Battles, for MapMaker - a thoughtful and complete 2D map generation utility. Again, congrats! Once I know your size (shoot me an email, davidw@phrogram.com), I'll send a T-shirt, and you can decide between a free copy of Phrogram Express, or one of the two Phrogram add-in libraries that are offered for sale (rather than as giveaways).

And the winner is ... LFS, for IndentAndCase - it's a return trip to the winner's circle, for a program that you can put to immediate use to make sure your code looks "clean." I already have your shirt size, so you can decide whether you'd like another license code for Phrogram Standard 2.5, or a free copy of Phrogram 3.0 if and when it ever arrives (I am clicking my heels three times, hoping it shows up by end of summer!). Congrats!

Winner - IndentAndCase
1st Runner-Up - MapMaker
2nd Runner-Up - Enigma

MapMaker
Enigma

Thanks to everyone who entered and/or gave input on the judging of this contest, and keep on programming, with Phrogram!

DavidW for
Phrogram Team

Page 1 of 1 (1 items) | RSS