Thanks for the feedback, but what exactly do you mean by work in binary?  I could define only 1 number that is randomly chosen between 0 and 15.  This number would internally be represented as binary (as all numbers in computers are).  The problem comes when we try to give hints that need the number broken out into individual bits.  We would have to do bit masking, which although fast, makes the code more complicated.  Furthermore, since I'm using the broken apart bits in 3 of the hints, it would be even more troublesome.  Finally I'd have to sprinkle .toString(2) in the code whenever I want to show the number as binary.