public void TestKingLoses_ReturnsFalse()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            // move the king to (2, 2)
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUR");

            // move pawn A to (1, 1)
            chessboardManager.TryMovePawn("ADR");

            // move pawn B to (1, 3)
            chessboardManager.TryMovePawn("BDR");

            // move pawn C to (1, 5)
            chessboardManager.TryMovePawn("CDR");

            // move pawn D to (1, 7)
            chessboardManager.TryMovePawn("DDR");

            Assert.IsFalse(
                chessboardManager.KingLoses(),
                "The check whether the king loses doesn't work correctly.");
        }
        public void TestTryMovePawn_InvalidCommand2()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            bool success = chessboardManager.TryMovePawn("ADL");

            Assert.IsFalse(success, "Move pawn to an invalid position returns success.");
        }
        public void TestTryMovePawn_CommandPawnDownRight1()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            bool success = chessboardManager.TryMovePawn("ADR");

            Assert.IsTrue(success, "Command execution fails for the valid command \"ADR\".");
        }
        public void TestTryMoveKing_InvalidCommand2()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            bool success = chessboardManager.TryMoveKing("KDR");

            Assert.IsFalse(success, "Move king to an invalid position returns success.");
        }
        public void TestTryMoveKing_InvalidCommand1()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            bool success = chessboardManager.TryMoveKing("qwerty");

            Assert.IsFalse(success, "Move king command returns success for invalid commands.");
        }
        public void TestTryMoveKing_CommandKingUpLeft1()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            bool success = chessboardManager.TryMoveKing("KUL");

            Assert.IsTrue(success, "Command execution fails for the valid command \"KUL\".");
        }
        public void TestTryMovePawn_InvalidCommand1()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            bool success = chessboardManager.TryMovePawn(null);

            Assert.IsFalse(success, "Move pawn command returns success for invalid commands.");
        }
        public void TestGetValidCommands()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            string validCommands = chessboardManager.GetValidCommands();

            string expectedCommands =
                "King: KUL, KUR, KDL, KDR\r\n" +
                "Pawns: ADL, ADR, BDL, BDR, CDL, CDR, DDL, DDR\r\n";

            Assert.AreEqual(expectedCommands, validCommands, "The valids commands are not those expected.");
        }
        public void TestTryMoveKing_CommandKingUpLeft2()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            ChessPiece chessPieceBefore = chessboardManager.GetChessPiece('K');

            bool success = chessboardManager.TryMoveKing("KUL");

            Assert.IsTrue(success);

            ChessPiece chessPieceAfter = chessboardManager.GetChessPiece('K');

            Assert.AreEqual(chessPieceBefore.Row - 1, chessPieceAfter.Row, "King position is incorrect.");
            Assert.AreEqual(chessPieceBefore.Col - 1, chessPieceAfter.Col, "King position is incorrect.");
        }
        public void TestTryMovePawn_CommandPawnDownRight2()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            ChessPiece chessPieceBefore = chessboardManager.GetChessPiece('A');

            bool success = chessboardManager.TryMovePawn("ADR");

            Assert.IsTrue(success);

            ChessPiece chessPieceAfter = chessboardManager.GetChessPiece('A');

            Assert.AreEqual(chessPieceBefore.Row + 1, chessPieceAfter.Row, "Pawn position is incorrect.");
            Assert.AreEqual(chessPieceBefore.Col + 1, chessPieceAfter.Col, "Pawn position is incorrect.");
        }
Ejemplo n.º 11
0
    public del_feedbackPos FeedbackDropPawnPos; //可打入格判斷事件

    //-------------------------------------------------------------------------------------------------------------------

    void Awake()
    {
        if (_instance == null)
        {
            _instance = this;                    //設定單例模式
        }
        Dict_ChessAttribute = new Dictionary <AnimalChessName, ChessAttribute>();

        //建立字典
        for (int i = 0; i < chessSettings.Count; i++)
        {
            Dict_ChessAttribute.Add(chessSettings[i].m_data.chessName, chessSettings[i].m_data);
        }

        //GameController.Instance.debugerText.text = "Test2";
    }
        public void TestKingWins_PawnsCannotMoveAnyFurther()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            // A reaches line 7
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");

            // B reaches line 7
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDL");
            chessboardManager.TryMovePawn("BDL");

            // C reaches line 7
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDR");
            chessboardManager.TryMovePawn("CDR");
            chessboardManager.TryMovePawn("CDL");

            // D gets blocked at (6, 0) by C which is at (7, 1)
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");

            // The king does not need to reach row 0 to win.
            Assert.IsTrue(
                chessboardManager.KingWins(),
                "The check whether the king wins doesn't work correctly.");
        }
        public void TestKingWins_Case1()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUR");

            chessboardManager.TryMovePawn("CDR");

            chessboardManager.TryMoveKing("KUR");

            Assert.IsTrue(
                chessboardManager.KingWins(),
                "The check whether the king wins doesn't work correctly.");
        }
        public void TestKingWins_PawnsCanMoveAndKingNotAtRow0()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMovePawn("ADR");

            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDR");
            chessboardManager.TryMovePawn("BDL");

            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMovePawn("CDR");
            chessboardManager.TryMovePawn("CDR");

            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMovePawn("DDL");

            // the king does not reach row 0
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");

            Assert.IsFalse(
                chessboardManager.KingWins(),
                "The check whether the king wins doesn't work correctly.");
        }
        public void TestKingMovesCount()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUR");

            chessboardManager.TryMovePawn("CDR");

            chessboardManager.TryMoveKing("KUR");

            Assert.AreEqual(
                7,
                chessboardManager.KingMovesCount,
                "The moves made by the king are not counted correctly.");
        }
        public void TestToString()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            string expectedString =
                "    0 1 2 3 4 5 6 7\r\n" +
                "   -----------------\r\n" +
                "0 | A - B - C - D - |\r\n" +
                "1 | - + - + - + - + |\r\n" +
                "2 | + - + - + - + - |\r\n" +
                "3 | - + - + - + - + |\r\n" +
                "4 | + - + - + - + - |\r\n" +
                "5 | - + - + - + - + |\r\n" +
                "6 | + - + - + - + - |\r\n" +
                "7 | - + - K - + - + |\r\n" +
                "   -----------------\r\n";

            Assert.AreEqual(
                expectedString,
                chessboardManager.ToString(),
                "Converting to string doesn't work correctly.");
        }
        public void TestKingWins_Case2()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMovePawn("BDL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMovePawn("DDL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMovePawn("CDL");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMovePawn("BDL");
            chessboardManager.TryMoveKing("KUL");

            Assert.AreEqual(7, chessboardManager.KingMovesCount, "King moves are not counted correctly.");

            Assert.IsTrue(
                chessboardManager.KingWins(),
                "The check whether the king wins doesn't work correctly.");
        }
        public void TestKingWins_Case3()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMoveKing("KDL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMovePawn("ADR");
            chessboardManager.TryMoveKing("KDR");

            // the king: (5, 1)
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMovePawn("DDR");
            chessboardManager.TryMoveKing("KUL");

            // pawn C: (1, 5)
            chessboardManager.TryMovePawn("CDR");

            // pawn B: (1, 3)
            chessboardManager.TryMovePawn("BDR");

            // the king: (2, 0)
            chessboardManager.TryMoveKing("KUL");
            chessboardManager.TryMovePawn("DDL");

            // the king: (1, 1)
            chessboardManager.TryMoveKing("KUR");
            chessboardManager.TryMoveKing("KUR");

            Assert.IsTrue(
                chessboardManager.KingWins(),
                "The check whether the king wins doesn't work correctly.");
        }
Ejemplo n.º 19
0
 private void Awake()
 {
     singleton = this;
 }
 public void SetManager(ChessboardManager chessboardManager)
 {
     this.chessboardManager = chessboardManager;
 }
Ejemplo n.º 21
0
 void Start()
 {
     chessboardManager = GameObject.FindGameObjectWithTag("Chessboard").GetComponent <ChessboardManager>();
     properties        = GetComponent <TileProperties>();
     defaultMaterials  = GetComponent <Renderer>().materials;
 }
        public void TestGetChessPiece_ThrowsException()
        {
            ChessboardManager chessboardManager = new ChessboardManager();

            ChessPiece chessPiece = chessboardManager.GetChessPiece('E');
        }