Podsumowanie
Kod golfa jest dobry. Ciasto jest dobre . Po połączeniu tych dwóch rzeczy mogą się zdarzyć tylko dobre rzeczy.
Dane techniczne
W tym wyzwaniu będziesz zarządzać sklepem z ciastkami. Użytkownik będzie mógł wprowadzić pięć różnych poleceń: list, count, buy, sell, i exit. Oto specyfikacje dla każdego:
listWydrukuj listę wszystkich posiadanych ciast i ich liczby. Oddziel
|i pad z odstępem po obu stronach.|s musi być wyrównany. Ilość ciasta może być ujemna (to znaczy, że jesteś komuś winien ciasto:(). Na przykład:| apple | 500 | | blueberry | 2 | | cherry | -30 |
count [type]Wydrukuj, ile jest
{{type}}ciast. Drukuj „Nie ma{{type}}ciasta!” jeśli nie ma.{{type}}zawsze będzie pasować do wyrażenia regularnego\w+(tzn. zawsze będzie to jedno słowo). Na przykład, gdybym miał liczbę ciast pokazanych na powyższej przykładowej liście, wtedy> count apple 500 > count peach There is no peach pie!
buy [n] [type]Dodaj
{{n}}do liczby{{type}}ciast i wydrukuj ją. Utwórz{{type}}ciasto, jeśli nie istnieje.{{n}}zawsze będzie pasować do wyrażenia regularnego[0-9]+(tzn. zawsze będzie liczbą). Oto inny przykład (z takim samym zapasem ciasta jak w poprzednich przykładach):> count blueberry 2 > buy 8 blueberry 10
sell [n] [type]Odejmij
{{n}}od liczby{{type}}ciast i wydrukuj ją. Utwórz{{type}}ciasto, jeśli nie istnieje. Ciasto może być ujemne (o nie, to znaczy, że jesteś winien komuś ciasto!).> sell 15 blueberry -5 > buy 5 blueberry 0
exitDrukuj „Sklep z ciastami został zamknięty!” i wyjdź z programu.
> exit The pie store has closed!
Dalsze wyjaśnienia
- Jeśli wywoływana jest nieistniejąca funkcja (pierwsze słowo), wydrukuj „To nie jest poprawne polecenie”.
- Jeśli wywoływana jest istniejąca funkcja z niepoprawnymi argumentami (słowa po pierwszym słowie), zachowanie programu nie ma znaczenia. „Nieprawidłowe argumenty” obejmują zbyt wiele argumentów, zbyt mało argumentów,
{{n}}nie będący liczbą itp. - Ciasto jest dobre.
- Twój wkład musi być odróżniony od twoich wyników. Jeśli uruchamiasz program w wierszu poleceń / terminalu / powłoce / innej rzeczy opartej na tekście, musisz poprzedzić wejście
> "znakiem „ (znak„ większy niż ”i spacją) lub inną rzeczą przedrostkową. - Ciasto jest dobre.
Jeśli wszystkie te wyjaśnienia nie są wystarczająco dobre, oto kilka przykładowych wyników:
> 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!W przypadku zakupu / sprzedaży ciasto i hrabia netto staje się
0, można też przechowywać go wlist, czy nie, i można albo powrócić0lubThere is no {{type}} pie!kiedycountgo.- To jest golf golfowy ; najkrótszy kod wygrywa.
- Czy wspomniałem, że ciasto jest dobre?
buy 1 applei sell 1 apple. I czy w takim przypadku uzasadnione count applebyłoby zwrócenie 0zamiast There is no apple pie!?
