Sumário
Código de golfe é bom. Torta é boa . Quando você junta os dois, apenas coisas boas podem acontecer.
Especificações
Neste desafio, você gerenciará uma loja de tortas. O usuário será capaz de entrada de cinco diferentes comandos: list, count, buy, sell, e exit. Aqui estão as especificações para cada um:
listImprima uma lista de todas as tortas de propriedade e quantas. Separe com
|e junte com um espaço de cada lado.|s devem estar alinhados. O valor da torta pode ser negativo (isso significa que você deve torta a alguém:(). Por exemplo:| apple | 500 | | blueberry | 2 | | cherry | -30 |
count [type]Imprima quantas
{{type}}tortas existem. Imprimir "Não há{{type}}torta!" se não houver.{{type}}sempre corresponderá à regex\w+(ou seja, sempre será uma única palavra). Por exemplo, se eu tivesse a quantidade de tortas mostrada na lista de exemplos acima, então> count apple 500 > count peach There is no peach pie!
buy [n] [type]Adicione
{{n}}à contagem de{{type}}torta e imprima-a. Crie{{type}}torta se não existir.{{n}}sempre corresponderá à regex[0-9]+(ou seja, sempre será um número). Aqui está outro exemplo (com o mesmo inventário de torta que os exemplos anteriores):> count blueberry 2 > buy 8 blueberry 10
sell [n] [type]Subtraia
{{n}}da contagem de{{type}}torta e imprima-a. Crie{{type}}torta se não existir. Torta pode ser negativa (oh não, isso significaria que você deve torta a alguém!).> sell 15 blueberry -5 > buy 5 blueberry 0
exitImprimir "A loja de tortas fechou!" e saia do programa.
> exit The pie store has closed!
Esclarecimentos adicionais
- Se uma função não existente for chamada (a primeira palavra), imprima "Isso não é um comando válido".
- Se uma função existente é chamada com argumentos inválidos (as palavras após a primeira palavra), o comportamento do seu programa não importa. "Argumentos inválidos" inclui muitos argumentos, muito poucos argumentos,
{{n}}não sendo um número etc. - Torta é boa.
- Sua entrada deve ser diferenciada da sua saída. Se você estiver executando o programa na linha de comando / terminal / shell / outra coisa baseada em texto, deverá prefixar a entrada com "
> "(um sinal" maior que "e um espaço) ou alguma outra coisa com prefixo de entrada da shell. - Torta é boa.
Se todos esses esclarecimentos não forem bons o suficiente, aqui está um exemplo de saída:
> 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!Se você comprar torta / venda ea contagem líquida torna-se
0, você pode quer mantê-lo nolistou não, e você pode quer voltar0ouThere is no {{type}} pie!quandocountele.- Isso é código-golfe ; o código mais curto vence.
- Eu mencionei que a torta é boa?
buy 1 applee sell 1 apple. E seria então válido count appleretornar em 0vez de There is no apple pie!?
