@Override
	public Set<Coordinate> searchMovibleGrids(Coordinate pieceToMove,
			StatusChecker statusChecker) {
		Set<Coordinate> movibleGrids = new HashSet<>();
		int row = pieceToMove.getRow();
		int col = pieceToMove.getCol();
		Boolean flag = true;
		
		//add upward
		for (int i = row + 1; i < Constant.MAX_ROW.getNumber() && flag; i++) {
			flag = addMovibleGrid(movibleGrids, statusChecker, new Coordinate(i, col));
		}
		
		//add right
		flag = true;
		for (int i = col + 1; i < Constant.MAX_COL.getNumber() && flag; i++) {
			flag = addMovibleGrid(movibleGrids, statusChecker, new Coordinate(row, i));
		}
		
		//add downward
		flag = true;
		for (int i = row - 1; i >= 0 && flag; i--) {
			flag = addMovibleGrid(movibleGrids, statusChecker, new Coordinate(i, col));
		}
		
		//add left
		flag = true;
		for (int i = col - 1; i >= 0 && flag; i--) {
			flag = addMovibleGrid(movibleGrids, statusChecker, new Coordinate(row, i));
		}
		return movibleGrids;
	}