ลองนึกภาพนาฬิกา 24 ชั่วโมงต่อไปนี้ที่สามารถควบคุมได้โดยปุ่มลูกศร:
╔══╗ ┌──┐
║00║:│00│
╚══╝ └──┘
HH mm
การกดลูกศรขึ้นสองครั้ง ( ↑↑
) จะเพิ่มอินพุตชั่วโมงที่โฟกัสในขณะนี้:
╔══╗ ┌──┐
║02║:│00│
╚══╝ └──┘
HH mm
กดปุ่มลูกศรขวา ( →
) เพื่อโฟกัสไปที่อินพุตอื่น
┌──┐ ╔══╗
│02│:║00║
└──┘ ╚══╝
HH mm
การกดปุ่มลูกศรลงสามครั้ง ( ↓↓↓
) จะลดอินพุตนี้ลง
┌──┐ ╔══╗
│02│:║57║
└──┘ ╚══╝
HH mm
ใส่สั้น ๆ :
- ลูกศรขึ้น (
↑
) จะเพิ่มอินพุตที่ใช้งานอยู่ในปัจจุบัน - ลูกศรลง (
↓
) จะลดอินพุตที่ใช้งานอยู่ - ลูกศรขวา (
→
) จะย้ายโฟกัสไปยังอินพุตที่ถูกต้อง - ลูกศรซ้าย (
←
) จะย้ายโฟกัสไปยังอินพุตด้านซ้าย - การเคลื่อนไหวขึ้นและลงจะวนซ้ำตามที่คาดไว้สำหรับการป้อนเวลา
- การเคลื่อนไหวทางซ้ายและขวาไม่วนซ้ำ
ความท้าทาย
นาฬิกาเริ่มต้นที่00:00
การป้อนชั่วโมงทำงาน (ดูแผนผังแรก) รับรายการคำสั่งอินพุตเอาต์พุตเวลาผลลัพธ์ในHH:mm
รูปแบบ
อินพุตอาจเป็นสตริงหรือรายการ (หรือเทียบเท่าภาษาของคุณ) ซึ่งทิศทางการป้อนข้อมูลที่แตกต่างกันอาจเป็นหนึ่งในตัวเลือกด้านล่าง:
↑↓←→
udlr
^v<>
- กดปุ่มลูกศรจริงถ้าโปรแกรมของคุณมี GUI
ช่องโหว่มาตรฐานใช้
กรณีทดสอบ
↑↑→↓↓↓ = 02:57
↓→↑←↑→↓ = 00:00
↓→→↓ = 23:59
←←←←→↑ = 00:01
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓→↓ = 23:59
0123
) จะทำให้การท้าทายง่ายขึ้นมากในบางภาษาในขณะที่ไม่ได้รับประโยชน์จากคนอื่น