private void NextDeal()
{
_southPlayer.Cards.Clear();
_eastPlayer.Cards.Clear();
_northPlayer.Cards.Clear();
_westPlayer.Cards.Clear();
_currentDeal = new Deal( this, _firstPlayer );
_firstPlayer = GetNextPlayer( _firstPlayer );
_deals.Add( _currentDeal );
_currentDeal.DealFirstCards();
Player winner = _currentDeal.EnterBiddingState();
if( _currentDeal.CurrentAnnouncement.Type == AnnouncementTypeEnum.Pass )
{
_southPlayer.Cards.Clear();
_eastPlayer.Cards.Clear();
_northPlayer.Cards.Clear();
_westPlayer.Cards.Clear();
FinalizeDeal();
return;
}
RaiseBiddingCompleted( winner, _currentDeal.CurrentAnnouncement );
_currentDeal.DealRestCards();
_southPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
_northPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
_eastPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
_westPlayer.CardPlayed += new Player.CardPlayedHandler( _currentDeal.PlayerPlayedCard );
_currentDeal.EnterPlayingState();
}