private void Initialize()
    {
        var markers = new BagOfMarkers <MarkerData>(new[]
        {
            _cellsData.MarkerTypeOne, _cellsData.MarkerTypeTwo, _cellsData.MarkerTypeThree
        }, _cellsData.MarkerEachTypeCount);


        for (int y = 0; y < _gameField.GridSize; y++)
        {
            for (int x = 0; x < _gameField.GridSize; x++)
            {
                var cell = new Cell <CellData>();

                if (x % 2 == 1)
                {
                    if (y % 2 == 0)
                    {
                        cell.CellStatus = ECellStatus.Blocked;
                        cell.Item       = _cellsData.Blockage;
                    }
                    else
                    {
                        cell.CellStatus = ECellStatus.Empty;
                    }
                }
                else
                {
                    cell.CellStatus = ECellStatus.Occupied;
                    cell.Item       = markers.NextMarker();
                }

                _gameField.Grid.SetCell(x, y, cell);

                Instantiate(_cellUIPrefab, _cellsHolderUI, true);
            }
        }
    }
    public void Refresh()
    {
        var markers = new BagOfMarkers <MarkerData>(new[]
        {
            _cellsData.MarkerTypeOne, _cellsData.MarkerTypeTwo, _cellsData.MarkerTypeThree
        }, _cellsData.MarkerEachTypeCount);

        _gameField.Clear();

        for (int y = 0; y < _gameField.GridSize; y++)
        {
            for (int x = 0; x < _gameField.GridSize; x++)
            {
                var cell = new Cell <CellData>();

                if (x % 2 == 1)
                {
                    if (y % 2 == 0)
                    {
                        cell.CellStatus = ECellStatus.Blocked;
                        cell.Item       = _cellsData.Blockage;
                    }
                    else
                    {
                        cell.CellStatus = ECellStatus.Empty;
                    }
                }
                else
                {
                    cell.CellStatus = ECellStatus.Occupied;
                    cell.Item       = markers.NextMarker();
                }

                _gameField.Grid.SetCell(x, y, cell);
            }
        }
    }