Exemplo n.º 1
0
        /**
         *  <summary> Constructeur qui définie un espace par sa hauteur et sa largeur et alloue la mémoire du tableau de case en fonction.
         *  Le tableau commence à 0
         *  </summary>
         *
         * */
        public espace(int hauteur, int largeur)
        {
            this.largeur = largeur;
            this.hauteur = hauteur;
            pieceEnCour = new piece(); //peut etre pas utile

            tableau = new @case[hauteur][];
            for (int i = 0; i < hauteur; i++)
            {
                tableau[i] = new @case[largeur];
                for (int j = 0; j < largeur; j++)
                {
                    tableau[i][j] = new @case(i, j);
                }
            }
        }
Exemplo n.º 2
0
 public Game(Game1 origin)
 {
     _origin = origin;
      _X = (_origin.graphics.PreferredBackBufferWidth / 2);
      _Y = (_origin.graphics.PreferredBackBufferHeight / 2);
      _map = new Tetris_color[12, 25];
      _random = new Random();
     new KeyValuePair<int, int>(0, 0);
     new Dictionary<KeyValuePair<int, int>, Tetris_color>();
     current = new piece[4];
     init_map();
     init_colors();
     init_list_of_piece();
     _score = 0;
     _lvl = 1;
     _flag = 0;
     _temp = 0;
     _end = false;
     _pause = false;
     choose_next_piece();
     for (int i = 0; i < 4; i++)
         current[i] = new piece(all_piece[next_piece][i]);
     choose_next_piece();
 }
Exemplo n.º 3
0
 private void change_piece()
 {
     foreach (piece item in current)
         _map[item.y, item.x] = item.color;
     test_line();
     for (int i = 0; i < 4; i++)
         current[i] = new piece(all_piece[next_piece][i]);
     choose_next_piece();
     if (test_pos() == false)
       end();
 }
Exemplo n.º 4
0
 public void Restart()
 {
     _score = 0;
     _lvl = 1;
     _flag = 0;
     _temp = 0;
     _end = false;
     _pause = false;
     choose_next_piece();
     for (int i = 0; i < 4; i++)
         current[i] = new piece(all_piece[next_piece][i]);
     choose_next_piece();
     init_map();
 }
Exemplo n.º 5
0
 public piece(piece copy)
 {
     x = copy.x;
     y = copy.y;
     color = copy.color;
     statut = copy.statut;
     type = copy.type;
 }
Exemplo n.º 6
0
        /**
          *  <summary> Méthode qui va test sur le tableau de l'espace si la piece peut faire la rotation dans le sens indiquer .
          *  </summary>
        *    <param name=sens>parametre qui correspont au sens ou l'on veut faire la rotation (1 droite, 2 gauche )  </param>
         * <returns>Renvoie le sens ou on a test si la rotation est possible autrement 0 si on peut pas faire la rotation</returns>
         * * */
        public int testRotation(int sens)
        {
            if( pieceEnCour.getCentre().Y >largeur -4)
                  return 0;
                if (pieceEnCour.Type == 2 && pieceEnCour.getCentre().Y < 0)
                    return 0;
                if (pieceEnCour.getCentre().Y < -1)
                    return 0;

            piece tempPiece =new piece(pieceEnCour.getCentre().X,pieceEnCour.getCentre().Y,pieceEnCour.Type);
            @case[][] temp2 = pieceEnCour.getTableau();

            tempPiece.rotationPiece(sens);

            @case[][] temp = tempPiece.getTableau();
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {

                        if (temp[i][j].Pleine == 1 && temp2[i][j].Pleine != 1 && tableau[i + pieceEnCour.getCentre().X][j + pieceEnCour.getCentre().Y].Pleine == 1)
                        {
                            return 0;
                        }
                }
            }
            return sens;
        }
Exemplo n.º 7
0
        /**
         *  <summary> Méthode qui définie la piece en cours.
         *  </summary>
          * <param name=pieceEnCour>parametre qui correspont a la pièce que l'ont veut mettre dans l'espace </param>

         * */
        public void setPieceEnCour(piece pieceEnCour)
        {
            this.pieceEnCour = pieceEnCour;
        }