예제 #1
0
        public void B5_PointExiste()
        {
            m_maxScore += 2;
            Piece target;

            // pièce de 3 X 2
            target = new Piece(new Size(3, 2), 9, 8, 0);
            target.AjouterPoint(-1, 0); // position réelle (8,8)
            Assert.IsTrue(target.PointExiste(new AppJeuTetris.Point(8, 8)));

            target.AjouterPoint(0, -1); // position réelle (9,7)
            Assert.IsTrue(target.PointExiste(new AppJeuTetris.Point(9, 7)));

            Assert.IsFalse(target.PointExiste(new AppJeuTetris.Point(9, 8)));
            m_totalScore += 2;
        }
예제 #2
0
        public void B3_PieceDéplacer()
        {
            m_maxScore += 4;

            Piece target = new Piece(new Size(3, 3), 8, 9, 0); // origine (8,9)

            target.AjouterPoint(-1, -1);                       // position réelle (7,8)
            target.AjouterPoint(1, 1);                         // position réelle (9,10)

            target.Déplacer(0, 1);                             // on va déplacer la pièce vers la droite
            Assert.AreEqual(8, target.OrigineRangée);          // pas de mouvement
            Assert.AreEqual(10, target.OrigineColonne);        // déplacement à droite
            Assert.AreEqual(7, target.PointAt(0).Rangée);      // pas de mouvement
            Assert.AreEqual(9, target.PointAt(0).Colonne);     // déplacement à droite
            Assert.AreEqual(9, target.PointAt(1).Rangée);      // pas de mouvement
            Assert.AreEqual(11, target.PointAt(1).Colonne);    // déplacement à droite
            m_totalScore++;

            target.Déplacer(0, -1);                         // on va déplacer la pièce vers la gauche
            Assert.AreEqual(8, target.OrigineRangée);       // pas de mouvement
            Assert.AreEqual(9, target.OrigineColonne);      // déplacement à gauche
            Assert.AreEqual(7, target.PointAt(0).Rangée);   // pas de mouvement
            Assert.AreEqual(8, target.PointAt(0).Colonne);  // déplacement à gauche
            Assert.AreEqual(9, target.PointAt(1).Rangée);   // pas de mouvement
            Assert.AreEqual(10, target.PointAt(1).Colonne); // déplacement à gauche
            m_totalScore++;

            target.Déplacer(1, 0);                          // on va déplacer la pièce vers le bas
            Assert.AreEqual(9, target.OrigineRangée);       // déplacement vers le bas
            Assert.AreEqual(9, target.OrigineColonne);      // pas de mouvement
            Assert.AreEqual(8, target.PointAt(0).Rangée);   /// déplacement vers le bas
            Assert.AreEqual(8, target.PointAt(0).Colonne);  // pas de mouvement
            Assert.AreEqual(10, target.PointAt(1).Rangée);  // déplacement vers le bas
            Assert.AreEqual(10, target.PointAt(1).Colonne); // pas de mouvement
            m_totalScore++;

            target.Déplacer(-1, 0);                         // on va déplacer la pièce vers le haut
            Assert.AreEqual(8, target.OrigineRangée);       // déplacement vers le haut
            Assert.AreEqual(9, target.OrigineColonne);      // pas de mouvement
            Assert.AreEqual(7, target.PointAt(0).Rangée);   /// déplacement vers le haut
            Assert.AreEqual(8, target.PointAt(0).Colonne);  // pas de mouvement
            Assert.AreEqual(9, target.PointAt(1).Rangée);   // déplacement vers le haut
            Assert.AreEqual(10, target.PointAt(1).Colonne); // pas de mouvement
            m_totalScore++;
        }
예제 #3
0
        public void B2b_PiecePointAt_Exceptions()
        {
            m_maxScore += 2;

            Piece target = new Piece(new Size(2, 2), 3, 4, 0);

            Assert.AreEqual(0, target.NbPoints);
            // on commence par ajouter un point à l'origine
            target.AjouterPoint(0, 0);

            // on va ajouter un autre point
            target.AjouterPoint(1, -1);
            Assert.AreEqual(2, target.NbPoints);

            // on va vérifier l'index pour la méthode PointAt
            try
            {
                target.PointAt(-1);
                Assert.Fail("ArgumentOutOfRangeException attendue");
            }
            catch (ArgumentOutOfRangeException)
            {
                m_totalScore++;
            }
            catch (Exception)
            {
                Assert.Fail("ArgumentOutOfRangeException attendue");
            }

            // on va vérifier l'index pour la méthode PointAt
            try
            {
                target.PointAt(target.NbPoints);
                Assert.Fail("ArgumentOutOfRangeException attendue");
            }
            catch (ArgumentOutOfRangeException)
            {
                m_totalScore++;
            }
            catch (Exception)
            {
                Assert.Fail("ArgumentOutOfRangeException attendue");
            }
        }
예제 #4
0
        public void B2a_PieceAjouterPoint_PointAt()
        {
            m_maxScore += 2;

            Piece target = new Piece(new Size(2, 2), 3, 4, 0);

            Assert.AreEqual(0, target.NbPoints);
            // on commence par ajouter un point à l'origine
            target.AjouterPoint(0, 0);
            Assert.AreEqual(1, target.NbPoints);
            Assert.AreEqual(3, target.PointAt(0).Rangée);
            Assert.AreEqual(4, target.PointAt(0).Colonne);
            m_totalScore++;

            // on va ajouter un autre point
            target.AjouterPoint(1, -1);
            Assert.AreEqual(2, target.NbPoints);
            Assert.AreEqual(4, target.PointAt(1).Rangée);
            Assert.AreEqual(3, target.PointAt(1).Colonne);
            m_totalScore++;
        }
예제 #5
0
        public void B4_PieceRotation()
        {
            m_maxScore += 6;
            Piece target;

            // pièce de 3 X 2 rotation à droite
            target = new Piece(new Size(3, 2), 9, 8, 0);
            target.AjouterPoint(-1, 0); // position réelle (8,8)
            target.AjouterPoint(0, -1); // position réelle (9,7)

            target.RotationADroite();
            Assert.AreEqual(9, target.OrigineRangée);
            Assert.AreEqual(8, target.OrigineColonne);
            Assert.AreEqual(9, target.PointAt(0).Rangée);
            Assert.AreEqual(9, target.PointAt(0).Colonne);
            Assert.AreEqual(8, target.PointAt(1).Rangée);
            Assert.AreEqual(8, target.PointAt(1).Colonne);
            m_totalScore++;

            // pièce de 3 X 2 rotation à gauche
            target = new Piece(new Size(3, 2), 9, 8, 0);
            target.AjouterPoint(-1, 0); // position réelle (8,8)
            target.AjouterPoint(0, -1); // position réelle (9,7)

            target.RotationAGauche();
            Assert.AreEqual(9, target.OrigineRangée);
            Assert.AreEqual(8, target.OrigineColonne);
            Assert.AreEqual(9, target.PointAt(0).Rangée);
            Assert.AreEqual(8, target.PointAt(0).Colonne);
            Assert.AreEqual(10, target.PointAt(1).Rangée);
            Assert.AreEqual(9, target.PointAt(1).Colonne);
            m_totalScore++;

            // pièce de 2 X 2 aucun mouvement
            target = new Piece(new Size(2, 2), 9, 8, 0);
            target.AjouterPoint(-1, 0); // position réelle (8,8)

            target.RotationADroite();
            Assert.AreEqual(9, target.OrigineRangée);
            Assert.AreEqual(8, target.OrigineColonne);
            Assert.AreEqual(8, target.PointAt(0).Rangée);
            Assert.AreEqual(8, target.PointAt(0).Colonne);

            m_totalScore++;

            // pièce de 2 X 2 aucun mouvement
            target = new Piece(new Size(2, 2), 9, 8, 0);
            target.AjouterPoint(-1, 0); // position réelle (8,8)

            target.RotationAGauche();
            Assert.AreEqual(9, target.OrigineRangée);
            Assert.AreEqual(8, target.OrigineColonne);
            Assert.AreEqual(8, target.PointAt(0).Rangée);
            Assert.AreEqual(8, target.PointAt(0).Colonne);
            m_totalScore++;

            // pièce de 4 X 1 rotation à droite
            target = new Piece(new Size(4, 1), 9, 8, 0);
            target.AjouterPoint(0, -1);
            target.AjouterPoint(0, 2);

            target.RotationADroite();
            Assert.AreEqual(9, target.OrigineRangée);
            Assert.AreEqual(8, target.OrigineColonne);
            Assert.AreEqual(8, target.PointAt(0).Rangée);
            Assert.AreEqual(8, target.PointAt(0).Colonne);
            Assert.AreEqual(11, target.PointAt(1).Rangée);
            Assert.AreEqual(8, target.PointAt(1).Colonne);
            m_totalScore++;

            // pièce de 4 X 1 rotation à gauche
            target = new Piece(new Size(4, 1), 9, 8, 0);
            target.AjouterPoint(0, -1);
            target.AjouterPoint(0, 2);

            target.RotationAGauche();
            Assert.AreEqual(9, target.OrigineRangée);
            Assert.AreEqual(8, target.OrigineColonne);
            Assert.AreEqual(8, target.PointAt(0).Rangée);
            Assert.AreEqual(8, target.PointAt(0).Colonne);
            Assert.AreEqual(11, target.PointAt(1).Rangée);
            Assert.AreEqual(8, target.PointAt(1).Colonne);

            m_totalScore++;
        }