-- Ancestor of all Movement strategy classes. -- Follows the strategy pattern from GOF book. deferred class STRATEGY inherit PUZZLE_COMPONENT feature mobile : AUTO_MOBILE -- the piece who's movement I govern. try_move is -- Based on my brains, try to move `mobile'. deferred end feature{NONE} make( m : AUTO_MOBILE ) is -- Default creation routine, just sets my `mobile'. do mobile := m ensure mobile = m end end