我正在做一个类似于Simon Game和Twincat结构化文本的记忆游戏。我有一个问题,我如何检查按钮是否与LED一样按下,并计算按下了多少按钮,以防你按错了? 提前致谢。 这是我的代码:
VAR
iRandomNumber: DINT;
fb_delay : ton;
Run: BOOL;
GameSpeed: TIME:= T#2S;
io.blue: bool;
io.start: bool;
END_VAR
IF IO.Start THEN
run := TRUE;
IF iRandomNumber = 1 THEN
run := FALSE;
io.Blue := TRUE;
fb_delay(in:=TRUE,PT := GameSpeed);
IF fb_delay.Q THEN
io.Blue:= FALSE;
run:= TRUE;
END_IF
END_IF
ELSIF iRandomNumber= 2 THEN
...
我创建随机数,分配给4个LED,这里是1个蓝色led的代码,其余的LED是相同的。数量为1,2,3,4,LED为蓝色,绿色,红色,黄色。 RUN var用于激活随机数生成器
答案 0 :(得分:0)
我会为颜色创建一个eNum,然后创建一个这个eNum的数组。 我还有一个索引指向数组的最后一个有效条目。
对于每个回合,会生成一个新颜色并添加到数组中,因此对于按下的每个按钮,您必须检查数组位置并验证它是否与上一个有效索引的颜色相同。然后生成一个新索引并增加指针。您可以再次播放并再次验证按钮。
指向索引增长时,您可以加速游戏。