我是Python新手,我只编写了几个程序。下面是我最近为一个rock-paper-scissors游戏编写的代码。我已经测试过了,效果很好。有什么办法可以简化吗?谢谢!
import random
wins=0
losses=0
ties=0
rounds=0
r=1 #rock
p=2 #paper
s=3 #scissors
y = "The computer has made its choice, how about you?"
while rounds <= 10:
print y
x = input('(1)rock, (2)paper, or (3)scissors? :')
choice = x
cpu_choice= random.randint(1, 3)
if (choice, cpu_choice) == (1, 2):
rounds += 1
losses += 1
print 'computer chose paper, you lose'
elif (choice, cpu_choice) == (3, 2):
print 'you win'
rounds += 1
wins += 1
elif (choice, cpu_choice) == (2, 2):
print 'TIE!'
rounds += 1
ties += 1
elif (choice, cpu_choice) == (1, 3):
print 'you win'
rounds += 1
wins += 1
elif (choice, cpu_choice) == (3, 3):
print 'TIE!'
rounds += 1
ties += 1
elif (choice, cpu_choice) == (2, 3):
print 'computer chose scissors, you lose'
rounds += 1
losses += 1
elif (choice, cpu_choice) == (1, 1):
print 'TIE'
rounds += 1
ties += 1
elif (choice, cpu_choice) == (3, 1):
print 'computer chose rock, you lose'
rounds += 1
losses += 1
elif (choice, cpu_choice) == (2, 1):
print 'you win'
rounds += 1
wins += 1
else:
print 'Please choose 1, 2, or 3'
print 'Game Over'
if wins>losses:
print 'YOU WON'
print 'wins:' , wins
print 'losses' , losses
print 'ties' , ties
else:
print 'you lose'
print 'wins:' , wins
print 'losses:' , losses
print 'ties:' , ties发布于 2012-08-09 10:52:21
虽然堆栈溢出并不是真正意义上的学习平台,但以下是一些建议:
import this )。至少,所有的绑定条件都可以组合在一起:
if choice == cpu_choice:
# TIE加上一些语法:
names = ['rock', 'paper', 'scissors']
print("Computer chooses {}, you loose".format(names[cpu_choice]))基本上,只有三个条件:
wins, losses = 0, 0
for round in range(10):
# Your choice and CPU choice
cpu_wins = (cpu_choice > choice or (choice == 3 and cpu_choice == 1))
tie = (cpu_choice == choice)
if cpu_wins:
# You loose
print("Computer chooses {}, you loose".format(names[cpu_choice]))
losses += 1
if not cpu_wins and tie:
# tie
else:
# you win而且,您甚至不使用上面定义的变量p、r和s .
发布于 2012-08-09 10:50:20
一些建议:
发布于 2012-08-09 10:55:50
您可以使用模块化算法来确定玩家是否获胜:
player_result = ["tie", "win", "lose"]
player_choice = input('(1)rock, (2)paper, or (3)scissors? :')
cpu_choice= random.randint(1, 3)
result = player_result[(player_choice - cpu_choice) % 3]
print "You " + result
if result == "win":
wins += 1
elif result == "lose":
loses += 1https://stackoverflow.com/questions/11881539
复制相似问题