boolean OneCornerLink(int x1, int y1, int x2, int y2)
  {
    if (x1 > x2)
    {
      int n = x1;
      x1 = x2;
      x2 = n;
      n = y1;
      y1 = y2;
      y2 = n;
    }

    if (this.m_map[(y1 * this.m_nCol + x2)] == this.BLANK_STATE)
    {
      if ((Y_Link(x1, x2, y1)) && (X_Link(x2, y1, y2)))
      {
        this.z1.x = x2; this.z1.y = y1;
        return true;
      }
    }

    if (this.m_map[(y2 * this.m_nCol + x1)] == this.BLANK_STATE)
    {
      if ((Y_Link(x2, x1, y2)) && (X_Link(x1, y2, y1)))
      {
        this.z1.x = x1; this.z1.y = y2;
        return true;
      }
    }
    return false;
  }