예제 #1
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
        public static NPoint Rotate(NPoint point, RtDirection direction) // A clockwise rotation matrix in the screen coordinate system
        {
            int a01 = (direction == RtDirection.Clockwise) ? -1 : 1;     // (a00, a01) = (cos(pi/2), -sin(pi/2))
            int a10 = (direction == RtDirection.Clockwise) ? 1 : -1;     // (a10, a11) = (sin(pi/2),   cos(pi/2))

            int tx = point.x;

            point.x = a01 * point.y;
            point.y = a10 * tx;
            return(point);
        }
예제 #2
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
        public static NPoint Move(NPoint point, Direction direction)
        {
            switch (direction)
            {
            case Direction.Left:
                point.x -= 1;
                break;

            case Direction.Right:
                point.x += 1;
                break;

            case Direction.Down:
                point.y += 1;
                break;
            }
            return(point);
        }
예제 #3
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static NPoint Move(NPoint point, Direction direction)
 {
     switch (direction) {
         case Direction.Left:
             point.x -= 1;
             break;
         case Direction.Right:
             point.x += 1;
             break;
         case Direction.Down:
             point.y += 1;
             break;
     }
     return point;
 }
예제 #4
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static void Rotate(NPoint[] points, RtDirection direction)
 {
     for (int i = 0; i < points.Length; i++) {
         Rotate(ref points[i], direction);
     }
 }
예제 #5
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static void Rotate(ref NPoint point, RtDirection direction)
 {
     point = Rotate(point, direction);
 }
예제 #6
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
        public static NPoint Rotate(NPoint point, RtDirection direction)
        {
            // A clockwise rotation matrix in the screen coordinate system
            int a01 = (direction == RtDirection.Clockwise) ? -1 : 1; // (a00, a01) = (cos(pi/2), -sin(pi/2))
            int a10 = (direction == RtDirection.Clockwise) ? 1 : -1; // (a10, a11) = (sin(pi/2),   cos(pi/2))

            int tx = point.x;
            point.x = a01 * point.y;
            point.y = a10 * tx;
            return point;
        }
예제 #7
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static void Move(NPoint[] points, Direction direction)
 {
     for (int i = 0; i < points.Length; i++) {
         Move(ref points[i], direction);
     }
 }
예제 #8
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static void Move(ref NPoint point, Direction direction)
 {
     point = Move(point, direction);
 }
예제 #9
0
파일: Piece.cs 프로젝트: hirotk/Pentia
        public Piece(Field field, int x, int y, PcType type, PcColor? color= null)
        {
            this.Field = field;
            this.pos = new NPoint(x, y);
            this.Color = color ?? PC_CLRS[(int)type];

            var PcShp = PC_SHPS[(int)type];
            this.Shape = new NPoint[PcShp.Length];
            PcShp.CopyTo(this.Shape, 0);
        }
예제 #10
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static void Move(ref NPoint point, Direction direction)
 {
     point = Move(point, direction);
 }
예제 #11
0
파일: NPoint.cs 프로젝트: hirotk/Pentia
 public static void Rotate(ref NPoint point, RtDirection direction)
 {
     point = Rotate(point, direction);
 }
예제 #12
0
파일: NPointTest.cs 프로젝트: hirotk/Pentia
 public void RotateTest()
 {
     var expected = new NPoint(-1 * target.y, 1 * target.x);
     Rotator.Rotate(ref target, RtDirection.Clockwise);
     Assert.AreEqual(expected, target);
 }
예제 #13
0
파일: NPointTest.cs 프로젝트: hirotk/Pentia
 public void BeginTestMethod()
 {
     target = new NPoint(2, 1);
 }