fix bugs in cannon move