Immagina il seguente orologio di 24 ore che può essere controllato con i tasti freccia:
╔══╗ ┌──┐
║00║:│00│
╚══╝ └──┘
HH mm
Premendo due volte la freccia su ( ↑↑
) si aumenterà l'immissione dell'ora attualmente focalizzata:
╔══╗ ┌──┐
║02║:│00│
╚══╝ └──┘
HH mm
Premendo la freccia destra ( →
) si focalizzerà l'altro input.
┌──┐ ╔══╗
│02│:║00║
└──┘ ╚══╝
HH mm
Premendo tre volte la freccia giù ( ↓↓↓
), questo input diminuirà.
┌──┐ ╔══╗
│02│:║57║
└──┘ ╚══╝
HH mm
In breve:
- La freccia su (
↑
) aumenterà l'ingresso attualmente attivo. - La freccia giù (
↓
) diminuirà l'ingresso attivo. - La freccia destra (
→
) sposta lo stato attivo sull'input corretto. - La freccia sinistra (
←
) sposta lo stato attivo sull'ingresso sinistro. - Il movimento su e giù si ripeterà come previsto per un input di tempo.
- Il movimento sinistro e destro non si aggira intorno.
La sfida
L'orologio inizia alle 00:00
con l'ingresso dell'ora attivo (vedi primo schema). Dato un elenco di comandi di input, visualizza il tempo risultante nel HH:mm
formato.
L'input può essere una stringa o un elenco (o l'equivalente della lingua), in cui le diverse direzioni di input possono essere una delle opzioni seguenti:
↑↓←→
udlr
^v<>
- il tasto freccia effettivo preme se il programma ha una GUI
Si applicano scappatoie standard.
Casi test
↑↑→↓↓↓ = 02:57
↓→↑←↑→↓ = 00:00
↓→→↓ = 23:59
←←←←→↑ = 00:01
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓→↓ = 23:59
0123
) renderebbe la sfida molto più semplice in alcune lingue senza giovare ad altre.