private static int scoreMove(Board bd, Move m, int myColor, int oppColor, int currDepth, int maxDepth, int cutoff){
		int retVal;

	    if (currDepth >= maxDepth) {
	      	if(currDepth % 2 == 0){ //this means we are at a depth where we must eval for an opponent Move
	      		retVal = evaluate(bd, m, oppColor);   // eval is higher if pos is good for this color
	      		bd.undoMove(m, oppColor);
	      	}
	      	else{
	      		retVal = evaluate(bd, m, myColor);
	      		bd.undoMove(m, myColor);
	      	}
	      	
	      	return retVal;
	    }

	    if (bd.hasNetwork(myColor)  &&  !bd.hasNetwork(oppColor)) {
	      bd.undoMove(m, myColor);
	      return 1000;
	    }

	    retVal = -tryAll(bd, m, myColor, oppColor, currDepth, maxDepth, cutoff);
	    bd.undoMove(m, myColor);
	    return retVal;
  	}