Pada masa-masa klasik Starbucks sebelum printer-stiker bermodel baru ini dan perangkat nirkabel melalui headset palmtop scanner, pada masa-masa sulit tahun 2000-an, Starbucks memiliki sistem ringkas untuk menggambarkan minuman dengan sintaksis yang ketat dan bentuk yang disandikan.
Secara vertikal pada cangkir ada serangkaian kotak berlabel yang mungkin berisi nilai-nilai tertentu .:
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
Tapi kami akan menggunakan formulir horizontal untuk memudahkan manipulasi. Ini adalah nama-nama dari 6 bidang input yang mungkin merupakan bentuk yang mudah. Contoh di sini adalah CSV sederhana. Bidang Kustom dan bidang Sirup masing-masing dapat merupakan gabungan dari beberapa nilai. Anda dapat menggunakan subtitle yang mudah. Contoh di sini menggunakan ruang. Bidang Bidikan juga merupakan gabungan dari nomor (mungkin) dan penetapan ukuran cangkir (yang tersirat dalam cangkir fisik tetapi secara alami cocok di tempat ini dalam penyandian).
Nilai bidang Decaf diterjemahkan ke dalam kata-kata seperti ini
-blank- -nothing-
X "decaf"
1/2 "half-caf"
1/3 "one-third-caf"
2/3 "two-thirds-caf"
Secara logis, nilai fraksional hanya diperbolehkan ketika jumlah tembakan dapat dibagi oleh penyebut; tetapi untuk tantangan ini tidak perlu mendeteksi atau mendiagnosis kesalahan ini.
Bidang Bidikan harus dipecah menjadi komponen numeriknya (jika ada) dan pengidentifikasi ukuran. Angka tersebut harus ditampilkan dalam bentuk latin tuple: single, double, triple, quadruple, quintuple, di atas 5 cukup cetak angka dan akhiran "-tuple" yaitu. 7-tuple,16-tuple . Sebutan ukuran adalah:
S short
T tall
G grande
V venti
Misalnya.
2T double tall
3G triple grande
Bidang Syrup dapat berisi satu atau lebih dari beberapa token kode angka / huruf opsional. Jumlah maksimum sirup adalah 20. Bahkan itu terlalu banyak. LOL.
V vanilla
C caramel
M mocha
H hazelnut
Misalnya.
2V 2C two vanilla two caramel
H hazelnut
M H 1V mocha hazelnut one vanilla
Bidang susu dapat berisi salah satu dari yang berikut ini.
Wh whole-milk
% two-percent
N skim
B breve
Bidang Kustom dapat berisi satu atau beberapa pengubah dengan tanda xatau opsional -.
x extra F foam
- no WC whip
M mocha drizzle
CR caramel drizzle
Bidang Minuman berisi satu id minuman.
E espresso
EM espresso macchiato
ECP espresso con panna
A americano
L latte
C cappuccino
CM caramel macchiato
Setiap bidang mungkin kosong kecuali untuk penunjukan ukuran dan id minuman.
Contohnya.
,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
Tidak perlu mendiagnosis ramuan yang keliru atau tidak logis seperti "tidak berbusa ... cappuccino *.
Komplikasi tambahan
Untuk hanya minuman dengan kata espresso, nomor singleharus diganti solodan doubleharus diganti oleh doppio. Dan ukurannya mungkin tidak ditentukan dan dihilangkan. Juga, hanya untuk espressominuman kosong itu sendiri, jika satu-satunya spesifikasi lain adalah salah satu dari dua angka tembakan yang diganti secara khusus ini, maka kata espressoitu sendiri harus dihilangkan.
,2,1V,B,,EM => doppio one vanilla breve espresso macchiato
,1,,,,E => solo
,2,,,,E => doppio
,3,,,,E => triple espresso
Pengamatan tambahan tentang 'membaca cangkir'
Bagian ini bukan persyaratan untuk tantangan ini, tetapi mungkin merupakan penyempurnaan yang berguna dalam menerapkan sistem verbalisasi semacam ini di domain lain.
Saya sebutkan sintaks pada awalnya, dan dengan menerapkan skema ke aliran kata yang masuk, pesanan dapat ditransmisikan secara verbal oleh beberapa pengambil pesanan ke barista membuat minuman. Kerangka kerja kasar SIZE .... DRINKmemberikan demarkasi antara beberapa perintah yang diucapkan sekaligus. Dengan demikian ada kecenderungan untuk menjadikan semua atribut interior sebagai frase kata sifat sehingga urutannya juga memiliki struktur frase nomina bahasa Inggris yang valid. Begitu whipsering diucapkan with whipatau whippeddan foamsering diucapkan foamyatau with foam.
Jadi, untuk beberapa barista lama , mereka tidak "mengoreksi Anda" ketika mereka mengulangi urutan dalam format yang tepat ( yah, ... kadang-kadang ). Mereka hanya mengatur informasi dengan tujuan mengingat semua detail dengan tepat. Dengan menyusun informasi, seluruh pesanan minuman menjadi satu unit untuk tujuan menerapkan angka ajaib 7 plus atau minus 2 . Jadi seorang barista dengan keterampilan ini dapat menahan 5-9 pesanan di kepala mereka asalkan gangguan lain tidak mengkonsumsi ruang kepala terlalu banyak. :)