I made a working engine once using just active objects that could correctly look for checkmates and stuff. What's much harder is to look for potential checkmates, ie not letting the player move his pawn because then the other player's bishop would put him in check, that sort of thing. I did work out ways of doing most of it though, but the engine just got too comlex and confusing so it eventually ground to a halt. I'm sure it's possible.