Codice-Bowling
Sei stato assunto da Brunswick Bowling per creare un semplice programma per produrre il testo Code Bowling
sui loro monitor. Questa compagnia vale un bel soldo e pensi di poterli ingannare per un bel po ' di soldi.
La descrizione del lavoro afferma chiaramente che pagano in base al punteggio e sei abbastanza sicuro di poter manipolare il loro sistema di punteggio a tuo vantaggio e ottenere il più grande controllo di paga possibile da questi ragazzi. Per fare ciò dovrai impacchettare più codice possibile nel tuo programma / funzione, anche se il loro sistema di punteggio è progettato per impedirti di farlo.
Esci dai tuoi salvadanai, codifichiamo!
Sfida
La sfida è semplicemente produrre il testo Code Bowling
, esattamente come è scritto qui, con il punteggio più alto possibile. (Vedi la sezione: Sistema di punteggio in basso)
Le nuove righe iniziali e finali (interruzioni di riga) sono accettabili.
Il tuo codice può essere un intero programma o solo una funzione eseguibile.
Regole
Obbligatorio: questa sfida consiste nell'utilizzare il bowling di codice: regole comuni, revisione 1.0.0 ; Vedi Meta per i dettagli.
Carattere: rapporto byte
Nel bowling di codice è preferibile un conteggio di caratteri rispetto a un conteggio di byte. Il ragionamento ovvio per questo è che i caratteri unicode multi-byte (es. 🁴) possono essere usati al posto dei caratteri unicode single-byte per aumentare il numero di byte e renderanno il bowling più su chi rinomina la maggior parte delle variabili con caratteri unicode high-byte piuttosto di chi crea strategicamente un codice complesso significativo.Nomi di variabili / funzioni / oggetti
Tutti i nomi di variabili (o puntatori di oggetti, nomi di funzioni, ecc.) Devono avere una lunghezza di 1 carattere. L'unico tempo accettabile per utilizzare i nomi delle variabili a 2 caratteri è dopo che sono state utilizzate tutte le possibili variabili a 1 carattere. L'unico tempo accettabile per utilizzare i nomi delle variabili a 3 caratteri è dopo che sono state utilizzate tutte le possibili variabili a 2 caratteri. Eccetera.Codice non utilizzato
È necessario utilizzare tutto il codice. Ciò significa che il programma non deve riuscire a completare sempre correttamente l'attività se viene rimosso / rimosso qualsiasi singolo carattere (o serie variabile di caratteri). Naturalmente, un sottoinsieme del programma non dovrebbe essere in grado di completare l'attività da solo senza il resto del programma.Commenti I
commenti non sono consentiti per il conteggio dei caratteri, a meno che non siano utilizzati in qualche modo dal programma / funzione.
Sistema di punteggio:
Pangram Challenge:
Un pangram è una frase che usa ogni lettera almeno una volta. (La rapida volpe marrone salta sopra il cane pigro).
Questo tipo di sfida ha un sistema di punteggio progettato in cui un pangram perfetto raggiungerebbe il punteggio massimo teorico (anche se non è necessario utilizzare ogni personaggio almeno una volta). Inoltre, l'utilizzo di qualsiasi personaggio più di una volta inizierà a incorrere in una penalità. Questa sfida si espande anche oltre i caratteri alfabetici.
Punteggio metrico:
- Ogni personaggio usato aumenta il tuo punteggio di 1.
- L'uso ripetuto di qualsiasi carattere alfanumerico (az, AZ, 0-9) comporterà una detrazione di 3 punti per ripetizione (il primo utilizzo non comporta una detrazione).
- L'uso ripetuto della punteggiatura di base
([!?.-,":';])
- comprese le parentesi - comporterà una detrazione di 2 punti per ripetizione.- L'uso ripetuto di altri caratteri ASCII
{`~@#$%^&*_+=|\/><}
- comprese le parentesi graffe - comporterà una detrazione di 4 punti per ripetizione.- L'uso di spazi, tabulazioni e newline comporterà una detrazione di 1 punto per uso. Cioè, non contano ai fini del totale dei personaggi.
- I personaggi non menzionati sopra (Personaggi esotici) comporteranno una detrazione di 1 punto per uso. Cioè, non contano ai fini del totale dei personaggi.
Strumento per il punteggio:
È stato creato un widget di punteggio automatico che può essere trovato qui .
Questa è una variante di bowling . Vince il programma con il punteggio più alto! (Dato che c'è un punteggio massimo di 94
, chiunque lo raggiunga per primo (se può essere raggiunto) verrà contrassegnato come risposta accettata, anche se altri sono liberi di continuare a rispondere per divertimento)