private boolean Find2Block()
  {
    boolean bFound = false;

    for (int i = 0; i < this.m_nRow * this.m_nCol; i++)
    {
      if (bFound) {
        break;
      }
      if (this.m_map[i] != this.BLANK_STATE)
      {
        for (int j = i + 1; j < this.m_nRow * this.m_nCol; j++)
        {
          if ((this.m_map[j] != this.BLANK_STATE) && (this.m_map[i] == this.m_map[j]))
          {
            this.x1 = (i % this.m_nCol);
            this.y1 = (i / this.m_nCol);
            this.x2 = (j % this.m_nCol);
            this.y2 = (j / this.m_nCol);

            if (IsLink(this.x1, this.y1, this.x2, this.y2))
            {
              Graphics g = this.getGraphics();
              DrawSelectedBlock(x1, y1, g);
              DrawSelectedBlock(x2, y2, g);
              bFound = true;
              break;
            }
          }
        }
      }
    }
    return bFound;
  }