c# - 一次评估所有值的for循环?
问题描述
所以我有一个元胞自动机,我可以在图像上放置像素,并且每个“滴答”都会向下移动一个像素。现在的问题是因为 for 循环是这样的:
for(int x = 0; x < 100; x++){
for(int y = 0; y < 100; y++){
//Check if nothing below (x,y) pixel and move it down if so
}
}
然后像素被传送到底部,因为它们在 y 循环的每次迭代中都向下移动。我通过使 y 循环从 100 下降到 0 而不是 0 到 100 来解决它,所以它向上迭代但是如果我想让我的像素在某些情况下向上移动它就行不通。
也许是一个双循环,它列出了要移动的像素以及第一个像素的移动位置,并在第二个中实际执行它,但这似乎性能很重,我相信有更好的解决方案
PS:如果您有更好的问题标题,请告诉我
解决方案
假设您在内部 for 循环中想要做的事情正确,这样的事情会起作用吗?
static void MovePixels(bool moveUp)
{
for (int x = 0; x < 100; x++)
{
if (moveUp)
{
for (int y = 0; y < 100; y++)
{
}
}
else
{
for (int y = 100; y > 0; y--)
{
}
}
}
}
推荐阅读
- kubernetes - 通过服务器域访问 Kubernetes 服务
- apache-kafka - 如何在 kafka-console-producer 中启用幂等性?
- report - 标题与第二页发票中的描述重叠
- c# - 启动类添加带有加密字符串的数据库上下文
- asp.net-mvc - 样式捆绑索引超出了数组的范围
- android - FB 登录 - 无法使用密码“android”生成我的开发环境独有的 28 个字符的密钥哈希
- r - R mutate(“.data”缺失,没有默认值)
- javascript - 此处映射 JS API — 缩放时禁用平移
- php - 我想在导出 csv/xls 之前计算文件大小(Laravel,Maatwebsite)
- dynamics-crm - 根据记录中存在下拉值限制批量编辑表单中的特定记录并抛出错误