2016-05-11 6 views
0

私は競馬をシミュレートするPythonで関数を記述しようとしています。勝者は存在しませんが、スクリーンをクリアし、馬のリストを表示します(すべてインデックスはゼロから始まります)。そして、私がマークした行で、コードが壊れてしまいます。 インデックスエラーリストが範囲外です。ランダムに馬を選んで(無作為にインデックス番号を選んで)、値に1を加えようとしています。しかし、私はそれを把握するように見えることはできません!Pythonエラーコード:IndexError:インデックスエラーリストのインデックスが範囲外です

while (no_winner): 

    os.system("cls") 

    print(horses) 

    # randomly assign a horse to step forward 
    rando = random.randint(1, HORSE_NUM) 
    horses[rando] += 1 #######PROBLEM 

    # if the horse exceeds the finish line, he wins 
    if (steps > FINISH_LINE): 

     winner = horses[index] 
     no_winner = False 
+0

randintsを試してみてくださいピックされるインデックス0にある。 https://docs.python.org/2/library/random.html#random.randint –

答えて

1

random.randint()が含まれており、あなたはそれが範囲外になりますHORSE_NUMに等しいランダムな整数を取得する場合。あなたが行く必要があるので、包括的である-1が、リストのインデックスはまた0から始まるので、あなたにもちょうど `馬を許可するように` random.randint(0、HORSE_NUM -1)を使用したい場合があり上限

rando = random.randint(0, HORSE_NUM - 1) 
関連する問題