2012-05-14 128 views
-3

我真的很感谢一些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的击球手是另一个击球手,他们只是交换了奇数轮。

+0

板球,它的击球手连击没有。 – Nishant

回答

0

它看起来像你需要一个列表 - 列表中的每个条目将是一个给定击球手的运行次数。所以你的代码可能看起来像:

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

可以使用wicket变量来表示其面糊(列表索引从0开始,所以当wicket是0,我们有第一个面团,和我们将会把他们的奔跑在runsPerBatter[0]):

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

然后在程序结束时,您可以打印每运行连击:

for i in range(11): 
    print 'batsman', i + 1, 'made', runsPerBatter[i], 'runs' 
1

我不知道^ h打板球,但我可以帮忙。

“我想不出如何跟踪每个连击,有runs.Only 1 连击可以在同一时间走出去,他们交换了各自显然 奇数运行后的前锋结束。”

如果您试图追踪所有打击者,为什么不使用元组数组呢? 所以阵列中的每个条目将具有(面糊,跑步时,前锋)

随着batter保持面糊的数(可以被删除,只使用阵列位置0用于第二等第一面糊和1取决于你是否要存储的名称或东西每个连击),

runs持有多少奔跑,他们得到了,

out是一个布尔True如果他们都出去了,如果False他们还在in,

striker另一个布尔(我不知道板球,但它听起来像你说的,他们轮流所以他们中的一个必须是前锋,而其余的都没有。)

那么你只能继续计数运行。如果outFalse或无论板球规则的工作。

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

希望它可以帮助

+0

如果你不知道如何打板球,那么你错过了,我的朋友! ;-)然而,无论如何,试图帮助+1。 – Spudley