public void move(ArrayList<Cell> moveableCells, Board board, Ball ball) {
		ArrayList<Cell> targetList = new ArrayList<Cell>(moveableCells);
		
		if(!hasBall) {
			//eDistanceBetween returns the straight line distance between 2 points. If the player is next to the ball, he attempts to steal
			//if he is not next to the ball, he checks to see if the target cell is closer to the ball and moves to it if he is, otherwise, he looks to the next target
			for (Cell target : moveableCells) {
				int targetIndex = board.calcIndex(target.getRow(), target.getCol());
				if(ball.isNear(currentLocation)) {
					System.out.println("ball" + ball.getLocation());
					System.out.println("player" + currentLocation);
					System.out.println(ball.isNear(currentLocation));
					stealBall(ball);
					return;
				} else {
					if (board.eDistanceBetween(targetIndex, ball.getLocation()) < board.eDistanceBetween(currentLocation, ball.getLocation())) {
						setLocation(targetIndex);
						return;
					}
				}
			}
			
		} else if(hasBall) {
			int goalIndex = board.calcIndex(board.getRow(currentLocation), goalColumn);
			
			for (Cell target : moveableCells) {
				int targetIndex = board.calcIndex(target.getRow(), target.getCol());
				if(Math.abs(goalColumn - board.getCol(currentLocation)) <= 1) {
					ball.setLocation(goalIndex);
					scores++;
					return;
				} else {
					if (board.eDistanceBetween(targetIndex, goalIndex) < board.eDistanceBetween(currentLocation, goalIndex)) {
						ball.setLocation(targetIndex);
						setLocation(targetIndex);
						return;
					}
				}
			}
		}
		
	}