python - 如何使循环运行特定次数
问题描述
我正在编写一个程序,该程序应该在屏幕上随机位置绘制随机数量的正方形,并使用随机颜色。我试图让它发生,但它不起作用(而是只画一个正方形并将它放在每一帧的新位置)。
我决定放弃随机数量的正方形的想法,只画三个。但它仍然做了完全相同的事情。根据我读过的网站,您应该能够使用 For 循环来绘制它们一定次数。但是,这些网站不是很清楚,并且使用了一些我以前从未听过的术语。我认为做这样的事情会更容易,但我对编程比较陌生,所以我可能做错了什么。
population = 0
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pcol = (random.choice(colour_list))
px = random.randint(50, 750)
py = random.randint(50, 750)
screen.fill(GREY)
for population in range(0, 3):
pygame.draw.rect(screen, pcol, (px, py, 50, 50))
population += 1
pygame.display.update()
解决方案
您必须在 -loop 中生成不同的随机位置 ( px
, py
) 和颜色 ( pcol
) for
,因此每个矩形都有自己的随机位置和颜色:
screen.fill(GREY)
for _ in range(0, 3):
pcol = (random.choice(colour_list))
px = random.randint(50, 750)
py = random.randint(50, 750)
pygame.draw.rect(screen, pcol, (px, py, 50, 50))
pygame.display.update()
如果你想让随机矩形保持不变,那么你必须在主循环之前生成一个数据列表:
population = []
for _ in range(0, 3):
pcol = (random.choice(colour_list))
px = random.randint(50, 750)
py = random.randint(50, 750)
population.append((px, py, pcol))
while running:
# [...]
screen.fill(GREY)
for px, py, pcol in population:
pygame.draw.rect(screen, pcol, (px, py, 50, 50))
pygame.display.update()
推荐阅读
- r - 将一列中的因子级别转换为列名
- python - 使用 Python 抓取我的 html 代码所在的 txt 文件
- python - 如何删除多余的空行
- java - 重新排列 ArrayList 元素
- php - Codeigniter 导航栏调整/对齐问题
- reactjs - 如何为 SVG 圆圈内的图像添加边框
- ios - 没有应用内购买的积分购买购买游乐设施
- python-3.6 - randomSearchCv/gridSearchCv 冻结 n_jobs>1
- ruby-on-rails - 如何根据用户分配的角色限制用户进行编辑和删除操作
- c# - 如何使用 stripe api 更新客户发票详细信息