Вы можете создать массив, содержащий цвета
colors = np.array([[120, 250, 90], [250, 90, 120], [255, 255, 255]])
и использовать gridarray
в качестве массива индекса: colors[gridarray]
.Вы получите массив, такой как этот:
array([[[120, 250, 90],
[250, 90, 120],
[250, 90, 120],
...,
Передайте его в pygame.surfarray.make_surface
, чтобы превратить его в pygame.Surface
, который вы можете перетаскивать на экран.
import pygame as pg
import numpy as np
pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
colors = np.array([[120, 250, 90], [250, 90, 120], [255, 255, 255]])
gridarray = np.random.randint(3, size=(20, 20))
surface = pg.surfarray.make_surface(colors[gridarray])
surface = pg.transform.scale(surface, (200, 200)) # Scaled a bit.
running = True
while running:
for event in pg.event.get():
if event.type == pg.QUIT:
running = False
screen.fill((30, 30, 30))
screen.blit(surface, (100, 100))
pg.display.flip()
clock.tick(60)