Re: I'm not a programmer
> i'm not a programmer, but surely even if you have 10 checkboxes that will only kill 9 tenths of the spam.
Only if you have 10 checkboxes *of which exactly one must be checked*; the bot then has a one-in-ten chance of randomly guessing correctly. Otherwise it's not quite that simple.
Assume that there are 10 checkboxes, and depending on the images displayed, any number (including zero) of these may need to be checked for the solution to be correct.
That's 2 to the power of 10, i.e. 1024 possible combinations, which gives less than 0.1% chance that a bot deciding entirely at random whether to check each box will guess correctly.
If we instead suppose that we know that exactly 5 of the 10 boxes should be checked, but we don't know *which* 5, there are 252 possible combinations of 5-out-of-10 checkboxes i.e. 10!/(5! * (10-5)!) see here for an explanation of why).
This still gives less than 0.4% chance of a bot randomly selecting the right combination.
Either way, you'd expect it to kill over 99% of spam *generated by dumb bots guessing randomly*
However, add in even a fairly low-accuracy image-recognition module to your bot (as long as it beats a coin-flip) and things rapidly change. If your image recognition module is, say, 75% accurate, the chance of getting 10 images right in a row is now (3/4)^10) = 0.056... i.e. better than 5% chance of getting it right; still not great, but an improvement (from the spammer's POV of course!). Improve your image recogniser to 80% accuracy, and this nearly doubles, and so on.