Sommaire
Le golf de code est bon. La tarte est bonne . Lorsque vous associez les deux, seules les bonnes choses peuvent arriver.
Caractéristiques
Dans ce défi, vous gérerez une boutique de tarte. L'utilisateur sera en mesure de saisir cinq commandes différentes: list, count, buy, sell, et exit. Voici les spécifications de chacun:
listImprimez une liste de toutes les tartes possédées et combien. Séparez avec
|et garnissez avec un espace de chaque côté.|s doivent être alignés. Le montant du gâteau peut être négatif (cela signifie que vous devez un gâteau à quelqu'un:(). Par exemple:| apple | 500 | | blueberry | 2 | | cherry | -30 |
count [type]Imprimez le nombre de
{{type}}tartes. Imprimer "Il n'y a pas de{{type}}tarte!" s'il n'y en a pas.{{type}}correspondra toujours à l'expression régulière\w+(c'est-à-dire qu'il s'agira toujours d'un seul mot). Par exemple, si j'avais le nombre de tartes indiqué dans la liste d'exemples ci-dessus, alors> count apple 500 > count peach There is no peach pie!
buy [n] [type]Ajoutez
{{n}}au nombre de{{type}}tartes et imprimez-le. Créez une{{type}}tarte si elle n'existe pas.{{n}}correspondra toujours à l'expression rationnelle[0-9]+(c.-à-d., ce sera toujours un nombre). Voici un autre exemple (avec le même inventaire à tarte que les exemples précédents):> count blueberry 2 > buy 8 blueberry 10
sell [n] [type]Soustrayez
{{n}}le nombre de{{type}}tartes et imprimez-le. Créez une{{type}}tarte si elle n'existe pas. La tarte peut être négative (oh non, cela voudrait dire que vous devez une tarte à quelqu'un!).> sell 15 blueberry -5 > buy 5 blueberry 0
exitImprimer "Le magasin de tarte a fermé!" et quittez le programme.
> exit The pie store has closed!
Précisions supplémentaires
- Si une fonction inexistante est appelée (le premier mot), imprimez «Ce n'est pas une commande valide».
- Si une fonction existante est appelée avec des arguments invalides (les mots après le premier mot), le comportement de votre programme n'a pas d'importance. "Arguments invalides" comprend trop d'arguments, trop peu d'arguments,
{{n}}n'étant pas un nombre, etc. - La tarte est bonne.
- Votre entrée doit être distinguée de votre sortie. Si vous exécutez le programme sur la ligne de commande / terminal / shell / autre élément textuel, vous devez préfixer l'entrée avec "
> "(un signe" supérieur à "et un espace) ou un autre élément de préfixe d'entrée de shell. - La tarte est bonne.
Si toutes ces clarifications ne sont pas suffisantes, voici quelques exemples de sortie:
> 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!Si vous achetez / vendez une tarte et que le nombre net devient
0, vous pouvez le conserver dans lelistou non, et vous pouvez soit le retourner,0soitThere is no {{type}} pie!quand vouscountle souhaitez .- C'est du code-golf ; le code le plus court gagne.
- Ai-je mentionné que la tarte est bonne?
buy 1 appleet sell 1 apple. Et serait-il alors valable pour count applerevenir à la 0place de There is no apple pie!?
