Esempio n. 1
0
 public void descendreTest()
 {
     Carre carre = new Carre();
     ArrayList yBefore = new ArrayList(); // Les deux listes font la même tailles
     ArrayList yAfter = new ArrayList();
     for (int i = 0; i < carre.hauteurPiece; i++)
     {
         for (int j = 0; j < carre.largeurPiece; j++)
         {
             yBefore.Add(carre.representation[j, i].y); // Stocke les ordonnées avant la descente
         }
     }
     carre.descendre();
     for (int i = 0; i < carre.hauteurPiece; i++)
     {
         for (int j = 0; j < carre.largeurPiece; j++)
         {
             yAfter.Add(carre.representation[j, i].y); // Stocke les ordonnées après la descente
         }
     }
     for (int i = 0; i < yBefore.Count; i++)
     {
         Assert.AreEqual((int)yBefore[i] + 1, (int)yAfter[i]); // Teste que l'ordonnée d'avant + 1 est égal à l'ordonnée d'après
     }
 }
Esempio n. 2
0
        public void deplacerTest()
        {
            Carre carre = new Carre();
            ArrayList xAvantDeplacement = new ArrayList(); // Les listes font la même taille
            ArrayList xApresDeplacement = new ArrayList();

            for (int i = 0; i < carre.hauteurPiece; i++)
            {
                for (int j = 0; j < carre.largeurPiece; j++)
                {
                    xAvantDeplacement.Add(carre.representation[j, i].x); // Stocke l'abscisse avant déplacement
                }
            }
            carre.deplacer(1);
            for (int i = 0; i < carre.hauteurPiece; i++)
            {
                for (int j = 0; j < carre.largeurPiece; j++)
                {
                    xApresDeplacement.Add(carre.representation[j, i].x); // Stocke l'abscisse après déplacement
                }
            }

            for (int i = 0; i < xAvantDeplacement.Count; i++)
            {
                Assert.AreEqual(xAvantDeplacement[i], xApresDeplacement[i]); // Test que la pièce n'a pas bougée
            }
        }
Esempio n. 3
0
 public void CarreTest()
 {
     Carre carre = new Carre();
     Assert.AreEqual(0, carre.sens);
     Assert.AreEqual(6, carre.offsetPieceHorizontal);
     Assert.AreEqual(0, carre.offsetPieceVertical);
     Assert.AreEqual(4, carre.hauteurPiece);
     Assert.AreEqual(4, carre.largeurPiece);
     Assert.AreSame(new Case[carre.hauteurPiece, carre.largeurPiece].GetType(), carre.representation.GetType());
 }
Esempio n. 4
0
 public void decolorerPieceTest()
 {
     Carre carre = new Carre();
     carre.decolorerPiece();
     for (int i = 0; i < carre.hauteurPiece; i++)
     {
         for (int j = 0; j < carre.largeurPiece; j++)
         {
             Assert.AreEqual(false, carre.representation[j, i].estColore); // On s'assure que la pièce est décolorée
         }
     }
 }
Esempio n. 5
0
File: Jeu.cs Progetto: Heliex/Tetris
 // Génére une nouvelle pièce de façon aléatoire
 public Piece pieceSuivante()
 {
     // Nouvelle piece
     Piece piece = null;
     int numPiece = randNum.Next(1, 8);
     if (numPiece == 1)
     {
         piece = new Barre();
     }
     if (numPiece == 2)
     {
         piece = new T();
     }
     if (numPiece == 3)
     {
         piece = new L();
     }
     if (numPiece == 4)
     {
         piece = new Carre();
     }
     if (numPiece == 5)
     {
         piece = new LInversee();
     }
     if (numPiece == 6)
     {
         piece = new S();
     }
     if (numPiece == 7)
     {
         piece = new Z();
     }
     return piece;
 }
Esempio n. 6
0
		public Grille(int[,] map, float tailleCarre) {
			int nbNodeX = map.GetLength(0);
			int nbNodeY = map.GetLength(1);
			float largeurMap = nbNodeX * tailleCarre;
			float hauteurMap = nbNodeY * tailleCarre;

            /* On met sur la grille l'ensemble des nodes de controles*/
            ControlNode[,] controlNodes = new ControlNode[nbNodeX, nbNodeY];
			for (int x = 0; x < nbNodeX; x ++) {
				for (int y = 0; y < nbNodeY; y ++) {
					Vector3 pos = new Vector3(-largeurMap/2 + x * tailleCarre + tailleCarre/2, 0, -hauteurMap/2 + y * tailleCarre + tailleCarre/2);
					controlNodes[x,y] = new ControlNode(pos,map[x,y] == 1, tailleCarre);
				}
			}
            /* Puis les carrés contenant les nodes simple */
			carres = new Carre[nbNodeX -1,nbNodeY -1];
			for (int x = 0; x < nbNodeX-1; x ++) {
				for (int y = 0; y < nbNodeY-1; y ++) {
					carres[x,y] = new Carre(controlNodes[x,y+1], controlNodes[x+1,y+1], controlNodes[x+1,y], controlNodes[x,y]);
				}
			}

		}
Esempio n. 7
0
    /* Creer les colliders pour une version 2D */
	/* void Generate2DColliders() {

		EdgeCollider2D[] currentColliders = gameObject.GetComponents<EdgeCollider2D> ();
		for (int i = 0; i < currentColliders.Length; i++) {
			Destroy(currentColliders[i]);
		}

		CalculateMeshOutlines ();

		foreach (List<int> outline in contours) {
			EdgeCollider2D edgeCollider = gameObject.AddComponent<EdgeCollider2D>();
			Vector2[] edgePoints = new Vector2[outline.Count];

			for (int i =0; i < outline.Count; i ++) {
				edgePoints[i] = new Vector2(vertices[outline[i]].x,vertices[outline[i]].z);
			}
			edgeCollider.points = edgePoints;
		}

	}
    */

    /* A partir d'un carre et de ses node on construit des triangles en liants les nodes actives entre elles pour avoir une meilleur qualité de map */
	void TriangulationCarre(Carre carre) {

        /* Chaque configuration des carrés reprensente toutes les combinaisons possible avec 4 nodes de controles
        * Une node active signifira qu'il y a mur pres de celle-ci et donc on on entourera cette node on liant les nodes autours entre elles 
        * Cela va former plusieurs triangle au sein du carré et donc obtenir des formes interessantes pour une cave.
        * meshAvecNode va creer ces triangle en fonction des node selectionnés
        */

        switch (carre.configuration) {
		case 0:
			break;

			/* 1 points */
		case 1:
			mesh2DAvecNode(carre.centreGauche, carre.centreBas, carre.basGauche);
			break;
		case 2:
			mesh2DAvecNode(carre.basDroit, carre.centreBas, carre.centreDroit);
			break;
		case 4:
			mesh2DAvecNode(carre.hautDroit, carre.centreDroit, carre.centreHaut);
			break;
		case 8:
			mesh2DAvecNode(carre.hautGauche, carre.centreHaut, carre.centreGauche);
			break;

			/* 2 points */
		case 3:
			mesh2DAvecNode(carre.centreDroit, carre.basDroit, carre.basGauche, carre.centreGauche);
			break;
		case 6:
			mesh2DAvecNode(carre.centreHaut, carre.hautDroit, carre.basDroit, carre.centreBas);
			break;
		case 9:
			mesh2DAvecNode(carre.hautGauche, carre.centreHaut, carre.centreBas, carre.basGauche);
			break;
		case 12:
			mesh2DAvecNode(carre.hautGauche, carre.hautDroit, carre.centreDroit, carre.centreGauche);
			break;
		case 5:
			mesh2DAvecNode(carre.centreHaut, carre.hautDroit, carre.centreDroit, carre.centreBas, carre.basGauche, carre.centreGauche);
			break;
		case 10:
			mesh2DAvecNode(carre.hautGauche, carre.centreHaut, carre.centreDroit, carre.basDroit, carre.centreBas, carre.centreGauche);
			break;

			/* 3 points */
		case 7:
			mesh2DAvecNode(carre.centreHaut, carre.hautDroit, carre.basDroit, carre.basGauche, carre.centreGauche);
			break;
		case 11:
			mesh2DAvecNode(carre.hautGauche, carre.centreHaut, carre.centreDroit, carre.basDroit, carre.basGauche);
			break;
		case 13:
			mesh2DAvecNode(carre.hautGauche, carre.hautDroit, carre.centreDroit, carre.centreBas, carre.basGauche);
			break;
		case 14:
			mesh2DAvecNode(carre.hautGauche, carre.hautDroit, carre.basDroit, carre.centreBas, carre.centreGauche);
			break;

			/* 4 points: */
		case 15:
			mesh2DAvecNode(carre.hautGauche, carre.hautDroit, carre.basDroit, carre.basGauche);
            
            /* Comme il s'agit d'un pur carre de mur (et donc aucun contact avec une piece), ce ne peut etre un contour*/
            sommetsVus.Add(carre.hautGauche.sommetIndex);
			sommetsVus.Add(carre.hautDroit.sommetIndex);
			sommetsVus.Add(carre.basDroit.sommetIndex);
			sommetsVus.Add(carre.basGauche.sommetIndex);
			break;
		}

	}
Esempio n. 8
0
 public void initialiserPieceTest()
 {
     Carre carre = new Carre();
     for (int i = 0; i < carre.hauteurPiece; i++)
     {
         for (int j = 0; j < carre.largeurPiece; j++)
         {
             if (i == 1 || i == 2)
             {
                 if (j > 0 && j < 3)
                 {
                     Assert.AreEqual(true, carre.representation[j, i].estColore);
                 }
             }
         }
     }
 }
Esempio n. 9
0
 public void TournerTest()
 {
     Carre carre = new Carre();
     carre.Tourner(); // La méthode tourner n'a rien fait normalement
     for (int i = 0; i < carre.hauteurPiece; i++)
     {
         for (int j = 0; j < carre.largeurPiece; j++)
         {
             // Les cases colorées sont normalement les même qu'a l'initialisation
             if (i == 1 || i == 2)// Je test que la pièce n'a pas tournée
             {
                 if (j > 0 && j < 3)
                 {
                     Assert.AreEqual(true, carre.representation[j, i].estColore);
                 }
             }
         }
     }
 }
Esempio n. 10
0
 public void peuxTournerTest()
 {
     Carre carre = new Carre();
     bool reponse = carre.peuxTourner(2); // Je vérifie que la pièce ne peux pas tourner si le plateau n'existe pas
     Assert.AreEqual(false, reponse);
 }
Esempio n. 11
0
 public void PeuxDescendreTest()
 {
     Carre carre = new Carre();
     Assert.AreEqual(false, carre.PeuxDescendre()); // On ne peux pas descendre la pièce si le plateau est null (n'existe pas)
 }
Esempio n. 12
0
 public void peuxDeplacerTest()
 {
     Carre carre = new Carre();
     Assert.AreEqual(false, carre.peuxDeplacer(-1)); // On ne peux pas déplacer la pièce si le plateau n'existe pas
     Assert.AreEqual(false, carre.peuxDeplacer(1));
 }