(Структурированный текст 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. Также у меня будет индекс, указывающий на массив последней допустимой записи.
Для каждого поворота генерируется новый цвет, который добавляется в массив, поэтому для каждой нажатой кнопки вы должны проверить местоположение массива и убедиться, что он совпадает с цветом до последнего действительного индекса. Затем сгенерируйте один новый индекс и увеличьте указатель. Вы можете воспроизвести все снова и проверить кнопки еще раз.
Вы можете ускорить игру при увеличении указателя.