Since today, January 15 - International CAPTHA-day, then I will offer my version.
My idea is interactive interaction with the user to understand that this is not a robot. First you need to ask the user some simple task. Characters entered from the keyboard are immediately sent to the server using AJAX and thus determine whether it is a human or not. If a word is entered in one millisecond, then this is a robot. Again, you can interactively change the task and monitor the user's reaction. How this could be in a somewhat exaggerated form can be seen in the
McBernar picture, in each joke only a fraction of the joke ;-)

Of course, you don’t need to mock the user, but on the same picture, which can still be recognized, you get a large number of answer options, and not just typing the whole text from it or poking it into the desired area.
Combining two (or more) tasks dramatically increases the "secrecy of the castle", and control over the user input speed makes it impossible to open it with brute force.
The implementation of interactivity is also possible through mouse interaction with objects (in this case, you need to control the movement of the mouse and the speed of clicks, similarly to control input).
Well, on resources where flash is widely used you can make a captcha on it (there is still nothing without flash support), this will minimize confusion, but alas will not work on opera mini.
I ask you not to judge strictly, I tried to come up with a tool that at least fulfills its task of protecting against bots as well as the existing ones.