예제 #1
0
 /// <summary>
 /// 下位bitから1bit拾ってそのbit位置を返す。
 /// 少なくとも1bitは非0と仮定
 /// while(to = bb.Pop())
 ///   Util.MakeMove(from,to);
 /// のように用いる。
 /// </summary>
 /// <returns></returns>
 public Square Pop()
 {
     Debug.Assert(!IsZero());
     return((p.p0 != 0) ? (Square)(BitOp.LSB64(ref p.p0)) : (Square)(BitOp.LSB64(ref p.p1) + 63));
 }
예제 #2
0
 /// <summary>
 /// 下位bitから1bit拾ってそのbit位置を返す。
 /// 少なくとも1bitは非0と仮定
 /// while(to = bb.Pop())
 ///   Util.MakeMove(from,to);
 /// のように用いる。
 /// </summary>
 /// <returns></returns>
 public Square Pop()
 {
     return((p.p0 != 0) ? (Square)(BitOp.LSB64(ref p.p0)) : (Square)(BitOp.LSB64(ref p.p1) + 63));
 }