Как исправить ошибку «индекс списка вне диапазона»? - PullRequest
1 голос
/ 14 мая 2019

Я получаю ошибку "list index out of range".Я пытался найти решение для Google, но не могу найти ничего подходящего для моей проблемы.

Я пытался использовать другие случайные вещи, такие как random.shuffle() и randint().

import random
svart = [18,28,38,58,68,78,88,47,46,45,44,43,42,41,37,26,15,57,66,75,84] 
vit = [11,21,31,51,61,71,81,42,43,44,45,46,47,48,32,23,14,52,63,74,85]

def schack(svart,vit):
    hit = 0
    miss = 0
    for i in range(10000):
        random.choice(svart)
        random.choice(vit)
        if svart == vit:
            i = i + 1

        elif svart[18] == vit[11]:
            hit += 1

        elif svart[28] == vit[21]:
            hit += 1

        elif svart[38] == vit[31]:
            hit += 1

        elif svart[58] == vit[51]:
            hit += 1

        elif svart[68] == vit[61]:
            hit += 1

        elif svart[78] == vit[71]:
            hit += 1

        elif svart[88] == vit[81]:
            hit += 1

        elif svart[7,46,45,44,43,42,41] == vit[42,43,44,45,46,47,48]:
            hit += 1

        elif svart[37] == vit[31,47,32]:
            hit += 1

        elif svart[26] == vit[21,23,46]:
            hit += 1

        elif svart[15] == vit[11,45,14]:
            hit += 1

        elif svart[57] == vit[51,52,47]:
            hit += 1

        elif svart[66] == vit[46,61,63]:
            hit += 1

        elif svart[75] == vit[71,45,74]:
            hit += 1

        elif svart[84] == vit[81,44,85]:
            hit += 1

        elif svart[38,37,42] == vit[32]:
            hit += 1

        elif svart[28,43,26] == vit[23]:
            hit += 1

        elif svart[18,15,44] == vit[14]:
            hit += 1

        elif svart[58,42,57] == vit[52]:
            hit += 1

        elif svart[68,43,66] == vit[63]:
            hit += 1

        elif svart[78,44,75] == vit[74]:
            hit += 1

        elif svart[84,88,45] == vit[85]:
            hit += 1


        else:
            miss += 1

    print hit
    print miss

schack(svart,vit)

Это так называемый шахматный симулятор, который примет значение и сравнит числа из обоих списков.Если числа «угрожают друг другу», точка будет добавлена.Если оба значения одинаковы, он не зарегистрирует попадание или промах и добавит дополнительный ход цикла.

Я не знаю, неправильно ли сравниваю значения друг с другом или что я делаю неправильно.

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 08 июля 2019

Далее приводится 29-й элемент списка «svart»: svart[28]

Но в списке всего 21 элемент.Таким образом, вы получаете доступ к элементу вне возможного диапазона.Вот почему вы получаете сообщение об ошибке «Список индексов вне диапазона».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...