示例#1
0
        public void F2_SupprimerLignesPleines()
        {
            m_maxScore += 10;

            GrilleTétris target;

            //----------------------------------------------------------------------
            // LE CODE CI-DESSOUS VA VÉRIFIER LA SUPPRESSION DES LIGNES
            target = new GrilleTétris();

            int colMilieu = target.ColumnCount / 2;

            for (int row = 0; row < target.RowCount; row++)
            {
                if (row % 2 != 0) // rangée impaire, incomplète
                {
                    target[row, colMilieu] = row;
                }
                else // rangée paire alors elle sera pleine
                {
                    for (int col = 0; col < target.ColumnCount; col++)
                    {
                        target[row, col] = row;
                    }
                }
            }
            target.SupprimerLignesPleines();

            // on va vérifier que les lignes pleines ont étés supprimées
            for (int row = 0; row < target.RowCount; row++)
            {
                if (target[row, colMilieu] != 0 && target[row, colMilieu] % 2 == 0)
                {
                    Assert.Fail();
                }
            }
            m_totalScore += 5;

            //-------------------------------------------------------------------------------
            Placer3LignesPleines(target);
            target.SupprimerLignesPleines();
            // on va vérifier que les trois dernières lignes ont été supprimées
            for (int row = 0; row < target.RowCount; row++)
            {
                if (row < 3)
                {
                    if (target[row, colMilieu] != 0)
                    {
                        Assert.Fail();
                    }
                }
                else if (target[row, colMilieu] != row - 3)
                {
                    Assert.Fail();
                }
            }

            m_totalScore += 5;
        }
示例#2
0
        public void F1_SupprimerLaLigne()
        {
            m_maxScore += 6;

            GrilleTétris target;

            //----------------------------------------------------------------------
            // LE CODE CI-DESSOUS VA VÉRIFIER LA SUPPRESSION DE LA DERNIÈRE LIGNE
            target = new GrilleTétris();
            // on va placer des nombres dans une diagonale
            for (int index = 0; index < target.RowCount; index++)
            {
                target[index, index] = index + 1;
            }

            // on va supprimer la dernière ligne
            target.SupprimerLaLigne(target.RowCount - 1);

            // on va vérifier les nombres de la diagonales
            Assert.IsTrue(target[0, 0] == 0);
            for (int index = 0; index < target.RowCount - 1; index++)
            {
                Assert.IsTrue(target[index + 1, index] == index + 1);
            }

            m_totalScore += 3;
            //----------------------------------------------------------------------
            // LE CODE CI-DESSOUS VA VÉRIFIER LA SUPPRESSION DE LA LIGNE DU MILIEU
            target = new GrilleTétris();
            // on va placer des nombres dans une diagonale
            for (int index = 0; index < target.RowCount; index++)
            {
                target[index, index] = index + 1;
            }

            // on va supprimer la ligne du mileu
            target.SupprimerLaLigne(target.RowCount / 2);

            // on va vérifier les nombres de la diagonales
            Assert.IsTrue(target[0, 0] == 0);
            for (int index = 0; index < target.RowCount / 2; index++)
            {
                Assert.IsTrue(target[index + 1, index] == index + 1);
            }

            for (int index = target.RowCount / 2 + 1; index < target.RowCount; index++)
            {
                Assert.IsTrue(target[index, index] == index + 1);
            }


            m_totalScore += 3;
            //----------------------------------------------------------------------
        }
示例#3
0
        //----------------------------------------------------------------------
        private void Placer3LignesPleines(GrilleTétris pGrille)
        {
            // maintenant on va supprimer les trois dernières lignes qui seront pleines
            int colMilieu = pGrille.ColumnCount / 2;

            for (int row = 0; row < pGrille.RowCount; row++)
            {
                if (row >= pGrille.RowCount - 3)
                {
                    for (int col = 0; col < pGrille.ColumnCount; col++)
                    {
                        pGrille[row, col] = row;
                    }
                }
                else
                {
                    pGrille[row, colMilieu] = row;
                }
            }
        }
示例#4
0
        public void C2_GrilleJeuDessinerPièceTriangle()
        {
            m_maxScore += 1;

            GrilleTétris_Accessor target = new GrilleTétris_Accessor();
            GrilleTétris          grille = (GrilleTétris)target.Target;

            target.m_objPieceCourante = target.FabriquerPiece(5, 5, enuFormePièce.Triangle);
            target.DessinerPieceCourante();

            for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
            {
                if (grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] != target.m_objPieceCourante.ImageIndex)
                {
                    Assert.Fail();
                }
            }

            m_totalScore += 1;
        }
示例#5
0
        public void E1_DescendrePièceCourante()
        {
            m_maxScore += 4;

            GrilleTétris_Accessor target = new GrilleTétris_Accessor();
            GrilleTétris          grille = (GrilleTétris)target.Target;

            // lance autant de triangle que possible...
            for (int cptPiece = 1; cptPiece < grille.RowCount / 2; cptPiece++)
            {
                target.m_objPieceCourante = target.FabriquerPiece(1, 1, enuFormePièce.Triangle);
                target.DessinerPieceCourante();

                for (int cpt = 0; cpt < grille.RowCount - target.m_objPieceCourante.Taille.Height * cptPiece; cpt++)
                {
                    Assert.IsTrue(target.DescendrePièceCourante());
                }
                Assert.IsFalse(target.DescendrePièceCourante());
            }
            m_totalScore += 4;
        }
示例#6
0
        public void C3_GrilleJeuEffacerPièceTriangle()
        {
            m_maxScore += 1;

            GrilleTétris_Accessor target = new GrilleTétris_Accessor();
            GrilleTétris          grille = (GrilleTétris)target.Target;

            target.m_objPieceCourante = target.FabriquerPiece(5, 5, enuFormePièce.Triangle);
            grille[5, 5] = 1; // pour ne pas que le test passe si dessinerpiece ne fonctionne pas
            target.DessinerPieceCourante();
            target.EffacerPieceCourante();
            for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
            {
                if (grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] != 0)
                {
                    Assert.Fail();
                }
            }

            m_totalScore += 1;
        }
示例#7
0
        public void D2_GrilleJeuDessinerPièceAutres()
        {
            m_maxScore += 2;

            GrilleTétris_Accessor target = new GrilleTétris_Accessor();
            GrilleTétris          grille = (GrilleTétris)target.Target;

            for (enuFormePièce forme = enuFormePièce.Escalier_G; forme <= enuFormePièce.Barre; forme++)
            {
                target.m_objPieceCourante = target.FabriquerPiece(5, 5, forme);
                target.DessinerPieceCourante();

                for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
                {
                    if (grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] != target.m_objPieceCourante.ImageIndex)
                    {
                        Assert.Fail();
                    }
                }
            }
            m_totalScore += 2;
        }
示例#8
0
        public void C4_GrilleJeuEstEnCollisionTriangle()
        {
            m_maxScore += 1;

            GrilleTétris_Accessor target = new GrilleTétris_Accessor();
            GrilleTétris          grille = (GrilleTétris)target.Target;

            // ne devrait pas être en collision
            target.m_objPieceCourante = target.FabriquerPiece(1, 1, enuFormePièce.Triangle);
            Assert.IsFalse(target.EstEnCollision());

            // vérification de la limite de la grille en haut
            target.m_objPieceCourante = target.FabriquerPiece(0, 1, enuFormePièce.Triangle);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille à gauche
            target.m_objPieceCourante = target.FabriquerPiece(1, 0, enuFormePièce.Triangle);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille à droite
            target.m_objPieceCourante = target.FabriquerPiece(1, grille.ColumnCount - 1, enuFormePièce.Triangle);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille en bas
            target.m_objPieceCourante = target.FabriquerPiece(grille.RowCount, 1, enuFormePièce.Triangle);
            Assert.IsTrue(target.EstEnCollision());

            // vérification d'une collision avec le contenu de la grille
            target.m_objPieceCourante = target.FabriquerPiece(1, 1, enuFormePièce.Triangle);
            for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
            {
                grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = index % 7 + 50;// H16
                Assert.IsTrue(target.EstEnCollision());
                grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = 0;
            }
            m_totalScore += 1;
        }
示例#9
0
        public void D4_GrilleJeuEstEnCollisionAutres()
        {
            m_maxScore += 6;

            GrilleTétris_Accessor target = new GrilleTétris_Accessor();
            GrilleTétris          grille = (GrilleTétris)target.Target;

            //Pour les 5 premières formes on a la même logique de tests
            for (enuFormePièce forme = enuFormePièce.Escalier_G; forme <= enuFormePièce.L_Inverse; forme++)
            {
                // ne devrait pas être en collision
                target.m_objPieceCourante = target.FabriquerPiece(1, 1, forme);
                Assert.IsFalse(target.EstEnCollision());

                // vérification de la limite de la grille en haut
                target.m_objPieceCourante = target.FabriquerPiece(0, 1, forme);
                Assert.IsTrue(target.EstEnCollision());

                // vérification de la limite de la grille à gauche
                target.m_objPieceCourante = target.FabriquerPiece(1, 0, forme);
                Assert.IsTrue(target.EstEnCollision());

                // vérification de la limite de la grille à droite
                target.m_objPieceCourante = target.FabriquerPiece(1, grille.ColumnCount - 1, forme);
                Assert.IsTrue(target.EstEnCollision());

                // vérification de la limite de la grille en bas
                target.m_objPieceCourante = target.FabriquerPiece(grille.RowCount, 1, forme);
                Assert.IsTrue(target.EstEnCollision());


                // vérification d'une collision avec le contenu de la grille
                target.m_objPieceCourante = target.FabriquerPiece(1, 1, forme);
                for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
                {
                    grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = index % 7 + 50;// H16;
                    Assert.IsTrue(target.EstEnCollision());
                    grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = 0;
                }
                m_totalScore++;
            }

            //Forme enuFormePièce.Carre
            // ne devrait pas être en collision
            target.m_objPieceCourante = target.FabriquerPiece(1, 1, enuFormePièce.Carre);
            Assert.IsFalse(target.EstEnCollision());

            // vérification de la limite de la grille en haut
            target.m_objPieceCourante = target.FabriquerPiece(0, 1, enuFormePièce.Carre);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille à gauche
            target.m_objPieceCourante = target.FabriquerPiece(1, 0, enuFormePièce.Carre);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille à droite
            target.m_objPieceCourante = target.FabriquerPiece(1, grille.ColumnCount, enuFormePièce.Carre);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille en bas
            target.m_objPieceCourante = target.FabriquerPiece(grille.RowCount, 1, enuFormePièce.Carre);
            Assert.IsTrue(target.EstEnCollision());


            // vérification d'une collision avec le contenu de la grille
            target.m_objPieceCourante = target.FabriquerPiece(1, 1, enuFormePièce.Carre);
            for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
            {
                grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = 1;
                Assert.IsTrue(target.EstEnCollision());
                grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = 0;
            }
            m_totalScore++;

            //Forme enuFormePièce.Barre
            // ne devrait pas être en collision
            target.m_objPieceCourante = target.FabriquerPiece(0, 1, enuFormePièce.Barre);
            Assert.IsFalse(target.EstEnCollision());

            // vérification de la limite de la grille en haut
            target.m_objPieceCourante = target.FabriquerPiece(-1, 1, enuFormePièce.Barre);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille à gauche
            target.m_objPieceCourante = target.FabriquerPiece(1, 0, enuFormePièce.Barre);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille à droite
            target.m_objPieceCourante = target.FabriquerPiece(1, grille.ColumnCount - 2, enuFormePièce.Barre);
            Assert.IsTrue(target.EstEnCollision());

            // vérification de la limite de la grille en bas
            target.m_objPieceCourante = target.FabriquerPiece(grille.RowCount, 1, enuFormePièce.Barre);
            Assert.IsTrue(target.EstEnCollision());


            // vérification d'une collision avec le contenu de la grille
            target.m_objPieceCourante = target.FabriquerPiece(1, 1, enuFormePièce.Barre);
            for (int index = 0; index < target.m_objPieceCourante.NbPoints; index++)
            {
                grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = 1;
                Assert.IsTrue(target.EstEnCollision());
                grille[target.m_objPieceCourante.PointAt(index).Rangée, target.m_objPieceCourante.PointAt(index).Colonne] = 0;
            }
            m_totalScore++;
        }
        public void ProgressionTest()
        {
            GrilleTétris grille = new GrilleTétris();

            Assert.Fail();
        }