Rule: open squares can only be mines *** *x* *** (= star-unknown-count (- x star-mine-count)) => mark-stars Rule: open squares can't be mines *** *x* *** (= star-mine-count x) => click-stars Rule: interface *** *y* $$$ #x# ### (= (- (- x x-mine-count) pound-unknown-count) (- y y-mine-count)) => click-stars mark-pounds Rule: short interface ***$ *y*$ *$$# $#x# $### (= (- (- x x-mine-count) pound-unknown-count) (- y y-mine-count)) => click-stars mark-pounds Rule: side regions #$$* #xy* #$$* (= (- x x-mine-count) (- (- y y-mine-count) star-unknown-count)) => mark-stars click-pounds Rule: corner-tip $$$* +xy# ++z# +++# (= (+ (- x x-mine-count) (- z z-mine-count)) (- (- y y-mine-count) 1)) => mark-stars Rule: corner-edge $**+ +xy* ++z* +++# (= (+ (- x x-mine-count) (- z z-mine-count)) (- y y-mine-count)) => click-dollars click-pounds