蟒蛇网球记分牌

时间:2010-12-03 02:27:57

标签: python loops

需要一些年终网球项目任务的帮助:

在这个问题中,您将为网球比赛提供界面和显示。以下是打网球比赛的规则。

•有两名球员。我们称他们为玩家1和玩家2。

•球员来回反击球,每次集会的获胜者都获得了一分。

•游戏是几个点的序列。每个玩家以0分(全部爱)开始,并且由首先获得以下内容的玩家赢得游戏:
- 球员有4分;和
- 玩家比其他玩家多2分。

•英国人在游戏中有一个聪明的积分编号系统 0分的玩家有“爱”。如果他们有1分,他们称之为“15”。 2分是“30”; 3分,“40”。如果两名球员都以3分或更高的分数并列,他们称之为“Deuce”。

如果两名球员都有3分或更多分,但他们没有并列,那么领先的球员就会被称为“优势”。

•一组是一系列游戏   该组的获胜者是第一个达到的玩家:
6场比赛至少比其他球员多2场比赛;或
- 7场比赛。

如果两名球员分别以6场比赛并列,则规则将根据第13局和决定性比赛的得分情况而变化。这个游戏被称为抢七局,第一个玩家赢得积分7分,比其他玩家多2分。在抢七局中,不使用英国编号;相反,得分从0-0开始,点数按递增的数字顺序计算。

•匹配是一系列集合。在男子比赛中,比赛的胜者是第一位达到3组的选手。在女性中,获胜者是第一个达到2套的玩家。

完成函数points_str(p1,p2),给定p1,得分的数量 玩家1和p2(玩家2的点数)返回一个字符串,表示英国相当于玩家1的得分。如果玩家1具有优势,则返回“Adv”,而如果玩家2具有优势,则返回“ - ”。

例如,
•points_str(0,2)应返回“Love” •points_str(3,1)应返回“40” •points_str(3,3)应返回“Deuce” •points_str(5,4)应返回“Adv” •points_str(4,5)应返回“ - ”。

编写一个模拟网球比赛的Python程序。在询问用户之后 每个玩家的名字和他们的性别,程序将在每个点播放后显示记分板。

要确定谁赢得下一个点,你的程序将调用导入的函数umpire() 如果玩家1获胜,则返回整数1;如果玩家2获胜,则返回2。您可以假设umpire()永远不会返回除整数1或整数2之外的任何内容。

当任一玩家赢得比赛时,该程序应该结束。输出最终记分牌,以及描述谁获胜的消息。按照示例中所示的输出格式进行操作。

以下是我的代码到目前为止的功能。它只计算第一个点的获胜者并显示它。我如何正确循环它,以便最终计算游戏的赢家,设置和匹配?

请帮帮我:)谢谢!

def points_str(p1, p2):
    p1setscore=0
    p2setscore=0           # setting starting parameters for scorekeeping for games and   
    p1gamescore=0
    p2gamescore=0

male_setmax=3
female_setmax=2        # setting parameters for maximum amount sets/games for male/female rules
gamemax=7


umpire()
if umpire()== 1:
        p1gamescore=p1gamescore+1

else:
        p2gamescore=p2gamescore+1

print p1gamescore, p2gamescore

2 个答案:

答案 0 :(得分:1)

编写一个函数,如果某人(可选择谁)获胜,则返回该函数;另一个函数测试玩家的分数并返回分数情况字符串。循环调用umpire(),累积积分,获取并输出情况直到有人获胜(提示:while not winnerfunc(...):)。

答案 1 :(得分:0)

从州的角度来考虑它。有六种状态:

  1. 正常(得分[0123] - [0123],除了3-3)
  2. deuce round(得分3-3)
  3. 球员1获胜(得分4- [012]或得分5-3)
  4. 玩家2获胜(得分[012] -4或得分3-5)
  5. deuce球员1优势(得分4-3)
  6. deuce player 2优势(得分3-4)