Чтобы мигать зелёным, сделайте в вашем конечном автомате состояния (2: зелёный горит), (3: зелёный не горит) и переключайтесь между ними туда-сюда по таймеру. Одновременно можно увеличивать счётчик или (более правильно) отсчитывать общее время мигания. Если счётчик/время превышает порог — вместо перехода 2↔3 выполняйте переход →0
P.S.: если для переменной состояния использовать enum, тогда вместо чисел можно называть состояния словами, что гораздо удобнее и помогает самому не запутаться
tan76, пусть у нас есть две отметки, N1 и N2 твл (например, N1=200 и N2=300). Нужно узнать разрешение для какой-то точки между ними. Пусть она делит отрезок между отметками в соотношении k (если посередине, то k=0.5, если на четверти расстояния от N1 до N2, то k=0.25 и т.д.)
Искомое разрешение = 1 / (k/N2-k/N1+1/N1)
В нашем примере, посередине между отметками 200 и 300 будет 240
Василий Банников, такие диоды принято паять на платы с алюминиевым основанием. Если обычный текстолит, то сомневаюсь, что теплоотвода хватит. По крайней мере, нужно взять фольгу потолще, сделать теплоотводящие полигоны на всех слоях, а прямо под светодиодом набить переходных отверстий.
ivan58, щуп приложить к радиатору, максимально рядом со светодиодом. И учитывать, что температура кристалла будет на 20-30 градусов выше, чем радиатора.
Кирилл Дмитрий,
> емкостью 1uF напряжением 50V
Откуда это взялось?
Радиомодуль смартфона жрёт 2-3А импульсами по несколько мс. Конденсатор должен отдавать этот ток и не разряжаться за время импульса ниже 3.6V. Исходя из этого и рассчитывайте ёмкость. А максимальное напряжение на аккумуляторе не превышает 4.2V, соответственно конденсатора на напряжение 6.3-10V будет достаточно.
Человек, хоть немного понимающий устройство замка (не говоря уже о профессиональном взломщике), легко отличит ситуацию "ключ не подходит" от "замку мешает повернуться внешний блокиратор"
Ok, digikey просто для примера. Я написал, как эта штука называется, а искать её можно в любом маркете электронных компонентов, доступ к которому у вас есть.
Для начала надо придумать, как будет двигаться змея после столкновения, если жизни ещё не кончились. Сейчас у вас все жизни тратятся за 3 тика, потому что условие столкновения (if ((s[0].x == s[i].x) && (s[0].y == s[i].y))) никуда не исчезает.
P.S.: если для переменной состояния использовать enum, тогда вместо чисел можно называть состояния словами, что гораздо удобнее и помогает самому не запутаться