View Single Post
  #2   Spotlight this post!  
Unread 17-12-2009, 19:35
Bigcheese Bigcheese is offline
C++0x FTW!
AKA: Michael Spencer
FRC #1771
Team Role: Mentor
 
Join Date: Feb 2008
Rookie Year: 2008
Location: GA
Posts: 36
Bigcheese is a jewel in the roughBigcheese is a jewel in the roughBigcheese is a jewel in the roughBigcheese is a jewel in the rough
Re: Driverstation Pong!

This is quite a cool idea, although I did take a look at your code and found some issues.
  • There are quite a few places where there's no code formatting, making it very difficult to read.
  • The use of a try/catch statement for program flow is bad. There's no reason to do this. Simply use a goto statement if you want to reenter the loop.

Now, to defend the use of goto.
Using an exception is the exact same thing as a goto in this case, except that the try/catch implies something different is going on, and ignores all real exceptions because of the catch(...).

Yes, you could use some extra logic to handle exiting the double loop, but in the end, the simplest, and most readable solution is to have a label directly before the main while, and a goto on win.

Although the best solution would be to split the code up into separate functions such as.
  • Setup
  • WaitForStart
  • Update - Returns a value in {continue, player_1_won, player_2_won}

Then the problem wouldn't be there to begin with .