On Friday, August 2, 2013 7:11:37 PM UTC-7, Joshua Landau wrote:
> On 3 August 2013 02:44,  <kevin...@gmail.com> wrote:
> 
> 
> 
> Yeah, I already know about that. But if I try to change it, I'm not even able 
> to start the program. If I try to change the if statement that it corresponds 
> with, I get a an error saying "card" is not a global. And if I try to shift 
> it in, for some reason...the program runs through the MISS line multiple 
> times.
> 
> 
> 
> 
> 
> You have a car with a broken engine and a broken tire and are telling us that 
> you refuse to fix the engine because it highlights the problem of the broken 
> tire.
> 
> 
> Take the fix and move on to the next problem.
> 
> 
> 
> 
> One piece of advice is about scoping. This is perhaps the hardest "gotcha" of 
> Python conceptually, but it's sensible once you understand the justifications.
> 
> 
> Run the four commands below and try and understand why this applies to your 
> code.
> 
> 
> 
> 
> a = 1
> 
> 
> def access_global():
>     print(a)
> 
> 
> def set_variable():
>     a = 2
>     print(a)
> 
> 
> def broken_set():
> 
> 
>     a = a + 1
>     print(a)
> 
> 
> def also_broken():
>     print(a)
>     return
>     a = 1 # Never run!
> 
> 
> The fix for the broken variants is to start the functions with "global a".

I'll take a look at those. I used that fix you brought up as well but the main 
issue I get after that is:

I'll try to explain the main issue I'm having as accurately as possible. 
Basically, I've changed the indentations around but the main issue I get is 
that the GetTopCard(sDeck) line is being run multiple times for some reason. So 
when I run the program, I get "MISS: You fished up the rank......" multiple 
times and my list pHands[0] is increased by several number combinations when I 
only want it to increase by one. I also updated that last definition in my main 
code.



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")
        else:
            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]) + ">!!!")
            else:
                ShowMessage("MISS: You fished up the rank <" + str(top_card[0]) 
+ ">")
                hit = hit - 1
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to