2012-05-14 52 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