Вставьте королеву на шахматной доске с пиплотом - PullRequest
0 голосов
/ 09 марта 2020

Я создал шахматную доску с Python, используя Matplotlib, и я хочу знать, возможно ли добавить изображение в нужные мне квадраты.

Я пытаюсь воспроизвести проблему с 8 ферзями, но с переменного размера, но моя главная проблема в том, что я не уверен, как показать королеву в каждом квадрате шахматной доски.

chessboard = np.zeros((size,size))

chessboard[1::2,0::2] = 1
chessboard[0::2,1::2] = 1

print(chessboard)
plt.imshow(chessboard,cmap='binary')
plt.show()

Я планирую создать еще один np.zeros() с тем же размером, но этот раз я буду представлять своих королев.

1 Ответ

3 голосов
/ 10 марта 2020

Вы можете построить центрированный «текст» с символом королевы UTF-8 . Вам необходимо изменить цвет текста при печати на черном фоне.

import matplotlib.pyplot as plt
import numpy as np

size = 8
chessboard = np.zeros((size,size))

chessboard[1::2,0::2] = 1
chessboard[0::2,1::2] = 1

plt.imshow(chessboard, cmap='binary')

for _ in range(20):
    i, j = np.random.randint(0, 8, 2)
    plt.text(i, j, '♕', fontsize=20, ha='center', va='center', color='black' if (i - j) % 2 == 0 else 'white')

plt.show()

resulting plot

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