Резюме
Код гольф это хорошо. Пирог это хорошо . Когда вы соединяете их вместе, могут случиться только хорошие вещи.
Характеристики
В этом испытании вы будете управлять магазином пирогов. Пользователь будет иметь возможность вводить пять различных команд: 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его.- Это код-гольф ; самый короткий код выигрывает.
- Я упоминал, что пирог хорош?
buy 1 appleи sell 1 apple. И будет ли тогда правильным count appleвозвращение 0вместо There is no apple pie!?
