массив python переводит numpy, ссылающийся на не numpy

#python #numpy

#python #numpy

Вопрос:

Я пытаюсь найти, как сканировать блок из 4 в любой строке массива, используемого для воспроизведения connect4 с ИИ, для которого я пытаюсь определить приоритет ходов.

Пример: у меня есть следующий массив / плата:

 board = [["." for i in range(7)] for i in range(6)]
board[0][3] = 'R'
board[0][2] = 'R'
board[0][1] = 'R'

[['.', 'R', 'R', 'R', '.', '.', '.'],
 ['.', '.', '.', '.', '.', '.', '.'],
 ['.', '.', '.', '.', '.', '.', '.'],
 ['.', '.', '.', '.', '.', '.', '.'],
 ['.', '.', '.', '.', '.', '.', '.'],
 ['.', '.', '.', '.', '.', '.', '.']]
 

Я хочу идентифицировать шаблон RRR и заставить мой ИИ выиграть игру, вставив рядом с ним еще один R.
Для этого я пытаюсь выделить оценку для каждого столбца матрицы.
Для этого мне нужно просканировать массив.

Код, который я пытаюсь придумать, служит этой цели. Вот что у меня есть до сих пор

 def position_score(board, piece):
    # horitontal scan
    for r in range(len(board)):
        row_ar = board[r]
        for c in range(len(board[0]) - 3):
            scan = row_ar[c: c   4]
            if scan.count(piece) == 3 and scan.count(".") == 1:
                score  = 10
 

Редактировать: выяснил, что печать сканирования не была предназначена должным образом. ошибка новичка, решение, предложенное @hpaulj, действительно сработало! Спасибо

Приветствия

Комментарии:

1. Первый бит не очень numpy и недопустимый код python. Пожалуйста, отправьте MCVE.

2. Чем больше я смотрю на это, тем меньше смысла это имеет. Пожалуйста, уточните.

3. Это основано на github.com/KeithGalli/Connect4-Python/blob/master / … Строка 95 Я пытаюсь просканировать строки моей доски (массива), чтобы увидеть, где есть строки из 2/3 фигур, чтобы ИИ играл там. Он использует numpy, я нет, и я пытаюсь найти эквивалент этого кода.

4. row_arr=array[r] должно быть достаточно, если array это список списков.

5. @Senzu. Автор, похоже, использует массивы numpy в качестве причудливых вложенных списков. Я не могу комментировать сам алгоритм, но, конечно, не использую этот код в качестве примера того, как эффективно использовать numpy