Bu zorluk, bir Arduino mikrokontrolcüsünü programlayarak ilham verdi. Tahtadaki çeşitli pinlere bağlı 6 LED ve 6 buton var. Kodda, her bir düğmeye ve LED'e bir kimlik numarası (1-6) atanır. Kimlik numaralarına karşılık gelen pin numaraları (0-13 arasında değişen) bir switch
ifade kullanılarak aranır. Tamamen eğlence için, bu switch
kodların gelecekteki kod koruyucular için dehşete düşecek bir aritmetik / başka bir işlevle üstesinden gelinebileceklerini merak ediyordum .
Meydan okuma
ID numarasını (tamsayı) parametre olarak alan ve koşullu ifadeleri (no if
, no switch
ve no ternary) kullanmadan 6 LED ve / veya 6 düğmesinin pin numarasını (tamsayı) veren fonksiyonu / işlevleri sağlayın .
LED'ler için dönüş değerleri:
ID Pin
1 3
2 5
3 6
4 9
5 10
6 11
Düğmeler için dönüş değerleri:
ID Pin
1 2
2 4
3 7
4 8
5 12
6 13
Bonus mücadelesi
Bir ID numarası (tamsayı) ve LED veya düğme pinlerinin istenip istenmediğini belirten ikinci parametre (herhangi bir tür) alan ve karşılık gelen pimi (tamsayı) döndüren tek bir işlev sağlayın.
kurallar
Bu değil bir Arduino özgü meydan okuma. Herhangi bir dili kullanın , istediğiniz şeyi yapın.
Düzenleme: steveverril'in önerisi üzerine , bu şimdi kod kodlu bir oyundur .
İyi şanslar!
(Hala okuyorsanız: programlama standartlarına göre açıkça saçma ve keyfi olmasına rağmen, eşlemeler Arduino Micro'nun pin çıkışı üzerine kuruludur. 0 ve 1 numaralı pinler seri iletişim için ayrılmıştır, LED'ler en düşük numaralı 6 numaralı PWM özelliğine sahip pinlere atanmıştır. , düğmeler kalan pinlere atanır)
1+(1==1)
?