1

私が立ち往生しているこの機能について助けが必要です。

3 つのプロセスを実行する必要があります。1 つは、入力された奇数または偶数ランに基づいて各プレーヤーを切り替えることですが、これは機能しますが、リストにbatsmanName関連するプレースホルダーを置き換えて入力する方法がわかりません。リストbatsmanBatting内の次の要素へbatsmanName(改札が使用された場合、ユーザーによって追加されます)。

batsmanRun最後のプロセスは、打者のバッティングに関連するインデックスのスコアを追加することです。つまり、 batsmanBatting[4]「T」の場合は、batsmanRun[4]それに応じて累積する必要があります。

これを明確に説明し、理にかなっていることを願っています。そうでない場合は、さらに情報を追加できます。助けていただければ幸いです。

def getRuns(totalScore):

    global batsmanName  #[] empty list a function adds a player if a wicket is taken
    global batsmanRun #[0,0,0,0,0,0,0,0,0,0,0] #accumulators 
    global batsmanBatting #['F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F'] 
    global batsmanOnField #['F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F']
    global wickets

    while(1):
        try:
            if(totalScore%2==0):
                print(batsmanBatting)
                runs=int(input("\nEnter runs for striker %s: " % batsmanName[0]))
                batsmanRun[0]+=runs
                print(batsmanRun)
            else:
                print(batsmanBatting)
                runs=int(input("\nEnter runs for striker %s: " % batsmanName[1]))
                batsmanRun[1]+=runs
                print(batsmanRun)
            if(runs<7):    
                return runs 
            else:
                print("Invalid run(s) entered. Please try again.")
        except Exception as err:
                print(err)
                print("Please try again.")
4

1 に答える 1

1

リストに名前を追加するには、次のbatsmanNameようにします。

batsmanName.append('Mr Batsman')

それが真のプレースホルダーである場合は、リストを使用しないNoneでください。または空の文字列を使用してください。その場合は、次のように割り当てて更新します。

batsmanName = 'Mr Batsman'

2番目の質問(実際には個別の質問を個別に提起する必要があります)については、「batsmanBatting [4]が 'T'の場合、batsmanRun [4]がそれに応じて累積する必要がある」という意味が不明ですが、これは次のことを意味していると思います:

for num, state in enumerate(batsmanBatting):
    if state == 'T':
        batsmanRun[num] += 1

おそらくそれを行うためのより良い方法があります。かどうか、私はクリケットを知りません。

于 2012-05-18T10:34:52.533 に答える