python板球比赛

时间:2012-05-14 14:40:29

标签: python

我真的很感激python程序的一些帮助。这是一个板球项目;询问用户是否有多少人参加比赛,然后跟踪比赛,门票和门票。那部分还可以,但是我无法想象如何跟踪每个击球手并且有跑动。只有1个击球手可以一次出局,并且他们在每次击球后交换前锋,显然是奇数跑。如果可以的话请帮忙。 到目前为止,这是程序的一部分,我只需添加击球手。

for overs in range(1, numOvers + 1): 

  if endGame: #.........set to true from inner loop when breaking
            break

    print()
    print("---------------------------")
    print("Enter runs for over ", overs)
    print("---------------------------")

    #inner loop for number of balls in the over 
    for _runs in range(1, BALLS_IN_OVER + 1): 

      #calculate the number of overs and remainding balls
      totalBallsFaced += 1 
      totalOversFaced = (totalBallsFaced // BALLS_IN_OVER)    
      partOverFaced = (totalBallsFaced % BALLS_IN_OVER) 

      #print()
      runs = int(input("> ")) #...........prompt user for runs

      if runs < 0:#.......................if negative number, add to 1 to wicket
        wicket += 1
        print("Batter out...")

        if wicket >= 10:#...............if batter out and if all batters out then team out
          print("Batters all out")
          endGame = 1 #..............set to true
          break #.......................break to outer loop
      else: 
        total += runs #..................if input >= 0 , add to total

感谢快速反馈的人,我考虑了两个想法,最后完成了。 只有指数1得分和击球手指数2的击球手是另一个击球手,他们只是交换奇怪的跑步。

2 个答案:

答案 0 :(得分:1)

我不知道如何打板球,但我可以帮忙。

  

“我无法想象如何跟踪每个击球手并且有跑动。只有1   击球手可以一次出局,然后他们交换前锋   每次都过去,显然是奇怪的。“

如果你想跟踪所有击球手,为什么不使用一系列元组呢? 所以数组中的每个条目都有(batter,run,out,striker)

batter持有击球手的号码(可以删除,只使用数组位置0表示第一个击球手,1表示第二击球手等。取决于你是否要为每个击球手存储一个名字或者某个东西击球手),

runs持有他们获得了多少次,

out如果他们不在,则为布尔True,如果他们还在,则为False

striker另一个布尔(我不知道板球,但听起来你说它们轮流所以其中一个需要成为前锋,其余的则不是。)

然后,如果outFalse,或者蟋蟀规则有效,您只能继续计算。

arr=[]
for i in range (num_of_batters):
     batter=input("Batter's name: ").strip()
     arr.append((batter,0,False,False))

希望有所帮助

答案 1 :(得分:0)

看起来你需要一个清单 - 清单中的每个条目都是给定击球手的跑数。所以你的代码可能看起来像:

runsPerBatter = [0] * 11 # this makes a list with 11 zero entries

你可以使用wicket变量来指示哪个击球手(列表索引从0开始,所以当wicket为0时,我们有第一个击球手,我们将他们的跑步放在{{1 }}):

runsPerBatter[0]

然后在程序结束时,您可以打印每个击球手的跑步次数:

...
else:
  total += runs
  runsPerBatter[wicket] += runs