コード例 #1
0
 public MyAStar(ESearchOrder searchOrder = ESearchOrder.LeftRightDownUp)
 {
     SetSearchOrder(searchOrder);
 }
コード例 #2
0
        /// <summary>
        /// Set search order.
        /// </summary>
        public void SetSearchOrder(ESearchOrder order)
        {
            KeyValuePair <int, int> left  = new KeyValuePair <int, int>(-1, 0);
            KeyValuePair <int, int> right = new KeyValuePair <int, int>(1, 0);
            KeyValuePair <int, int> up    = new KeyValuePair <int, int>(0, -1);
            KeyValuePair <int, int> down  = new KeyValuePair <int, int>(0, 1);

            mSearchOder = order;
            switch (order)
            {
            case ESearchOrder.LeftRightUpDown:
            {
                mMoveDirections[0] = left;
                mMoveDirections[1] = right;
                mMoveDirections[2] = up;
                mMoveDirections[3] = down;
            }
            break;

            case ESearchOrder.LeftRightDownUp:
            {
                mMoveDirections[0] = left;
                mMoveDirections[1] = right;
                mMoveDirections[2] = down;
                mMoveDirections[3] = up;
            }
            break;

            case ESearchOrder.RightLeftUpDown:
            {
                mMoveDirections[0] = right;
                mMoveDirections[1] = left;
                mMoveDirections[2] = up;
                mMoveDirections[3] = down;
            }
            break;

            case ESearchOrder.RightLeftDownUp:
            {
                mMoveDirections[0] = right;
                mMoveDirections[1] = left;
                mMoveDirections[2] = down;
                mMoveDirections[3] = up;
            }
            break;

            case ESearchOrder.UpDownLeftRight:
            {
                mMoveDirections[0] = up;
                mMoveDirections[1] = down;
                mMoveDirections[2] = left;
                mMoveDirections[3] = right;
            }
            break;

            case ESearchOrder.UpDownRightLeft:
            {
                mMoveDirections[0] = up;
                mMoveDirections[1] = down;
                mMoveDirections[2] = right;
                mMoveDirections[3] = left;
            }
            break;

            case ESearchOrder.DownUpLeftRight:
            {
                mMoveDirections[0] = down;
                mMoveDirections[1] = up;
                mMoveDirections[2] = left;
                mMoveDirections[3] = right;
            }
            break;

            case ESearchOrder.DownUpRightLeft:
            {
                mMoveDirections[0] = down;
                mMoveDirections[1] = up;
                mMoveDirections[2] = right;
                mMoveDirections[3] = left;
            }
            break;
            }
        }