Próbuję uzyskać tę grę nożyczek z papieru skalnego, aby zwrócić wartość logiczną, jak w zestawie player_wins
na wartość Prawda lub Fałsz, w zależności od tego, czy gracz wygra, lub aby całkowicie skorygować ten kod, aby nie używał pętli while. Pochodzę z sysadminowej strony świata, więc proszę, bądźcie łagodni, jeśli jest napisane w niewłaściwym stylu. Próbowałem kilku rzeczy i rozumiem TIMTOWTDI, i chciałbym po prostu trochę danych wejściowych.Pytanie początkujące: zwracanie wartości boolowskiej z funkcji w Pythonie
Dzięki.
import random
global player_wins
player_wins=None
def rps():
player_score = 0
cpu_score = 0
while player_score < 3 and cpu_score < 3:
WEAPONS = 'Rock', 'Paper', 'Scissors'
for i in range(0, 3):
print "%d %s" % (i + 1, WEAPONS[i])
player = int(input ("Choose from 1-3: ")) - 1
cpu = random.choice(range(0, 3))
print "%s vs %s" % (WEAPONS[player], WEAPONS[cpu])
if cpu != player:
if (player - cpu) % 3 < (cpu - player) % 3:
player_score += 1
print "Player wins %d games\n" % player_score
else:
cpu_score += 1
print "CPU wins %d games\n" % cpu_score
else:
print "tie!\n"
rps()
Próbuję zrobić coś takiego:
print "%s vs %s" % (WEAPONS[player], WEAPONS[cpu])
if cpu != player:
if (player - cpu) % 3 < (cpu - player) % 3:
player_score += 1
print "Player wins %d games\n" % player_score
if player_score == 3:
return player_wins==True
else:
cpu_score += 1
print "CPU wins %d games\n" % cpu_score
if cpu_score == 3:
return player_wins==False
else:
print "tie!\n"
Jaka wartość boolowska powinna zostać zwrócona dla remisu? –
Ponieważ jest wewnątrz pętli, więzi po prostu zrzucają cię z powrotem na początku. REWANŻ! – matt
Podejrzewam, że nie jest to dobry projekt, aby uzyskać właściwe zrozumienie programowania? – matt