fixed the bug that 'b' can kill opposite 'b' when there is piece between
optimized coefficient of eval function, fixed 'm' cannot move up right in all cases
refactoring all modules