コード例 #1
0
        public void EnemyColorTest()
        {
            var chD         = new CheckerOnDesk(ColorType.White, CheckerStatus.Simple, new Point(1, 1));
            var chD2        = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, new Point(1, 1));
            var enemyColor1 = chD.EnemyColor();
            var enemyColor2 = chD2.EnemyColor();

            Assert.IsTrue(enemyColor1 == ColorType.Black);
            Assert.IsTrue(enemyColor2 == ColorType.White);
        }
コード例 #2
0
        public void IsEnemyTest()
        {
            Desk desk = new Desk();

            desk.StartPosition();
            Point         p   = new Point(2, 6);
            Point         p2  = new Point(2, 7);
            Point         p3  = new Point(5, 3);
            CheckerOnDesk chD = desk.GetCheckerOnDesk(p);

            Assert.AreEqual(false, desk.IsEnemy(chD, p2));
            Assert.AreEqual(true, desk.IsEnemy(chD, p3));
        }
コード例 #3
0
        public static string PrintChecker(CheckerOnDesk chD)
        {
            string s;

            if (chD.Status == CheckerStatus.Simple)
            {
                s = (chD.Color == ColorType.White) ? "☺" : "☻";
            }
            else
            {
                s = (chD.Color == ColorType.White) ? "¤" : "♣";
            }

            return(s);
        }
コード例 #4
0
        public void EqualsTest()
        {
            var           chD  = new CheckerOnDesk(ColorType.White, CheckerStatus.Simple, new Point(1, 1));
            var           chD2 = new CheckerOnDesk(ColorType.White, CheckerStatus.Simple, new Point(1, 1));
            var           chD3 = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, new Point(1, 1));
            CheckerOnDesk chD4 = null;
            object        chD5 = null;
            object        chD6 = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, new Point(1, 1));

            Assert.IsTrue(!chD.Equals(chD4));
            Assert.IsTrue(!chD.Equals(chD5));
            Assert.IsTrue(chD.Equals(chD2));
            Assert.IsTrue(!chD.Equals(chD3));
            Assert.IsTrue(!chD.Equals(chD6));
        }
コード例 #5
0
        public void RemoveCheckerTest_2()
        {
            Desk desk = new Desk();

            desk.StartPosition();

            Point         pp  = new Point(4, 4);
            CheckerOnDesk chD = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, pp);

            desk.GetCheckersOnDesks.Add(chD);

            Point p1 = new Point(2, 2);
            Point p2 = new Point(5, 5);

            desk.RemoveChecker(p1, p2);
            Assert.IsTrue(desk.IsEmpty(pp));
            Assert.IsNull(desk.GetCheckerOnDesk(pp));
        }
コード例 #6
0
        public static void PrintDesk(Desk desk)
        {
            List <CheckerOnDesk> checkersOnDesk = desk.GetCheckersOnDesks;

            char[] ch  = new[] { '┬', '─', '─', '─', '┬' };
            char[] ch2 = new[] { '┼', '─', '─', '─', '┬' };

            Console.Write("  ");
            for (int k = 1; k <= 8; k++)
            {
                Console.Write(ch, 0, 4);
            }
            Console.Write('┐');
            Console.WriteLine();

            for (int i = 7; i >= 0; i--)
            {
                Console.Write(i + " ");
                for (int j = 0; j < 8; j++)
                {
                    Point p = new Point(i, j);
                    if (desk.GetCheckerOnDesk(p) != null)
                    {
                        CheckerOnDesk chD = desk.GetCheckerOnDesk(p);
                        Console.Write('│' + " " + PrintChecker(chD) + " ");
                    }
                    else
                    {
                        Console.Write('│' + " " + " " + " ");
                    }
                }
                Console.Write('│');
                Console.WriteLine("  ");
                Console.CursorLeft = 2;
                for (int k = 1; k <= 8; k++)
                {
                    Console.Write(ch2, 0, 4);
                }
                Console.Write('┤');
                Console.WriteLine();
            }
            Console.WriteLine("    0   1   2   3   4   5   6   7");
        }
コード例 #7
0
        public void IsToKingMoveTest_1()
        {
            Desk desk = new Desk();

            desk.StartPosition();

            Point        point1  = new Point(2, 2);
            List <Point> points1 = new List <Point>
            {
                new Point(3, 1),
                new Point(4, 0),
                new Point(3, 3),
                new Point(4, 4)
            };

            CheckerOnDesk chD = desk.GetCheckerOnDesk(point1);

            Assert.IsTrue(desk.IsToKingMove(chD).SequenceEqual(points1));
        }
コード例 #8
0
        public void PossibleChangeOnKingTest()
        {
            Desk desk = new Desk();

            desk.StartPosition();
            Point         p1   = new Point(7, 5);
            Point         p2   = new Point(0, 4);
            Point         p3   = new Point(1, 1);
            CheckerOnDesk chD1 = new CheckerOnDesk(ColorType.White, CheckerStatus.Simple, p1);
            CheckerOnDesk chD2 = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, p2);
            CheckerOnDesk chD3 = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, p3);

            desk.PossibleChangeOnKing(chD1, p1);
            desk.PossibleChangeOnKing(chD2, p2);
            desk.PossibleChangeOnKing(chD3, p3);

            Assert.AreEqual(CheckerStatus.King, chD1.Status);
            Assert.AreEqual(CheckerStatus.King, chD2.Status);
            Assert.AreEqual(CheckerStatus.Simple, chD3.Status);
        }
コード例 #9
0
        public void TestMove_Beat()
        {
            Desk desk = new Desk();

            desk.StartPosition();
            ComputerIntelect computer = new ComputerIntelect(desk, ColorType.Black);
            Point            p1;
            Point            p2;

            Point         p   = new Point(4, 4);
            CheckerOnDesk chD = new CheckerOnDesk(ColorType.White, CheckerStatus.King, p);

            desk.GetCheckersOnDesks.Add(chD);

            computer.Move();
            computer.LastMove(out p1, out p2);

            Assert.IsNotNull(p1);
            Assert.IsNotNull(p2);
            Assert.IsTrue(p1.X - p2.X == 2 && p2.Y - p1.Y == 2);
        }
コード例 #10
0
        public void MoveChekingTest_2()
        {
            Desk desk = new Desk();

            desk.StartPosition();

            Point         pp  = new Point(3, 3);
            CheckerOnDesk chD = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, pp);

            desk.GetCheckersOnDesks.Add(chD);

            Point p1     = new Point(2, 6);
            Point p2     = new Point(3, 7);
            bool  isBeat = false;

            desk.MoveCheking(p1, p2, out isBeat, ColorType.White);

            Assert.IsTrue(isBeat == false);
            Assert.IsTrue(desk.IsEmpty(p1));
            Assert.IsNull(desk.GetCheckerOnDesk(p1));
        }
コード例 #11
0
        public void IsToBitTest()
        {
            Desk desk = new Desk();

            desk.StartPosition();

            Point         p   = new Point(3, 1);
            CheckerOnDesk chD = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, p);

            desk.GetCheckersOnDesks.Add(chD);

            Point         pp   = new Point(3, 3);
            CheckerOnDesk chDD = new CheckerOnDesk(ColorType.Black, CheckerStatus.Simple, pp);

            desk.GetCheckersOnDesks.Add(chDD);


            Point         p1      = new Point(2, 2);
            CheckerOnDesk chD1    = desk.GetCheckerOnDesk(p1);
            List <Point>  points1 = new List <Point> {
                new Point(4, 4), new Point(4, 0)
            };

            Point         p2      = new Point(2, 0);
            CheckerOnDesk chD2    = desk.GetCheckerOnDesk(p2);
            List <Point>  points2 = new List <Point> {
                new Point(4, 2)
            };

            Point         p3      = new Point(1, 1);
            CheckerOnDesk chD3    = desk.GetCheckerOnDesk(p3);
            List <Point>  points3 = new List <Point>();

            Assert.IsTrue(desk.IsToBit(chD1).SequenceEqual(points1));
            Assert.IsTrue(desk.IsToBit(chD2).SequenceEqual(points2));
            Assert.IsTrue(desk.IsToBit(chD3).SequenceEqual(points3));
        }
コード例 #12
0
        public void IsToKingBitTest_3()
        {
            Desk desk = new Desk();

            Point         p   = new Point(1, 5);
            CheckerOnDesk chD = new CheckerOnDesk(ColorType.White, CheckerStatus.King, p);

            desk.GetCheckersOnDesks.Add(chD);

            Point         pp   = new Point(5, 1);
            CheckerOnDesk chDD = new CheckerOnDesk(ColorType.Black, CheckerStatus.King, pp);

            desk.GetCheckersOnDesks.Add(chDD);

            List <Point> points1 = new List <Point> {
                new Point(6, 0)
            };
            List <Point> points2 = new List <Point> {
                new Point(0, 6)
            };

            Assert.IsTrue(desk.IsToKingBit(chD).SequenceEqual(points1));
            Assert.IsTrue(desk.IsToKingBit(chDD).SequenceEqual(points2));
        }
コード例 #13
0
        public void EqualsTest_WrongParam()
        {
            var chD = new CheckerOnDesk(ColorType.White, CheckerStatus.Simple, new Point(1, 1));

            Assert.IsTrue(!chD.Equals(5));
        }