-2

我正在用 Twincat 结构化文本做一个类似于 Simon Game 的记忆游戏。我有一个问题,我将如何检查按钮是否与 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 是激活随机数生成器

4

1 回答 1

0

我会为颜色创建一个 eNum,然后制作这个 eNum 的数组。此外,我将有一个索引来指向数组最后一个有效条目。

对于每一轮,都会生成一种新颜色并将其添加到数组中,因此对于按下的每个按钮,您都必须检查数组位置并验证它与最后一个有效索引之前的颜色相同。然后生成一个新索引并增加指针。您可以再次播放并再次验证按钮。

当指点指数增长时,您可以加快游戏速度。

于 2018-04-24T09:20:06.857 回答