Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Tips on Writing a Golf Challenge

by chipmunk (Parson)
on May 23, 2001 at 07:55 UTC ( #82470=monkdiscuss: print w/replies, xml ) Need Help??

I think it's great to see all these golf challenges in the Monastery lately. (To those who frown on Perl golf; remember, it's just for fun, this code will never be in production!)

Here are a few tips I've come up with on writing a Perl golf challenge.

Describe the problem as clearly as possible. How frustrating it is to work on a great solution that turns out to solve the wrong problem! Watch out for ambiguous words like 'numbers' (is that integers, reals, whole numbers...?) or 'words' (is that alphanumerics, non-whitespace, ...?).

Explain any boundary cases. Ensure an even playing field by making sure everyone has to do the same work. Of course, something will turn up that you didn't think of ("but yours fails if the list is empty...").

Provide sample input and output. You can clarify the challenge and provide a test case to all the players at the same time. If the example can be pasted directly into a test script, even better!

Show a solution. The same benefits as an example, plus you can demonstrate how you want the subroutine or program to be called. Of course, it doesn't have to be your best solution...

Be ready to clarify. Some joker will have a question he wants answered or an ambiguity he wants resolved before posting his solution. Whan this happens, pick the answer you like best and update the challenge.

Keep on golfing! First round is on me at the 19th!

Replies are listed 'Best First'.
Re (tilly) 1: Tips on Writing a Golf Challenge
by tilly (Archbishop) on May 23, 2001 at 18:17 UTC
    All good, but a few more.

    Keep it simple. This is golf. There is a fuzzy boundary between golf and a real program. Detailed specs definitely cross that boundary.

    Be sure there is a solution. Even if you don't show it, the mere act of writing your own solution will clarify questions and make sure that your problem is doable. There is a fine line between problems with minor tricks and NP-complete brute force searches.

    Two solutions are even better. If you can think of at least 2 ways someone might reasonably approach the problem, then the golfing course is likely to be more interesting.

    Drop boundary cases if possible Often careful handling of boundary cases takes more work than the main algorithm. The main algorithm is usually the more fun golf challenge.

    Wait before posting Too many golf problems dilutes all of them. Wait until nobody else is posting problems, then post yours.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: monkdiscuss [id://82470]
Approved by root
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (9)
As of 2023-12-06 13:30 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (30 votes). Check out past polls.