private Action scanArenaColByCol(Robot robot) {
		
		Action actionForTentativeTurn = actionForTentiveTurn(robot);
		if(actionForTentativeTurn != null) return actionForTentativeTurn;

		if(robotOnArenaEdge(robot, headingOrientation)){
			Orientation current = robot.getCurrentOrientation();
			if(!current.toOppsite().equals(headingOrientation)){
				return Action.TURN_LEFT;
			}else{
				headingOrientation = headingOrientation.toOppsite();
				trackColID += robot.getDiameterInCellNum();

				//Whole arena has been explored
				if(trackColID >= this.exploredMap.getColumnCount()) return null;
			}
			
		}

		int currentSouthWestColID = robot.getSouthWestBlock().getColID();
		if(currentSouthWestColID < trackColID){
			return moveToOrientation(robot, Orientation.EAST, headingOrientation);
		}else if(currentSouthWestColID == trackColID){
			return moveToOrientation(robot, headingOrientation, Orientation.EAST);
		}else{
			//currentSouthWestColID > trackColID
			return moveToOrientation(robot, Orientation.WEST, headingOrientation);
		}		
	}