Ich bin sehr faul und versuche, meine Mikrowelle immer mit möglichst wenigen Tastendrücken zu programmieren . Meine Mikrowelle hat folgende Tasten:
- Eine "Minute Plus" -Taste, die nur zuerst gedrückt werden darf und "Start" impliziert. Es kann mehrere Minuten lang mehrmals gedrückt werden, es wird jedoch keine Minute zu einer manuell eingegebenen Zeit hinzugefügt. Ausgabe
+
- Eine Reihe von 0-9 Tasten. Die Zeitangabe ist MMSS (dh "130" bedeutet 1 Minute 30 Sekunden). Sekunden können von 0..99 reichen. "130" und "90" sind also äquivalente Einträge. Offensichtlich beträgt jede Minute 60 Sekunden, auch wenn der Sekundenanteil des Eintrags 59 überschreitet. Ausgabe
0
..9
- Eine "Start" -Taste, die gedrückt werden muss, um die Mikrowelle zu starten, wenn die Uhrzeit manuell eingegeben wird. Ausgabe
S
Meine Lebensmittelpakete geben die Zeit in MM: SS an, und das Programm muss diese Eingabe akzeptieren.
Beispiele
- 1:00 ist
+
(denken Sie daran, "Minute plus" impliziert Start) - 1:01 ist
61S
(Sekunden können 59 überschreiten, aber "Minute plus" funktioniert nicht in Verbindung mit Ziffern - ich denke, dies ist ein Konstruktionsfehler in meiner Mikrowelle) - 9:00 ist
900S
(kürzer als+++++++++
)
code-challenge
optimization
Ben Jackson
quelle
quelle
400S
oder++++
?++++
gewinnt. :)888S
kürzer als928S
, aber900S
kürzer als860S
? Ich werde eine genaue Geometrie Ihrer Knöpfe und jeder ihrer Positionen benötigen.Antworten:
APL
APL hat den schlechten Ruf, dass es nicht lesbar ist, was ganz und gar nicht der Fall ist, wenn es nicht Golf spielt.
Die Regeln:
quelle
JavaScript
quelle
Perl
erfüllt die Anforderungen,
aber es ist nicht, wie ich die Tasten eingeben würde (zB "860S" vs "900S")behandelt genau 60 Sekunden als SonderfallAusgabe
quelle
Rubin
Bemerkungen:
ruby program-my-microwave-oven.rb
und ein Unit-Test wird ausgewertet.ruby program-my-microwave-oven.rb 10:00
und es schreibt960S
Einige Anmerkungen zu den Regeln (und meiner Interpretation):
10:00
ist960S
(9 Minuten und 60 Sekunden -> 10 Minuten).10:39
ist999S
(9 Minuten und 99 Sekunden -> 10 Minuten und 39 Sekunden).4:00
es bevorzugt++++
(weniger Fingerbewegungen)quelle