我真的很感激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 :(得分:1)
我不知道如何打板球,但我可以帮忙。
“我无法想象如何跟踪每个击球手并且有跑动。只有1 击球手可以一次出局,然后他们交换前锋 每次都过去,显然是奇怪的。“
如果你想跟踪所有击球手,为什么不使用一系列元组呢? 所以数组中的每个条目都有(batter,run,out,striker)
batter
持有击球手的号码(可以删除,只使用数组位置0表示第一个击球手,1表示第二击球手等。取决于你是否要为每个击球手存储一个名字或者某个东西击球手),
runs
持有他们获得了多少次,
out
如果他们不在,则为布尔True
,如果他们还在,则为False
,
和striker
另一个布尔(我不知道板球,但听起来你说它们轮流所以其中一个需要成为前锋,其余的则不是。)
然后,如果out
为False
,或者蟋蟀规则有效,您只能继续计算。
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