I got punched in the face quite a couple of times, even though I was certain I had the right code. Turns out, you have to give the machine a second or two to digest your code before you give it further input. In other words, wait a second between each button click and you're fine.
Bugreport: If you click two squares very quickly (which I accidentally did) where there are enemies in both, you will see the other group of enemies as well as have the combat music on top of the original layer of music permanently. Which means for every single fight after that you will also see the same group of "ghost" mobs on top of the mobs that you're actually fighting, as well as hearing two different soundtracks at the same time.
I noticed a problem where my 8-side towers would stop attacking for a split second when what looked like their "current target" died. It seems like they still target it in it's death animation, and so miss a couple of attacks that could have been used on other targets. Perhaps add a function to prioritize what targets to attack?
First time I just played through, slightly confused at the neutral ending I got. Then I read the drug references, and it all made sense the second time.