예제 #1
0
파일: Board.cs 프로젝트: CNHume/Samples
        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();
        }
예제 #2
0
파일: Board.cs 프로젝트: CNHume/Samples
 private static void newParameters()
 {
     foreach (var sideName in (SideName[])Enum.GetValues(typeof(SideName)))
     {
         var nSide = (Int32)sideName;
         Parameter[nSide] = new PositionParameter(sideName);
     }
 }
예제 #3
0
            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);
        }
예제 #6
0
 public Task MoveAsync(PositionParameter positionParams)
 {
     BroadcastExceptSelf(room).Move(positionParams);
     return(Task.CompletedTask);
 }
예제 #7
0
파일: Movement.cs 프로젝트: aiczk/MoApi
 public async UniTask Move(PositionParameter positionParameter) => await movementHub.MoveAsync(positionParameter);
예제 #8
0
파일: Movement.cs 프로젝트: aiczk/MoApi
        void IMovementReceiver.Move(PositionParameter positionParams)
        {
            var index = positionParams.Index;

            Parameters[index].Position = positionParams.Position;
        }
예제 #9
0
파일: BoardSide.cs 프로젝트: CNHume/Samples
 public BoardSide(PositionParameter parameter)
 {
     Parameter = parameter;
 }