Yes, I did an mental exercise and I think you are right about the
difficulties to write the code about when the King is in Check. One
possible solution is changing the objective of the game to the
capture-the-King rule, as in Zillions.
Chess V is a relatively good player in open positions, because the program
can calculate many tactical moves, it is not easy for a human do it in a
good manner in this game, due the great mobility of pieces and
combinations. The program is less abile in closed positions, because it
does not understand well positional concepts, in fact, it is not designed
using positional evaluation functions, but I agree with Greg, the program
should be smarter if the Check condition detection is well solved, because
part of the responsability of the bad play in some instances is the
incorrect evaluation of the King vulnerability.