Version 4

    JBoss-Drools Puzzles - A Regular Programming Contest

    In August 2007, E.Zhao came up with the idea of a regular programming contest for JBoss-Drools. See below for the origin of the idea...


    The purposes of this contest are:

    • To learn from each other, enhance our programming skill and learn good algorithms, good implementations.

    • To encourage people to explore features of Drools.

    • For fun.


    So our puzzles should not take too much work to solve. They should not

    mentally or physically torture participators.




    The Current Puzzle

    Scott Reed is going to announce the next puzzle on the mailing list - we're eagerly waiting...



    The Puzzles Already Solved





    Rules of the Contest


    Drools Puzzles is a periodic puzzle-solving contest. Anybody can compete in a round except the puzzle poster himself. For now a problem-solving cycle is about 2-4 weeks. Puzzles are posted by the winner of last round. A participator can post her solution to


    All solutions are evaluated after the deadline of a round, on a same computer, under the same software configuration. Submissions will be commented by evaluator and result will be revealed after the dead of the round.


    Every participator gets accumulated scores, even if she does not win. At the end of the year, the top one on the score list will get a &147;Drools Puzzle Cracker&148; award and there will be materialized prize from the Drools team too. Since the score is accumulated, it&146;s possible for a person to win this award if she participates in every round but never really won.


    If any bug in the Drools framework is caught during your solving of the Drools Puzzle, please report it and you will get a T-shirt from the Drools team.



    Rules for participation:


    • The solution (the core algorithm) must be written in Drools. Eligible Drools version changes over the time and should be decided by the puzzle poster. For now, it&146;s recommend for all participators to write rules against Drools 4.0.0, so that there is much less work for the evaluator.

    • In the rule definition file, any dialect of the expression language is allowed. You can declare rules in Java, MVEL, CLIPS, &133; and even mix them in a single rules definition file. Any DSL is allowed but you have to provide the language adapter.

    • Any kind of user interface is allowed. You can even submit a .ear file or .war file. Evaluators know how to measure the performance for your core algorithm. Any overhead for fancy UI rendering in your program will be ignored.

    • The solution program should be as easy to test as possible. Testability also counts in the evaluation.

    • Please provide a readme file with instructions about how to run your program. It is especially important if you submit a .war file or .ear file, you must tell the evaluator which web container to use and how to deploy it.

    • Please do not paste your code in the email body, package your program files and the readme file and attach it in your email.



    Guidelines for winners:


    • Please consider a proper difficult level for the puzzle you are going to post. It should neither be too difficult nor too easy, and it should be easy for yourself to test the solutions. Puzzles like &147;Please prove that integrating and configuring software components using Drools is better than using xxxx-ESB&148; might be doable conceptually but you will need a whole suite of existing components and a whole stack of complex use cases to test the solutions.


    That&146;s it for now. Constructive advice and suggestion about this contest from the community will be taken here.




    This idea was inspired by a "Weekly Challenge" running on

    user forum and GOTM from


    On, a subject is posted by the winner of the prior week,

    people can post their photos to compete. On, an

    initial configuration file is posted each month, and gamers submit

    their end results for ranking. Both of these two non-official contests

    are running very well, I hope Drools Puzzle will turn out a fun thing