Abstract engine for 2048