ความท้าทายนี้ได้รับแรงบันดาลใจจากการเขียนโปรแกรมไมโครคอนโทรลเลอร์ Arduino ฉันมีไฟ LED 6 ดวงและปุ่ม 6 ปุ่มเชื่อมต่อกับหมุดต่าง ๆ บนกระดาน ในรหัสแต่ละปุ่มและ LED จะถูกกำหนดหมายเลข ID (1-6) หมายเลขพิน (ตั้งแต่ 0-13) ที่สอดคล้องกับหมายเลข ID จะค้นหาโดยใช้switch
คำสั่ง เพื่อความสนุกฉันสงสัยว่าswitch
es เหล่านี้สามารถหลบเลี่ยงด้วยฟังก์ชันเลขคณิต / ฟังก์ชันอื่น ๆ เพื่อผู้ดูแลรหัสในอนาคตที่น่ากลัว
ความท้าทาย
จัดเตรียมฟังก์ชัน / ฟังก์ชั่นที่ใช้หมายเลข ID (จำนวนเต็ม) เป็นพารามิเตอร์และส่งกลับหมายเลขพิน (จำนวนเต็ม) สำหรับปุ่ม LED 6 ดวงและ / หรือปุ่ม 6 โดยไม่ต้องใช้คำสั่งแบบมีเงื่อนไข (no if
, no switch
and no ternary)
คืนค่าสำหรับไฟ LED:
ID Pin
1 3
2 5
3 6
4 9
5 10
6 11
คืนค่าสำหรับปุ่ม:
ID Pin
1 2
2 4
3 7
4 8
5 12
6 13
โบนัสท้าทาย
จัดเตรียมฟังก์ชันเดี่ยวที่ใช้หมายเลข ID (จำนวนเต็ม) และพารามิเตอร์ตัวที่สอง (ชนิดใดก็ได้) ที่ระบุว่ามีการร้องขอหมุด LED หรือปุ่มและส่งคืนพินที่สอดคล้องกัน (จำนวนเต็ม)
กฎระเบียบ
นี่ไม่ใช่ความท้าทายเฉพาะของ Arduino ใช้ภาษาใดก็ได้ทำในสิ่งที่คุณต้องการ
แก้ไข: ตามคำแนะนำของสตีฟเวอร์ริลตอนนี้เป็นความท้าทายของนักกอล์ฟ
โชคดี!
(หากคุณยังคงอ่าน: ถึงแม้ว่าจะไร้เหตุผลและไม่มีกฎเกณฑ์ตามมาตรฐานการเขียนโปรแกรม แต่การแมปจะขึ้นอยู่กับ pinout ของ Arduino Micro แต่ Pins 0 และ 1 นั้นสงวนไว้สำหรับการสื่อสารแบบอนุกรม ปุ่มถูกกำหนดให้กับหมุดที่เหลือ)
1+(1==1)
?