Loops 如何走出无限循环?

Loops 如何走出无限循环?,loops,infinite-loop,labview,Loops,Infinite Loop,Labview,我想在LabView中制作一个类似的游戏: 但我陷入了一个无限循环,不知道如何摆脱。 这就是我到目前为止所做的: 这是两个按钮的一段代码。我认为只有3种可能的情况(bt1和bt2是相同的按钮): bt1和bt2都被按下,它们消失了(照片的第一部分) 只按下了两个按钮中的一个,但也按下了另一个按钮,按钮返回到初始颜色(照片的中间部分) 只按下了两个按钮中的一个,这是唯一按下的按钮,因此必须一直按下,直到按下另一个按钮(照片的最后部分) “once”变量表示之前是否按下了另一个按钮(0-之前未按下;

我想在LabView中制作一个类似的游戏:

但我陷入了一个无限循环,不知道如何摆脱。 这就是我到目前为止所做的:

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

  • bt1和bt2都被按下,它们消失了(照片的第一部分)
  • 只按下了两个按钮中的一个,但也按下了另一个按钮,按钮返回到初始颜色(照片的中间部分)
  • 只按下了两个按钮中的一个,这是唯一按下的按钮,因此必须一直按下,直到按下另一个按钮(照片的最后部分)
  • “once”变量表示之前是否按下了另一个按钮(0-之前未按下;1-之前按下)

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

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

    它不工作的原因如下:

  • 按下按钮,循环3运行并设置一次为1
  • 无操作:循环2运行并将一次设置为零,即使未按下两个按钮 根据while循环的速度,可能无法注意到变化。突出显示执行在这里很有用

    您的结构存在的问题是,案例2和案例3之间没有区别,即您可以将卡片设置为有一个值,如果相等,则案例1如果不相等,案例2和垃圾案例3将作为两张未翻转的卡片

    不要使用布尔值,而是使用带有值的内容,例如图片控件

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

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


    在这个场景中,您可以根据需要拥有任意多的图片,

    在您的代码中,我看不到任何循环。图片中的代码位于while循环中。我没有发布所有的代码。那么您想什么时候停止循环?请使用基于事件的排队状态机发布带有循环的示例。然后,如果未按下另一个按钮,则可以利用事件结构上的超时在n秒后将按下的按钮弹出。您可以在状态机的移位寄存器中保留一组按钮(已清除/未清除),以帮助管理游戏何时完成。引发要退出的用户事件以停止状态机中的事件循环。