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