Загрузка данных


namespace Model.Core;

public abstract class Cell : ICell
{
    public int Row { get; }
    public int Col { get; }
    public bool IsRevealed { get; protected set; }
    public bool IsFlagged { get; protected set; }
    public abstract bool IsMine { get; }
    public int NeighborMines { get; private set; }

    protected Cell(int row, int col)
    {
        Row = row;
        Col = col;
        IsRevealed = false;
        IsFlagged = false;
        NeighborMines = 0;
    }

    public virtual void Reveal()
    {
        if (!IsFlagged)
        {
            IsRevealed = true;
        }
    }

    public virtual void ToggleFlag()
    {
        if (!IsRevealed)
        {
            IsFlagged = !IsFlagged;
        }
    }

    public void SetNeighborMines(int count)
    {
        NeighborMines = count;
    }
}