Zusammenfassung
Codegolf ist gut. Torte ist gut . Wenn Sie die beiden zusammenfügen, kann nur gutes Zeug passieren.
Spezifikationen
In dieser Herausforderung leiten Sie einen Tortenladen. Der Benutzer wird zur Eingabe von fünf verschiedenen Befehlen können: list, count, buy, sell, und exit. Hier sind die Spezifikationen für jeden:
listDrucken Sie eine Liste aller Kuchen im Besitz und wie viele. Trennen Sie sie mit
|und füllen Sie sie mit einem Leerzeichen auf beiden Seiten auf.|s muss ausgerichtet sein. Der Kuchenbetrag kann negativ sein (das bedeutet, dass Sie jemandem etwas schulden:(). Beispielsweise:| apple | 500 | | blueberry | 2 | | cherry | -30 |
count [type]Drucken Sie aus, wie viele
{{type}}Kuchen es gibt. "Es gibt keine{{type}}Torte!" wenn es keine gibt.{{type}}wird immer mit dem regulären Ausdruck übereinstimmen\w+(dh es wird immer ein einzelnes Wort sein). Wenn ich zum Beispiel die Anzahl der Torten in der obigen Beispielliste hätte, dann> count apple 500 > count peach There is no peach pie!
buy [n] [type]Addieren Sie
{{n}}zur Zählung des{{type}}Kuchens und drucken Sie ihn aus. Erstellen Sie einen{{type}}Kuchen, falls er nicht existiert.{{n}}wird immer mit dem regulären Ausdruck übereinstimmen[0-9]+(dh es wird immer eine Zahl sein). Hier ist ein weiteres Beispiel (mit demselben Kucheninventar wie in den vorherigen Beispielen):> count blueberry 2 > buy 8 blueberry 10
sell [n] [type]Subtrahieren Sie
{{n}}von der Anzahl der{{type}}Kuchen und drucken Sie es. Erstellen Sie einen{{type}}Kuchen, falls er nicht existiert. Torte kann negativ sein (oh nein, das würde bedeuten, dass Sie jemandem Torte schulden!).> sell 15 blueberry -5 > buy 5 blueberry 0
exitPrint "Der Tortenladen ist geschlossen!" und beenden Sie das Programm.
> exit The pie store has closed!
Weitere Erläuterungen
- Wenn eine nicht vorhandene Funktion aufgerufen wird (das erste Wort), drucken Sie "Das ist kein gültiger Befehl."
- Wenn eine vorhandene Funktion mit ungültigen Argumenten (die Wörter nach dem ersten Wort) aufgerufen wird, spielt es keine Rolle, wie sich Ihr Programm verhält. "Ungültige Argumente" enthalten zu viele Argumente, zu wenig Argumente,
{{n}}keine Zahl usw. - Torte ist gut.
- Ihre Eingabe muss von Ihrer Ausgabe unterschieden werden. Wenn Sie das Programm auf der Befehlszeile / terminal / shell / other text-based thing ausführen, müssen Sie der Eingabe ein "
> "(ein" Größer als "-Zeichen und ein Leerzeichen) oder ein anderes Shell-Eingabepräfix voranstellen. - Torte ist gut.
Wenn all diese Erläuterungen nicht gut genug sind, sehen Sie hier einige Beispiele:
> list > buy 10 apple 10 > sell 10 blueberry -10 > list | apple | 10 | | blueberry | -10 | > count apple 10 > count peach There is no peach pie! > exit The pie store has closed!Wenn Sie Kuchen kaufen / verkaufen und der Nettozählwert wird
0, können Sie ihn entweder im behaltenlistoder nicht, und Sie können entweder zurückkehren0oderThere is no {{type}} pie!wann Siecountihn haben.- Das ist Code-Golf ; kürzester Code gewinnt.
- Habe ich schon erwähnt, dass Kuchen gut ist?
buy 1 appleund sell 1 apple. Und wäre es dann gültig count apple, 0statt zurückzukehren There is no apple pie!?
