Results for *easy* contest:
Prelude's comments:
*ClownPimp*
-----------
effciency: 5
elegance: 4
portability: 4
Extras: Does not work with floating-point.
Notes:
While This program works and is decent enough, there are a few points where
I feel that it falls short of being robust. The use of gets for example. All
in all I have little to snipe at with the quick inspection I performed so
ClownPimp recieves a high rating.
Dual-Catfish
------------
effciency: 3
elegance: 1
portability: 0
Extras: Does not work with floating-point.
Notes:
One would wonder why the awful scores for this program. I included the fact
that I had to write a driver to run the calculator, but that is only a small
portion of the scoring. This program did not compile as given, functions
were used before definition, a header file was omitted (resulting in
undefined behavior when a function from said file was used), and once I
fixed all of these errors the program still did not work correctly. I will
give Dual-Catfish some credit, the add function works quite well, but the
others do not. Seeing as how a program must be able to compile before being
portable, I gave that category a rating of 0. The undefined behavior and
erroneous processing seriously hurt elegance, and I took two points away
from efficiency because if a program gives the incorrect output, it doesn't
matter how fast it did so.
ygfperson's comments:
this contest came out easy to judge. out of the 2 entries, only 1 worked.
*ClownPimp*:
efficiency: 3. There's no serious lack of it. I feel that he could have used inline functions in some places to speed things up.
elegance: 5. The program is organized in a modular fashion, and it takes shortcuts where it needs to. (ie: a-b = a + -b).
portability: 3. It compiles fine. He even put in an int main() function to make life easier. But because portability is also a measure of the program's ability, I subtracted 2 points because it can't multiply negative numbers. (neg * neg, pos * neg, and neg * pos all equal 0).
Extras: none (although I did see some effort toward that direction)
Notes:
Great program (except for the multiplication flaw). It works as expected.
Dual-Catfish:
efficiency: 2. There's some lack of efficiency.
elegance: 1. I feel he could have replaced most of the stuff in bitwise_sub() with a bitwise_add() call and a negation. In negation, he also uses plus signs instead of calling his own add function. Even then, there are some avoidable mistakes.
portability: 0. The program doesn't work. It took work to get it to compile.
Extras: none
Notes:
It's a good first try, but it could use a lot of improvement. Some stupid mistakes were made, like using pluses despite the ban on anything outsite ~,&,|,^. The fact that it doesn't do multiplication or division at all, or subtraction correctly, makes this decision easy.
Other notes: Prelude mentioned that she had to write a driver for Dual-Catfish's entry. If that was int main(), it should be known that that wasn't required. (only the function itself). That won't affect results, anyway. (No offense, Catfish... :D)
Scores:
clownpimp: ((5+4+4)/3 + (3+5+3)/3)/2 = 8/3 = 4
dual-catfish: ((3+1+0)/3 + (2+1+0)/3)/2 = 7/6 = 1.17
congrats, *ClownPimp*!
about judges: govtcheez asked us to go ahead, and ABCGum couldn't be reached, so there are two judges.