private void ToShowCards() { var pigRect = new Rectangle(296, 300, 53, 46); Graphics g = Graphics.FromImage(bmp); if (ThisPlayer.CurrentHandState.CurrentHandStep == HandStep.Playing && ThisPlayer.CurrentTrickState.NextPlayer() == ThisPlayer.PlayerId) { ShowingCardsValidationResult showingCardsValidationResult = TractorRules.IsValid(ThisPlayer.CurrentTrickState, SelectedCards, ThisPlayer.CurrentPoker); //如果我准备出的牌合法 if (showingCardsValidationResult.ResultType == ShowingCardsValidationResultType.Valid) { //擦去小猪 g.DrawImage(image, pigRect, pigRect, GraphicsUnit.Pixel); foreach (int card in SelectedCards) { ThisPlayer.CurrentPoker.RemoveCard(card); } ThisPlayer.ShowCards(SelectedCards); drawingFormHelper.DrawMyShowedCards(); SelectedCards.Clear(); } else if (showingCardsValidationResult.ResultType == ShowingCardsValidationResultType.TryToDump) { //擦去小猪 g.DrawImage(image, pigRect, pigRect, GraphicsUnit.Pixel); ShowingCardsValidationResult result = ThisPlayer.ValidateDumpingCards(SelectedCards); if (result.ResultType == ShowingCardsValidationResultType.DumpingSuccess) //甩牌成功. { foreach (int card in SelectedCards) { ThisPlayer.CurrentPoker.RemoveCard(card); } ThisPlayer.ShowCards(SelectedCards); drawingFormHelper.DrawMyShowedCards(); SelectedCards.Clear(); } //甩牌失败 else { foreach (int card in result.MustShowCardsForDumpingFail) { ThisPlayer.CurrentPoker.RemoveCard(card); } Thread.Sleep(2000); ThisPlayer.ShowCards(result.MustShowCardsForDumpingFail); SelectedCards = result.MustShowCardsForDumpingFail; SelectedCards.Clear(); } } } g.Dispose(); }