/// <summary> /// Inicializa el tablero /// </summary> internal void Reset() { // Limpia los datos Scapes.Clear(); // Inicializa las celdas InitCells(); InitLabels(); // Inicializa las figuras InitPieces(); }
/// <summary> /// Inicializa las etiquetas /// </summary> private void InitLabels() { for (int row = 0; row < 8; row++) { Scapes.Add(new LabelViewModel(row, -1, (char)('0' + 8 - row))); } for (int column = 0; column < 8; column++) { Scapes.Add(new LabelViewModel(-1, column, (char)('A' + column))); } }
/// <summary> /// Inicializa las piezas /// </summary> private void InitPieces() { for (int row = 0; row < 8; row++) { for (int column = 0; column < 8; column++) { PieceBaseModel piece = ViewModel.Board[row, column]; if (piece != null) { Scapes.Add(new FigureViewModel(row, column, piece.Type, piece.Color)); } } } }
/// <summary> /// Inicaliza las celdas /// </summary> private void InitCells() { PieceBaseModel.PieceColor color = PieceBaseModel.PieceColor.White; // Añade las celdas for (int row = 0; row < 8; row++) { // Rellena por columnas for (int column = 0; column < 8; column++) { Scapes.Add(new CellViewModel(row, column, color)); color = GetNextColor(color); } // Cambia el color de inicio de la siguiente fila color = GetNextColor(color); } }
/// <summary> /// Reinicia el tablero /// </summary> internal void Reset() { // Limpia el tablero if (Game?.Board != null) { Board.Reset(Game.Board); } else { Board.Reset(); } // Inicializa los escaques Scapes.Reset(); // Indica que estamos de nuevo en el primer movimiento MovementsList.SelectedMovement = null; MovementsList.ActualMovement = null; ActualMovementIndex = -1; // Lanza el evento de reset RaiseEventReset(); }