private void inhibitAdjacentOtherShapeRecognizers(int shape,int otherShape){
    //System.out.println(" inhibadgy " + shape);
    int shapeOffset = 2500 * shape;
    for (int neuron = 0; neuron < 2500; neuron += 5) {
      int fromNeuron = neuron + shapeOffset;
      int fromRow = neuron / 50;
      if ((fromRow % 10) >= 5) {// only for bottom half.
        int fromBigRow = neuron / 500;
        int fromCol = neuron % 50;
        int fromBigCol = fromCol / 10;
        // account for other shape
        for (int toBigRow = fromBigRow-1; toBigRow<=fromBigRow+1; toBigRow++){
          for (int toBigCol=fromBigCol-1;toBigCol<=fromBigCol+1; toBigCol++) {
            // not off the edge
            if ((toBigCol >= 0) && (toBigCol < 5) && (toBigRow >= 0)
                && (toBigRow < 5)) {
              int toBigBaseRow = toBigRow + (otherShape * 5);
              int toNeuron = (toBigBaseRow * 500)+((toBigCol-fromBigCol)*10);
              toNeuron += ((fromRow % 10) * 50) + (fromNeuron % 50);
              double inhibWeight = 2.0;
              addConnection(fromNeuron, toNeuron, inhibWeight);
              addConnection(fromNeuron, toNeuron + 1, inhibWeight);
              addConnection(fromNeuron, toNeuron + 2, inhibWeight);
              addConnection(fromNeuron, toNeuron + 3, inhibWeight);
              addConnection(fromNeuron, toNeuron + 4, inhibWeight);
            }
          }
        }
      }
    }
  }