On Friday, August 2, 2013 7:11:37 PM UTC-7, Joshua Landau wrote:
> On 3 August 2013 02:44, <[email protected]> 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