public void CardsTurn(SelectedCardsConfirmationDelegate cardsTurnCallback) { if (!_players.MoveNext()) { _players.Reset(); _players.MoveNext(); } _players.Current.CardsTurn(cardsTurnCallback); }
public IReadyToRaceFourthStep CardsTurn(SelectedCardsConfirmationDelegate cardsTurnCallback, DeskIsValidForTheNextPlayerDelegate deskIsValidForTheNextPlayerCallback) { var validForTheNextPlayer = true; while (validForTheNextPlayer) { _players.CardsTurn(cardsTurnCallback); validForTheNextPlayer = deskIsValidForTheNextPlayerCallback(); } return(this); }
public void CardsTurn(SelectedCardsConfirmationDelegate selectedCardsConfirmation) { var valid = false; var selectedCards = _userCallbacksNotifications.SelectRacingCard(MyRacingCards); valid = selectedCardsConfirmation(selectedCards) && _preConditionRaicingCards.Validate(selectedCards); while (!valid) { selectedCards = _userCallbacksNotifications.SelectRacingCard(MyRacingCards); valid = selectedCardsConfirmation(selectedCards) && _preConditionRaicingCards.Validate(selectedCards); } selectedCards.ToList().ForEach(x => MyRacingCards.Remove(x)); Enumerable.Range(0, selectedCards.Count()) .ToList() .ForEach(x => MyRacingCards.Add(_racingCardManager.TakeCard())); }
public void CardsTurn(SelectedCardsConfirmationDelegate selectedCardsConfirmation) { }