如何跳出无限循环?

How to get out of infinite loop?

我想在 LabView 中制作一个类似这样的游戏:memory game

但是我陷入了死循环,不知道怎么出去。 这是我目前所拥有的:

这是两个按钮的一段代码。在我看来只有 3 种可能的情况(bt1 和 bt2 是相同的按钮):

  1. bt1 和 bt2 都被按下然后消失(照片的第一部分)
  2. 只按下了两个按钮中的一个,但也按下了另一个按钮,按钮恢复到初始颜色(照片的中间部分)
  3. 只按下了两个按钮中的一个,并且它是唯一按下的按钮,因此它必须保持按下状态直到按下另一个按钮(照片的最后一部分)

'once' 变量表示之前是否按下了另一个按钮(0-之前未按下;1-之前按下)。

如您所见,无限循环发生在第 2 种情况和第 3 种情况之间。任何关于如何解决这个问题的建议都会很有帮助。

更新: 在中间部分,我删除了 'once' 接收值 0 的部分,以避免无限循环。 (BT1和BT2设置为false后)

不工作的原因如下:

  1. 按下按钮,循环 3 运行并设置一次为 1
  2. 无动作:即使没有按下两个按钮,循环 2 运行并设置一次为零。

根据 while 循环的速度,可能无法注意到变化。高亮执行在这里很有用。

你的结构的问题是情况 2 和情况 3 之间没有区别,即你可以设置卡片有一个值,如果情况 2 和垃圾情况 3 不是两张卡片没转。

与其使用布尔值,不如使用具有值的东西,例如图片控制。

以下使用事件侦听器来监视按钮按下:

有四个控件,2 个头骨和 2 个苹果。
如果单击了多个控件,则会检查是否相等,如果为 true,则隐藏控件,如果为 false,它们将恢复为灰色。

在此场景中,您可以拥有任意数量的图片,