I birilli sono caramelle colorate in cui ci sono 5 gusti distinti; uva, mela verde, limone, arancia e fragola rappresentate rispettivamente da (p) urple, (g) reen, (y) ellow, (o) range e (r) ed. Mangiavo i birilli ordinando tutti i diversi colori e mangiandoli in sequenza. Dopo aver ottenuto alcuni strani sguardi in ufficio, ora faccio finta di mangiarli come una persona normale. Il tuo compito è emulare questo:
Il tuo codice (programma completo o funzione) riceverà una matrice di birilli (10x10) come input (in qualsiasi formato ragionevole). Questo array rappresenterà un mucchio di birilli non ordinati. Il tuo compito è di "mangiarli" dal tuo colore meno preferito a quello preferito. Il mio ordine preferito è uva, mela verde, limone, arancia, fragola, ma sei libero di scegliere qualsiasi ordine purché sia costantemente applicato (per favore, elenca le tue preferenze nella tua richiesta in modo che io possa giudicarti). Dopo aver mangiato ogni pezzo di caramella il tuo codice produrrà (nello stesso formato in cui prendi l'input) la pila rimanente con il pezzo mangiato sostituito da uno spazio. Ripeterai finché non rimarrà solo il tuo preferito. Puoi scegliere qualsiasi birillo da mangiare (può essere casuale o deterministico). Gli spazi finali devono essere mantenuti.
Ad esempio, la sequenza di output potrebbe apparire così (usando 5x5 per brevità e mostrando spazi come .)
start 1 2 3 4 5 n
.org. .org. .org. .org. .or.. .or.. ..r..
prgrg .rgrg .rgrg .rgrg .rgrg .r.rg .r.r.
gggpr gggpr ggg.r ggg.r ggg.r ggg.r ....r
oyyor oyyor oyyor oyyor oyyor oyyor ....r
.r.p. .r.p. .r.p. .r... .r... .r... .r...
Questo è code-golf , quindi vince il codice più breve in byte
TL; Regole DR:
- L'invio può essere un programma o una funzione completi
- L'input può essere preso in qualsiasi formato ragionevole (stringa, elenco, matrice, ecc.) Con qualsiasi metodo ragionevole (STDIN, argomenti di funzione, ecc.). Tuttavia, ci deve essere una certa delimitazione tra le righe
- L'output deve essere prodotto nello stesso formato dell'input con qualsiasi metodo ragionevole (STDOUT, ritorno di funzione, ecc.). L'output intermedio può o non può essere delimitato
- Il primo output deve essere il primo input
- Gli spazi finali devono essere preservati
- È possibile utilizzare qualsiasi ordine di colore (elenco nella risposta)
- Qualunque boccone del colore attuale può essere mangiato
- L'ultimo output deve essere solo il tuo colore e gli spazi preferiti
- Se possibile, includere un collegamento a un compilatore online per testare l'invio
