gpt4 book ai didi

python - 从 3 个列表中绘制 2 个矩形

转载 作者:行者123 更新时间:2023-11-28 17:57:30 28 4
gpt4 key购买 nike

我想在用户按下某个键后绘制随机矩形。我正在努力寻找一种随机选择矩形的方法。最好的方法是什么?

有 4 种可能的矩形。如果用户按下某个键,我想在 a、b、c 中随机绘制两个矩形,如果他按下不同的键,我想在 a、b、d 中绘制 2 个矩形。

我正在通过 pygame.draw.rect(-parameters-) 绘制矩形。是否可以将每个不同的矩形绘制分配给一个变量并将它们放入一个列表中,然后调用它们在该列表上执行 random.choice()?

def pick2():
a = pygame.draw.rect(surface, (0,0,255), (650, 600, 450,70))
b = pygame.draw.rect(surface, (0,0,255), (650, 750, 450,70))
c = pygame.draw.rect(surface, (0,0,255), (100, 750, 450,70))
d = pygame.draw.rect(fenster, (0,0,255), (650, 750, 450,70))
list = [a,b,c,d]
random.choice(list)
random.choice(list)

pygame.display.update()

我尝试了一下,但没有成功。我还希望第二个 random.choice(list) 具有与第一个不同的输出。

甚至可以将 pygame 函数分配给这样的变量吗?

我基本上想要的是只执行随机选择的三个矩形绘制中的两个。

有人可以帮忙吗?

最佳答案

让我们分解一下:

a = pygame.draw.rect(surface, (0,0,255), (650, 600, 450,70))

这将调用 pygame.draw.rect() 并将其返回值分配给变量 a。请注意,通过调用 rect() 函数,您会立即绘制矩形。这也适用于以下所有调用。虽然可以通过这种方式将矩形分配给变量,但它仍然会绘制所有矩形。为了做你想做的事,你需要先选择要绘制的两个矩形,然后只绘制两个选定的矩形。一种方法是将每个矩形的坐标存储在列表中:

rects = [(650, 600, 450,70), (650, 750, 450,70), (100, 750, 450,70), (650, 750, 450,70)]

现在你可以选择两个矩形:

chosen = random.sample(rects, k=2)

我使用 random.sample() 来确保我不会两次获得相同的矩形。此外,我将返回值分配给一个变量,以捕获随机选择的矩形

最后画出那些矩形:

for rect in rects:
pygame.draw.rect(surface, (0,0,255), rect)

请注意,我从您的所有 4 个示例中选择了两个矩形。如果您想从 3 个中选择 2 个,则只需根据需要更改 rects 列表。

我强烈建议您在 http://python.org 查看官方 Python 教程。 .它将帮助您更详细地了解函数和返回值。

关于python - 从 3 个列表中绘制 2 个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57481710/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com