private InfoAsker <PromoteTo> GetPieceAsker() { var ret = new InfoAsker <PromoteTo>(); ret.AskingInfoEvent += (sender, e) => { AskForPieceEvent?.Invoke(this, new EventArgs()); }; return(ret); }
internal ValidMoveFactory(InfoAsker <PromoteTo> infoAsker) { Guard.ArgumentNotNull(infoAsker, nameof(infoAsker)); _promoteToAsker = infoAsker; _pieceFactory = new PieceFactory(); }
private Board() { _playingPieces = new Dictionary <Color, IList <Piece> > { { Color.Black, new List <Piece>() }, { Color.White, new List <Piece>() } }; _movesSet = new MovesSet(); _kingsDict = new Dictionary <Color, King>(); NextMoveTurn = Color.White; _infoAsker = GetPieceAsker(); _moveFactory = new ValidMoveFactory(_infoAsker); _position = CreatePosition(); _timerManager = InitTimeManager(); _piecesInfluenceManager = new PiecesInfluenceManager(this); }
static void Main(string[] args) { asker = new InfoAsker <string>(); asker.AskingInfoEvent += asker_AskingInfoEvent; asker.AskAndWaitForInfo(); }