Code-Bowling
Brunswick Bowling lo contrató para crear un programa simple para generar el texto Code Bowling
en sus monitores. Esta empresa vale un centavo y cree que puede estafarlos por un poco de dinero.
La descripción del trabajo establece claramente que pagan en base a puntajes y usted está bastante seguro de que puede manipular su sistema de puntaje para su ventaja y obtener el mayor cheque de pago posible de estos tipos. Para hacerlo, será necesario que empaque todo el código que pueda en su programa / función, a pesar de que su sistema de puntuación está diseñado para evitar que lo haga.
¡Saca tus huchas, codifiquemos!
Desafío
El desafío es simplemente generar el texto Code Bowling
, exactamente como está escrito aquí, con el puntaje más alto posible. (Consulte la sección: Sistema de puntuación a continuación)
Las nuevas líneas iniciales y finales (saltos de línea) son aceptables.
Su código puede ser un programa completo o simplemente una función ejecutable.
Reglas
Obligatorio: este desafío está utilizando Code-Bowling: Reglas comunes, Revisión 1.0.0 ; Ver Meta para más detalles.
Carácter: Relación de bytes
En Code-Bowling se prefiere un conteo de caracteres sobre un conteo de bytes. El razonamiento obvio para esto es que los caracteres unicode de varios bytes (p. Ej. que quien más estratégicamente crea un código complejo significativo.Nombres de variables / funciones / objetos
Todos los nombres de variables (o punteros de objetos, nombres de funciones, etc.) deben tener 1 carácter. El único momento aceptable para usar nombres de variables de 2 caracteres es después de que se hayan utilizado todas las posibles variables de 1 carácter. El único momento aceptable para usar nombres de variables de 3 caracteres es después de que se hayan utilizado todas las variables de 2 caracteres posibles. Etc.Código no utilizado Se
debe usar todo el código. Lo que significa que el programa debe fallar para completar siempre la tarea correctamente si se elimina / elimina cualquier carácter individual (o conjunto (s) variable (s) de caracteres). Naturalmente, un subconjunto del programa no debería poder completar la tarea por sí solo sin el resto del programa.Comentarios
No se permiten comentarios sobre el recuento de caracteres, a menos que su programa / función lo utilice de alguna manera.
Sistema de puntuación:
Pangram Challenge:
Un pangrama es una oración que usa cada letra al menos una vez. (El rápido zorro marrón salta sobre el perro perezoso).
Este tipo de desafío tiene un sistema de puntuación diseñado en el que un pangrama perfecto alcanzaría la puntuación máxima teórica (aunque no es necesario que uses todos los personajes al menos una vez). Además, usar cualquier personaje más de una vez comenzará a incurrir en una penalización. Este desafío también se expande a más que solo los caracteres alfabéticos.
Métrica de puntuación:
- Cada personaje utilizado aumenta tu puntuación en 1.
- El uso repetido de cualquier carácter alfanumérico (az, AZ, 0-9) dará como resultado una deducción de 3 puntos por repetición (el primer uso no resulta en una deducción).
- El uso repetido de la puntuación básica
([!?.-,":';])
, incluidos los corchetes, dará como resultado una deducción de 2 puntos por repetición.- El uso repetido de otros caracteres ASCII
{`~@#$%^&*_+=|\/><}
, incluidos los corchetes, dará como resultado una deducción de 4 puntos por repetición.- El uso de espacios, pestañas y líneas nuevas dará como resultado una deducción de 1 punto por uso. Es decir, no cuentan para el carácter total.
- Los caracteres no mencionados anteriormente (Caracteres exóticos) resultarán en una deducción de 1 punto por uso. Es decir, no cuentan para el carácter total.
Herramienta de puntuación:
Se ha creado un widget de puntuación automatizado y se puede encontrar aquí .
Esta es una variante de código de boliche . ¡El programa con la puntuación más alta gana! (Dado que hay un puntaje máximo de 94
, quien lo alcance primero (si se puede alcanzar) se marcará como la respuesta aceptada, aunque otros son libres de seguir respondiendo por diversión)