概要
コードゴルフは良いです。パイがいい。この2つを組み合わせると、良いことが起こるだけです。
仕様書
この課題では、パイショップを管理します。ユーザーは、5つの異なるコマンドを入力することができるようになります:list、count、buy、sell、とexit。それぞれの仕様は次のとおりです。
list所有しているすべてのパイとその数のリストを印刷します。で区切って
|、両側にスペースを入れます。|sは整列する必要があります。パイの量は負の値になる可能性があります(つまり、誰かにパイを借りていることを意味します:()。例えば:| apple | 500 | | blueberry | 2 | | cherry | -30 |
count [type]{{type}}パイの数を印刷します。印刷「{{type}}パイはありません!」ない場合。{{type}}常に正規表現に一致します\w+(つまり、常に単一の単語になります)。たとえば、上の例のリストに示したパイの量がある場合、> count apple 500 > count peach There is no peach pie!
buy [n] [type]パイ
{{n}}のカウントに追加して{{type}}、印刷します。{{type}}パイが存在しない場合は作成します。{{n}}常に正規表現に一致します[0-9]+(つまり、常に数値になります)。次に、別の例を示します(前の例と同じパイインベントリを使用)。> count blueberry 2 > buy 8 blueberry 10
sell [n] [type]パイ
{{n}}のカウントから減算し、{{type}}印刷します。{{type}}パイが存在しない場合は作成します。パイは負の値になる可能性があります(ああ、いや、誰かにパイを借りるということです!)。> sell 15 blueberry -5 > buy 5 blueberry 0
exit「パイストアは閉店しました!」そしてプログラムを終了します。
> exit The pie store has closed!
さらなる説明
- 存在しない関数が呼び出された場合(最初の単語)、「それは有効なコマンドではありません」と出力します。
- 無効な引数(最初の単語の後の単語)で既存の関数が呼び出された場合、プログラムの動作は重要ではありません。「無効な引数」には、引数が多すぎる、引数が少なすぎる
{{n}}、数値ではないなどが含まれます。 - パイがいい。
- 入力と出力を区別する必要があります。コマンドライン/端末/シェル/その他のテキストベースのものでプログラムを実行している場合は、入力の前に「
> "(「より大きい」記号とスペース)」またはその他のシェル入力接頭辞を付ける必要があります。 - パイがいい。
これらの説明のすべてが十分でない場合、サンプル出力を次に示します。
> 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!あなたが/販売パイを購入し、ネットカウントがなった場合
0、次のことができますいずれかでそれを維持するlistかどうか、あなたがすることができますいずれかを返す0か、There is no {{type}} pie!ときにcountそれ。- これはcode-golfです。最短のコードが勝ちます。
- 私はパイが良いと言いましたか?
buy 1 appleしてsell 1 apple。そして、それは代わりcount appleに戻るのに有効でしょうか?0There is no apple pie!
