-2

此代码不完整
输入

人类玩家输入获胜所需的点数。在玩游戏期间,人类玩家通过使用键盘来选择是玩石头、玩纸还是玩剪刀。人类玩家也可以随时通过按下 Control-D 序列来结束游戏。(如果人类玩家领先,提前结束游戏并不能确定获胜者。)

输出

该程序将显示每个 roshambo 回合的获胜者以及运行得分。比赛结束时,电脑将显示总冠军和最终得分。

示例会话

欢迎来到石头、纸、剪刀!

一场胜利需要多少分?3

选择 (R)ock、(P)aper 还是 (S)cissors?r 人类:摇滚 计算机:纸 计算机获胜!

得分:人类 0 计算机 1 选择 (R)ock、(P)aper 还是 (S)cissors?r

人类:摇滚 计算机:剪刀 人类获胜!

分数:人类 1 计算机 1 选择 (R)ock、(P)aper 还是 (S)cissors?p

人类:纸 计算机:纸 A 平局

print "Welcome to Rock, Paper, Scissors!"  
import random  

n=1  
while n:   
     x = int(raw_input("How many points are required for a win? "))   
     y = raw_input("Choose (R)ock, (P)aper, or (s)cissors? ")
     z1 = ('Rock', 'Paper', 'Scissors')
     z = random.choice(z1)
     if y=='r':
          print "Human: Rock  Computer: " + z
          if z=='Rock':
               print "A draw"
          if z=='Paper':
               print "Computer wins!"
          if z=='Scissors':
               print "Human wins!"   

     elif y=='p':       
          print "Human: Paper Computer: " + z  
          if z=='Paper':   
               print "A draw"  
          if z=='Rock':   
               print "Human wins!"   
          if z=='Scissors':   
               print "Computer wins!"      

     elif y=='s':   
          print "Human: Scissors Coputer: " + z   
          if z=='Scissors':   
               print "A draw"   
          if z=='Paper':'   
               print "Human wins!"   
          if z=='Rock':   
               print "Computer wins!"    

raw_input("Press<enter>")

我的输出就像:它在第一个循环后不起作用。

欢迎来到石头、纸、剪刀!
一场胜利需要多少分?3
选择 (R)ock、(P)aper 还是 (s)cissors?r
Human: Rock Computer: Rock
A 平局

一场胜利需要多少分?r
Traceback(最近一次调用最后一次):
文件“temp5.py”,第 6 行,在
x = int(raw_input("How many points are required for a win?"))
ValueError: int() 以 10 为底的无效文字: 'r'
我怎样才能让我的代码简短而高效。我能否请您建议如何为该程序定义函数并使用内置方法

4

1 回答 1

0

不,问题是您输入了没有意义的输入。它要求了一些分数,你输入了一个字母。

如果您想让它优雅地处理此类用户错误,请询问。

于 2013-10-26T22:18:35.227 回答