/** * <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); } } }
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(); }
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(); }
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(); }
public piece(piece copy) { x = copy.x; y = copy.y; color = copy.color; statut = copy.statut; type = copy.type; }
/** * <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; }
/** * <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; }