   }
   // Place the token here
   board[i] = token;
+  return i;
 }
 
 int score(char board[], char token, char oppToken) {

  
  int bestScore = -9999;
  
  // Evaluate each choice of column
  for (byte col = 0; col < 7; col++) {
    if (board[col] == '.') {
    
      int thisScore;
      
      // Make a copy of the board
      char boardCopy[43];
      for (byte i = 0; i < 43; i++) boardCopy[i] = board[i];
  
      // Drop token onto the copy of the board   
      dropCounter(boardCopy, token, col);
      thisScore = score(boardCopy, token, oppToken);
      
      if (abs(thisScore) < 1000 && lookAhead > 0) {
        // Look more moves ahead, but swap places with opponent since it will be their turn next
        byte oppBestCol;
        thisScore = -bestMove(boardCopy, oppToken, token, oppBestCol, lookAhead - 1);

            goto gameWon;
          }
        }
        else if (board[j] == oppToken) {
          if (addScore > 0) {
            // A mix of "O" and "X" - no-one can win here
            addScore = 0;
