I just completed competing in the first Omaha .NET User Group code challenge and I took second place together with my friend Dustin Horne. The challenge was to solve 5 rubik's cubes in the fewest number of moves in the least amount of time. MattB took first place but I can feel good knowing we gave him a run for his money. We basically went back and forth beating each other until the very end.
Scoring for this challenge was very interesting. You start with 100,000 points and you lose 1,500 points for every move you make along with another point for every millisecond your code executes. Each cube you solve is given its own score and then these 5 scores are averaged out to come up with your final score. The 5 cubes you are passed are in fixed positions to prevent scores from changing after multiple runs and the 5 cubes are passed in a random order to prevent cheating. Our final score was 63,659. Here is a break down of our code results:
cube 1 - 25 moves and 302.5875 milliseconds
cube 2 - 30 moves and 1258.7683 milliseconds
cube 3 - 4 moves and 0.121 milliseconds
cube 4 - 29 moves and 13.4743 milliseconds
cube 5 - 32 moves and 125.6286 milliseconds
There was a constant battle between number of moves and time taken. Most of these cubes could be solved in fewer moves but sometimes figuring out the moves ended up taking more time than it was worth. In the end it seems Mattb beat us on number of moves. We actually solved all 5 cubes in a fraction of the time he took. Ah well, the next challenge is coming soon and I don't plan to take second again!!
Finally, I'd like to thank Tek Systems for sponsoring this code challenge. Fame and glory are great, but real cash prizes help encourage more participation.