(Структурированный текст Twincat) Подсчитайте нажатие кнопки в соответствии со светодиодами на

Я играю в запоминание, похожую на Simon Game со структурированным текстом Twincat. И у меня проблема в том, как мне проверить, что кнопки нажаты так же, как светодиод, и посчитать, сколько кнопок было нажато, если вы нажали неправильно? Заранее спасибо. Вот мой код:

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 светодиода, вот код для 1 синего светодиода, остальные светодиоды такие же. Число 1,2,3,4 и светодиоды синий, зеленый, красный, желтый. RUN var - активировать генератор случайных чисел

1 ответ

Я хотел бы создать eNum для цветов, а затем создать массив этого eNum. Также у меня будет индекс, указывающий на массив последней допустимой записи.

Для каждого поворота генерируется новый цвет, который добавляется в массив, поэтому для каждой нажатой кнопки вы должны проверить местоположение массива и убедиться, что он совпадает с цветом до последнего действительного индекса. Затем сгенерируйте один новый индекс и увеличьте указатель. Вы можете воспроизвести все снова и проверить кнопки еще раз.

Вы можете ускорить игру при увеличении указателя.

Другие вопросы по тегам