public void getNextMove(final GameStateModule state) {
   if (myID == 0) {
     myID = state.getActivePlayer();
     eID = myID == 1 ? 2 : 1;
   }
   // only uncomment these if we have reason to believe there will be non-standard sizes
   // width = state.getWidth();
   // height = state.getHeight();
   // this is an array the width of the board that symbolizes each possible move
   moves = new int[width];
   chosenMove = r.nextInt(7);
   int enemyMove = -1;
   int h = 0;
   // This loop determines where the enemy played
   for (int i = 0; i < width; i++) {
     h = heights[i];
     if (h != height && h != state.getHeightAt(i)) {
       h = heights[i];
       heights[i]++;
       System.out.println("Enemy placed at " + i + "," + h);
       enemyMove = i;
       break;
     }
   }
   if (enemyMove != -1) {
     if (myThreats[enemyMove][h] != 0) myThreats[enemyMove][h] = 0;
   }
   findThreats(eID, enemyMove, h, state);
   findThreats(myID, lastX, lastY, state);
   // while(!terminate) {
   evaluate(state);
   /*
   for(int i = 0; i < 7; i++) {
   	System.out.print("[" + moves[i] + "]");
   }
   System.out.print("\n");
   // */
   // countdown = ++depth;
   // }
   // printThreats(eThreats);
   lastX = chosenMove;
   lastY = heights[chosenMove];
   eThreats[lastX][lastY] = 0;
   heights[chosenMove]++;
   System.out.println("Depth: " + depth);
   depth = countdown = 0;
 }