À l'époque classique de Starbucks, avant ces nouvelles imprimantes d'autocollants et de scanners palmtop de casque sans fil, dans les jours grisants de 2000, Starbucks avait un système concis pour décrire les boissons avec une syntaxe stricte et une forme codée qui l'accompagne.
Verticalement sur la tasse, il y a une série de boîtes étiquetées qui peuvent contenir certaines valeurs .:
Decaf
[ ] -blank- X 1/2 1/3 2/3
Shots
[ ] -blank- 0 1 2 3 ... 20 followed by S T G V
Syrup
[ ] -blank- V M C H
Milk
[ ] -blank- Wh % N B
Custom
[ ] -blank- ((-|x)?(F|WC|M|CR) )+
Drink
[ ] E EM ECP A L C CM
Mais nous utiliserons une forme horizontale pour une manipulation plus facile. Ce sont les noms des 6 champs de l'entrée qui peuvent être n'importe quelle forme pratique. Les exemples ici sont de simples CSV. Le champ Personnalisé et le champ Sirop peuvent chacun être une concaténation de plusieurs valeurs. Vous pouvez utiliser n'importe quel sous-délimiteur pratique. Les exemples ici utilisent l'espace. Le champ Shots est également une concaténation d'un nombre (possible) et une désignation de la taille de la tasse (qui est implicite dans la tasse physique mais tient naturellement à cet endroit dans l'encodage).
Les valeurs du champ Decaf sont traduites en mots comme celui-ci
-blank- -nothing-
X "decaf"
1/2 "half-caf"
1/3 "one-third-caf"
2/3 "two-thirds-caf"
Logiquement, les valeurs fractionnaires ne sont autorisées que lorsque le nombre de tirs est divisible par le dénominateur; mais pour ce défi, il n'est pas nécessaire de détecter ou de diagnostiquer cette erreur.
Le champ Shots doit être divisé en sa composante numérique (si présente) et l'identificateur de taille. Le numéro doit être affiché sous forme de tuple latin: simple, double, triple, quadruple, quintuple, au7-tuple16-tuple - delà de 5, il suffit d'imprimer le numéro et le suffixe "-tuple", c'est-à-dire. , . Les désignations de taille sont:
S short
T tall
G grande
V venti
Par exemple.
2T double tall
3G triple grande
Le champ Sirop peut contenir un ou plusieurs jetons de nombre / code de lettre facultatifs. Le nombre maximum d'un sirop est de 20. Même cela, c'est trop. LOL.
V vanilla
C caramel
M mocha
H hazelnut
Par exemple.
2V 2C two vanilla two caramel
H hazelnut
M H 1V mocha hazelnut one vanilla
Le champ Lait peut contenir l' un des éléments suivants.
Wh whole-milk
% two-percent
N skim
B breve
Le champ personnalisé peut contenir un ou plusieurs modificateurs avec option xou -signe.
x extra F foam
- no WC whip
M mocha drizzle
CR caramel drizzle
Le champ Boisson contient un identifiant de boisson.
E espresso
EM espresso macchiato
ECP espresso con panna
A americano
L latte
C cappuccino
CM caramel macchiato
Tout champ peut être vide, à l'exception de la désignation de la taille et de l'identifiant de la boisson.
Exemples.
,3G,V,Wh,,L => triple grande vanilla whole-milk latte
X,2T,,N,,L => decaf double tall skim latte
1/2,V,,,,CM => half-caf venti caramel macchiato
2/3,3V,3V,B,WC,L => two-thirds-caf triple venti three vanilla breve whip latte
,G,,,xCR,CM => grande extra caramel drizzle caramel macchiato
X,4T,2M 2C,B,xWC -F xM,C =>
decaf quadruple tall two mocha two caramel breve extra whip no foam extra mocha drizzle cappuccino
Il n'est pas nécessaire de diagnostiquer des concoctions erronées ou illogiques telles qu'un "cappuccino sans mousse ...".
Complication supplémentaire
Pour les boissons uniquement avec le mot espresso, le numéro singledoit être remplacé par soloet doubledoit être remplacé par doppio. Et la taille peut être non spécifiée et omise. De plus, juste pour la espressoboisson nue elle-même, si la seule autre spécification est l'un de ces deux nombres de tirs spécialement remplacés, alors le mot espressolui-même doit être omis.
,2,1V,B,,EM => doppio one vanilla breve espresso macchiato
,1,,,,E => solo
,2,,,,E => doppio
,3,,,,E => triple espresso
Observations supplémentaires sur la «lecture d'une tasse»
Cette partie n'est pas une exigence pour ce défi mais peut être un raffinement utile dans l'application de ce type de système verbalisé dans d'autres domaines.
J'ai mentionné la syntaxe au tout début, et en appliquant le schéma aux flux entrants de mots, les commandes pouvaient être transmises verbalement par plusieurs preneurs de commandes au barista faisant des boissons. Le cadre approximatif SIZE .... DRINKoffre une démarcation entre plusieurs ordres prononcés simultanément. Il y a donc une tendance à faire de tous les attributs intérieurs des phrases adjectivales, de sorte que l'ordre a également une structure de phrases nominales en anglais valide. Ainsi whipest souvent parlé with whipou whippedet foamest souvent parlé foamyou with foam.
Ainsi, pour certains baristas d'autrefois , ils ne "vous corrigent " pas lorsqu'ils répètent l'ordre au bon format ( enfin, ... parfois ). Ils organisent simplement les informations dans le but de se souvenir exactement de tous les détails. En schématisant les informations, une commande de boisson entière devient une seule unité dans le but d'appliquer le nombre magique 7 plus ou moins 2 . Ainsi, un barista avec cette compétence peut tenir 5-9 ordres dans sa tête à condition que les autres distractions ne consomment pas trop d'espace pour la tête. :)