static public Direction opposite(Direction d) {
        if      (d == N)  return S;
        else if (d == W)  return E;
        else if (d == S)  return N;
        else if (d == E)  return W;
        else if (d == NW) return SE;
        else if (d == NE) return SW;
        else if (d == SW) return NE;
        else if (d == SE) return NW;
        else              return None;
    }