Hanjie puzzle solver