Non riesci a vedere le emoji? Clicca qui .
Simulerai un distributore automatico. Gli elementi sono 56 emoji diversi, che possono essere rappresentati come due caratteri surrogati UTF-8, da: ๐ (U + D83C U + DF45) a ๐ผ (U + D83C U + DF7C). In HTML questi emoji possono essere rappresentati in forma UTF-16 come da & # x1F345 a & # x1F37C . Nella base 10 il primo carattere UTF-8 ha valore 55356 . Il valore del secondo carattere varia da 57157 a 57212 .Ecco un programma CJam che genera tutti gli emoji rilevanti. Per evitare confusione, questa sfida verrร segnata in caratteri, non in byte . Alcuni emoji sono di 2 caratteri, altri di 3. http://www.lettercount.com ti darร un conteggio accurato per questa sfida.
Prezzi ๐ต๐ต๐ต
Esistono 8 diverse categorie di prezzo:
- $ 1,00: ๐ ๐๐๐๐๐๐
- $ 1,50: ๐๐๐๐๐๐๐
- $ 2,00: ๐๐๐๐๐๐๐
- $ 2,50: ๐๐๐๐๐๐๐
- $ 3,00: ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง
- $ 3,50: ๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ
- $ 4,00: ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต
- $ 4,50: ๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ
Visualizzazione del distributore automatico
Questo รจ ciรฒ che l'utente vede all'avvio del programma e dopo aver effettuato un acquisto. Puoi usare numeri regolari invece di numeri emoji, ma i numeri emoji hanno il vantaggio di avere la stessa larghezza di altri emoji. Se usi numeri di emoji puoi sottrarre 14 caratteri dal tuo punteggio, perchรฉ i numeri di emoji sono 3 caratteri ciascuno.
1๏ธโฃ2๏ธโฃ3๏ธโฃ4๏ธโฃ5๏ธโฃ6๏ธโฃ7๏ธโฃ
A ๐
๐๐๐๐๐๐
B ๐๐๐๐๐๐๐
C ๐๐๐๐๐๐๐
D ๐๐๐๐๐๐๐
E ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง
F ๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ
G ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต
H ๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ
Se l'utente inserisce G5quella seleziona ๐ณ. L'immissione E6seleziona ๐ฆ.
Aggiunta di contanti ๐ธ๐ธ๐ธ
Per aggiungere denaro, l'utente deve inserire /e quindi il codice per una moneta o fattura. Le monete sono (N) ickel ($ 0,05), (D) ime ($ 0,10) e (Q) piรน alti ($ 0,25). Le fatture sono (O) ne ($ 1,00), (F) ive ($ 5,00), (T) en ($ 10,00). Ogni volta che l'utente aggiunge un conto o una moneta, il programma dovrebbe essere emesso Balance: [New Balance]. ร possibile aggiungere una sola banconota o moneta ogni volta. Ecco un esempio contenente tre righe di input:
/D
Balance: $0.10
/Q
Balance: $0.35
/F
Balance: $5.35
Selezione di articoli
L'utente seleziona un articolo inserendo il codice articolo, come B2o C3. Se l'utente non ha aggiunto denaro, il programma dovrebbe produrre Item Cost: [Cost of Item]. Se l'utente ha aggiunto denaro, ma non รจ sufficiente acquistare l'oggetto, l'output dovrebbe essere Insufficient Funds. Item Cost: [Cost of Item]. Se l'utente ha aggiunto abbastanza denaro, il programma dovrebbe produrre:Item at [Item Location] Purchased. Remaining Balance: [Balance - Cost of Item] . Quindi sulla sua stessa linea, stampa le emoji dell'articolo acquistato. Quindi stampare l'intero distributore automatico (vedere "Visualizzazione del distributore automatico") con l'articolo acquistato sostituito con ๐ซ (U + D83D U + DEAB) Base 10: (55357 57003).
Terminare il programma
Se l'utente acquista un oggetto che porta il suo saldo a $ 0,00, il programma dovrebbe terminare automaticamente. In alternativa, se l'utente inserisce "Fine" in qualsiasi momento, il programma deve fornire all'utente il saldo residuo nel resto. Il cambiamento deve essere solo in Nichel, Dimes e Quarters e deve essere il minor numero possibile di monete. Ad esempio, se il saldo rimanente รจ $ 1,45, l'output dovrebbe essere QQQQQDD.
Esecuzione del campione
(L'ingresso inizia con "-")
1๏ธโฃ2๏ธโฃ3๏ธโฃ4๏ธโฃ5๏ธโฃ6๏ธโฃ7๏ธโฃ
A ๐
๐๐๐๐๐๐
B ๐๐๐๐๐๐๐
C ๐๐๐๐๐๐๐
D ๐๐๐๐๐๐๐
E ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง
F ๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ
G ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต
H ๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ
-E1
Item Cost: $3.00
-/F
Balance: $5.00
-E1
Item at E1 Purchased. Remaining Balance: $2.00
๐ก
1๏ธโฃ2๏ธโฃ3๏ธโฃ4๏ธโฃ5๏ธโฃ6๏ธโฃ7๏ธโฃ
A ๐
๐๐๐๐๐๐
B ๐๐๐๐๐๐๐
C ๐๐๐๐๐๐๐
D ๐๐๐๐๐๐๐
E ๐ซ๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง
F ๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ
G ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต
H ๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ
-Done
QQQQQQQQ
Codici non validi
- Se l'input inizia con
/ma non รจ un input di denaro valido, outputMoney not Accepted. - Se l'input รจ un articolo che รจ giร stato acquistato, output
Item out of stock - Se l'input รจ una combinazione cifra-lettera che non rientra nell'intervallo (come
A0oJ2, genera "Codice non valido" - Per tutti gli altri input non validi, output "Errore"
Bonus (-15%): Jam
Quando vendi un articolo, c'รจ una probabilitร del 10% che la macchina si inceppi e l'oggetto si blocca. Uscita JAM!!!una volta. In questo caso l'utente deve inserire "punch" o "kick". Ogni volta che l'utente lo fa, c'รจ una probabilitร del 20% che l'articolo si stacchi e si venda normalmente. Fino all'eliminazione dell'inceppamento, gli unici input riconosciuti sono "punch" e "kick". Tutti gli altri input non fanno nulla. Ecco un esempio:
-A4
Item at A4 purchased. Remaining Balance: $1.00
JAM!!!
-punch
-kick
-kick
-punch
-punch
๐
(L'inceppamento รจ stato eliminato. Riprendi normalmente.)
Bonus (-10%): ID
Se l'utente tenta di acquistare una bevanda alcolica (qualsiasi articolo nell'ultima riga tranne il biberon), รจ necessario richiedere la prova dell'etร . Per fare ciรฒ, chiedi all'utente di moltiplicare due numeri casuali tra 13 e 19 (incluso). Uscita ID required: [13-19]x[13-19] = ?. Se l'utente risponde correttamente, l'acquisto puรฒ essere eseguito. In caso contrario, stampa ๐ (U + D83D U + DD1E) base 10: (55357 56606)
Sfida alternativa: Minecraft
Questa sfida sembra qualcosa di possibile in Minecraft. Per creare correttamente una versione di Minecraft di questo programma, il giocatore deve
- Avere una griglia 8x7 per selezionare tra 56 oggetti unici
- Essere in grado di aggiungere denaro al saldo (forse utilizzare diversi tipi di pietre per le diverse denominazioni sopra descritte.)
- Fornisci all'utente l'oggetto che seleziona se ha messo abbastanza "denaro"
- Restituire all'utente la quantitร appropriata di modifica alla fine.
Modalitร di compatibilitร
Posso solo inserire input all'inizio del programma
- Non preoccuparti, puoi creare un programma che prenda in considerazione tutti gli input. Se il programma non รจ stato terminato dopo aver valutato tutti gli input, supporre che alla fine venga chiamato "Fine". Se segui questo metodo, non avrai diritto a nessun bonus.
Non riesco a visualizzare / emettere emoji
- Puoi copiare e incollare i tuoi input e output in questo frammento di stack (o qui ). Puรฒ comprendere sia emoji unicode che codici HTML per emoji. Se l'output sembra corretto in questa pagina, il programma passa. Prova a incollare alcuni degli input / output di esempio per vedere come appare.
function parse() {
var o = document.getElementById("output");
var text = document.getElementById("in").value;
o.innerHTML = text.replace(/\n/g,"<br/>").replace(/ /g," ");
twemoji.parse(o);
}
<head>
<script src="//twemoji.maxcdn.com/twemoji.min.js"></script>
</head>
<body>
<h1>Emoji to Image</h1>
<textarea id="in" rows="10" cols="50"></textarea>
<input type="submit" onclick="parse()">
<div id="output"></div>
</body>
Ecco una versione abbreviata della modalitร di compatibilitร del display del distributore automatico che puoi testare nello snippet dello stack:
1⃣2⃣3⃣4⃣5⃣...
A🍅🍆🍇🍈🍉...
B
...
Posso emettere emoji, ma non su STDOUT.
- Apparentemente, il Terminale di Mac OS X รจ l'unico in grado di emettere emoji. Se non sei in grado di emettere emoji nel tuo terminale, le altre opzioni sono
- Invia tutto l'output a un file.
- Visualizza tutto l'output in una finestra.
- Usa la tecnica descritta in "Non riesco a visualizzare / produrre emoji".
- Apparentemente, il Terminale di Mac OS X รจ l'unico in grado di emettere emoji. Se non sei in grado di emettere emoji nel tuo terminale, le altre opzioni sono
$simbolo fa parte del set di caratteri ASCII, quindi รจ sicuro supporre che quasi tutte le tastiere e le lingue possano gestirlo. ร l'unico simbolo di valuta nel set di caratteri ASCII a 7 bit. Di conseguenza, altri simboli come il simbolo GBP o il simbolo EUR โฌ possono essere erroneamente resi a causa di codifiche di stringa incompatibili, ma praticamente non succede mai $.
$ simbolo ha un significato speciale nella maggior parte dei linguaggi di programmazione, quindi non averlo disponibile sulla tastiera sarebbe una seria limitazione. Sto scrivendo questo sulla mia tastiera spagnola ed รจ in realtร piรน facile ottenere $ (maiusc + 4) rispetto a โฌ (alt gr + E) in modo da poter vedere che quest'ultimo simbolo รจ stato aggiunto come ripensamento.
$ can be replaced with your local currencynon ha molto senso se si richiede che le monete siano (N) ickels (D) imes e (Q) uarters. Ti suggerisco di rimuoverlo perchรฉ aggiunge confusione.