Python: Code is ignoring the if and else

kevin4fong at gmail.com kevin4fong at gmail.com
Sat Aug 3 16:12:17 EDT 2013


On Friday, August 2, 2013 10:04:56 PM UTC-7, Terry Reedy wrote:
> On 8/2/2013 10:24 PM, kevin4fong at gmail.com wrote:
> 
> 
> 
> Looking at this again, I believe you actually had the structure almost 
> 
> right before. You want to look through *all* of the target players cards 
> 
> and if *none* of them match, (ie the search fails), you want to draw 1 
> 
> card. What you were missing before is break or return
> 
> 
> 
> def player_0_hitman(hit):
> 
>       for card in pHands[target_player]:
> 
>           if target_card[0] == card[0]:
> 
>               count = pHands[target_player].count(card)
> 
>               pHands[0].append(card)
> 
>               pHands[target_player].remove(card)
> 
>               ShowMessage("HIT: " + str(count) + " card(s) transferred")
> 
>               return True
> 
> 
> 
>        # else: needed if just break above, but not with return
> 
> 		
> 
>        top_card = GetTopCard(sDeck)
> 
>        pHands[0].append(top_card)
> 
>        if top_card[0] == target_card[0]:
> 
>            ShowMessage("HIT: LUCKILY Player 0 has fished up a rank <" + 
> 
> str(top_card[0]) + ">!!!")
> 
>            return True
> 
>         else:
> 
>             ShowMessage("MISS: You fished up the rank <" + 
> 
> str(top_card[0]) + ">")
> 
>             hit = hit - 1
> 
>             return False
> 
> 
> 
> The returns are based on what I remember of the rules from decades ago, 
> 
> that a hit either in the hand or the draw allowed another turn by the 
> 
> player.
> 
> 
> 
> -- 
> 
> Terry Jan Reedy

Thank you, that information worked quite well and is much appreciated.



More information about the Python-list mailing list