static Board() { #if DebugInit LogLine("Initializing Board..."); #endif #region Assertions Trace.Assert((UInt32)Piece.None == 0, // Assumed by both CaptiveMask and PromoteMask "Undefined Piece must be Zero"); Trace.Assert(vK6 == nPieces - 1, // Assumed by eval() and appendPiece() "King assumed to be final Piece"); Trace.Assert((UInt32)HiFlags.CanOOO << 1 == 1 << nBishopPairBit, "Bishop Mask in unexpected position"); Trace.Assert(Move.ShortMask == (Move)UInt16.MaxValue, "ShortMask is not equal to UInt16.MaxValue"); Trace.Assert(Move.EmptyMove == (Move.EmptyMove & Move.LimitMask), "LimitMask does not preserve Empty Move"); Trace.Assert(Move.NullMove == (Move.NullMove & Move.LimitMask), "LimitMask does not preserve Null Move"); Trace.Assert(Move.Undefined == (Move.Undefined & Move.LimitMask), "LimitMask does not preserve Undefined Move"); #endregion // // Initialize static data used to find attacks: // initAttacks(); Parameter = new PositionParameter[nSides]; newParameters(); }
private static void newParameters() { foreach (var sideName in (SideName[])Enum.GetValues(typeof(SideName))) { var nSide = (Int32)sideName; Parameter[nSide] = new PositionParameter(sideName); } }
public CastleRuleParameter(PositionParameter parameter) { Parameter = parameter; var n = Parameter.StartRank; KingOOTo = (Int32)sq.g1 + n; RookOOTo = (Int32)sq.f1 + n; KingOOOTo = (Int32)sq.c1 + n; RookOOOTo = (Int32)sq.d1 + n; }
public override DocumentRange CalculateRange() => PositionParameter.GetNavigationRange();
public static bool ToDisplayPositionParameter(int x, int y, out PositionParameter parameter) { parameter = new PositionParameter(x, y); return(true); }
public Task MoveAsync(PositionParameter positionParams) { BroadcastExceptSelf(room).Move(positionParams); return(Task.CompletedTask); }
public async UniTask Move(PositionParameter positionParameter) => await movementHub.MoveAsync(positionParameter);
void IMovementReceiver.Move(PositionParameter positionParams) { var index = positionParams.Index; Parameters[index].Position = positionParams.Position; }
public BoardSide(PositionParameter parameter) { Parameter = parameter; }