Python 蟒蛇板球游戏

Python 蟒蛇板球游戏,python,Python,我非常感谢您对python程序的帮助。这是一个板球项目;要求用户输入要播放的结束次数,然后记录跑步、边线和结束次数。这一部分还可以,但我不知道如何记录每个击球手的得分情况。一次只能有一个击球手出局,他们在每次出局后交换前锋端,显然是为了奇数分。如果可以的话,请帮忙。 这是到目前为止我只需要添加击球手的部分 for overs in range(1, numOvers + 1): if endGame: #.........set to true from inner loop when

我非常感谢您对python程序的帮助。这是一个板球项目;要求用户输入要播放的结束次数,然后记录跑步、边线和结束次数。这一部分还可以,但我不知道如何记录每个击球手的得分情况。一次只能有一个击球手出局,他们在每次出局后交换前锋端,显然是为了奇数分。如果可以的话,请帮忙。 这是到目前为止我只需要添加击球手的部分

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,Numover+1)内的over:
如果结束游戏:#……在中断时从内部循环设置为true
打破
打印()
打印(“-------------------------------”)
打印(“输入超过的运行”,超过)
打印(“-------------------------------”)
#内环,用于表示球在上方的数量
对于在范围内的_跑(1,球在+1以上):
#计算结束和重新研磨球的数量
totalBallsFaced+=1
TotalOverface=(totalBallsFaced//BALLS\u IN\u OVER)
PartOverface=(总球面%BALLS\u IN\u OVER)
#打印()
runs=int(输入(“>”)#………提示用户运行
如果运行次数<0:#……..如果为负数,则将1添加到wicket
导叶+=1
打印(“面糊输出…”)
如果边门>=10:
打印(“面糊全部用完”)
endGame=1#………设置为true
断开,断开至外环
其他:
总计+=运行次数#………如果输入>=0,则添加到总计

感谢大家的快速反馈,我把这两个想法都考虑进去了,终于完成了。
只有指数为1、指数为2的击球手才是另一个击球手,他们只交换了奇数分。

看起来你需要一个列表-列表中的每个条目都是给定击球手的得分。因此,您的代码可能类似于:

runsPerBatter = [0] * 11 # this makes a list with 11 zero entries
您可以使用
wicket
变量来指示哪个batter(列表索引从0开始,因此当
wicket
为0时,我们有第一个batter,我们将把它们的运行放入
runsPerBatter[0]
):

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

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

我不知道怎么打板球,但我也许能帮上忙

“我不知道如何记录每个击球手的情况,只有1次 击球手可以一次出局,之后他们交换前锋端 每一次都会结束,显然是为了奇数运行。”

如果你想追踪你所有的击球手,为什么不使用元组数组呢? 因此,阵列中的每个条目都有(击球手、跑动、出局、前锋)

使用
batter
保存击球手的号码(可以删除,第一个击球手使用数组位置0,第二个击球手使用数组位置1等,这取决于您是否要为每个击球手存储一个名称或内容)

运行
记录他们的运行次数

out
是一个布尔值
True
如果它们不在,如果它们仍然在

还有另一个布尔值(我不知道板球,但听起来你说他们轮流打,所以其中一个需要打前锋,而其他人不需要。)

然后,只有当
out
False
或板球规则有效时,才能继续计算跑步次数

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

希望这对板球有帮助,击球手不是击球手。如果你不知道怎么打板球,那你就错过了,我的朋友!;-)然而,+1表示无论如何都试图帮助。
arr=[]
for i in range (num_of_batters):
     batter=input("Batter's name: ").strip()
     arr.append((batter,0,False,False))