public void ResetBoard(Func <ICard <CardType> > getCardFunc, ICard <CardType> playerCard) { _playerCoordinates = new Coordinates(1, 1); _hero.Reset(); _heroCard = playerCard; foreach (Coordinates coordinates in _grid.GetAllPositions()) { _grid[coordinates].Card = coordinates.Equals(_playerCoordinates) ? playerCard : getCardFunc.Invoke(); } }