Odio la hinchazón de código!
Así que he decidido reemplazar mi sistema Windows 7 por una versión de golf. Sin embargo, sé que no es fácil, así que construyamos un prototipo primero. Tomará una lista de ventanas del usuario y las mostrará usando una pantalla pseudográfica en la salida estándar.
Por ejemplo: entrada del usuario:
0,0,15,10 15,10,20,15 10,13,15,15 9,1,16,3 17,5,20,7 11,2,17,4 15,4,19,6 13,3,18,5
Las salidas de Code Golf® Window Manager ™:
┌──────────────┐
│ :::::::: ┌─────┴┐
│ :::::::: │: ┌────┴┐
│ :::::::: └─┤: ┌───┴┐
│ :::::::::: └─┤ :::: ├┐
│ :::::::::::: └─┬──┘├┐
│ :::::::::::::: ├─┬─┘│
│ :::::::::::::: │ └──┘
│ :::::::::::::: │
│ :::::::::::::: │
└──────────────┼────┐
│ :::: │
│ :::: │
┌────┤ :::: │
│ :::: │ :::: │
└────┴────┘
Entrada:
- Tomado de la entrada estándar (o, si su sistema no tiene
stdin, cualquier método que pueda proporcionar varias líneas de entrada) - Cada línea contiene 4 números, delimitados por comas - coordenadas de una ventana
- Primeros dos números: esquina superior izquierda; últimos dos números: esquina inferior derecha
- Usando
x,ynotación
Salida:
- Escríbalo en la salida estándar (o, si su sistema no tiene
stdout, cualquier cosa que muestre texto monoespaciado) - Use caracteres de dibujo de recuadros individuales de la página de códigos 437 para dibujar los límites de la ventana
- Windows especificado más tarde en la entrada oculta los especificados anteriormente
- Rellene las ventanas con el carácter de dos puntos:
: - Los espacios iniciales y finales están bien, siempre que no rompan la alineación de las ventanas
Notas:
- Resolución máxima que quiero admitir: 76 (horizontal) por 57 (vertical)
- No es necesario admitir entradas incorrectas
- Número máximo de ventanas: 255 (si necesita un límite)
- Mi
cmdshell de Windows 7 muestra la página de códigos 437 caracteres por defecto; Si alguien tiene una manera de hacerlo en Linux (usandoxtermo lo que sea), descríbalo aquí
Como referencia, los códigos de caracteres son:
┌da ─c4 ┬c2 ┐bf
│b3 :3a │b3 │b3
├c3 ─c4 ┼c5 ┤b4
└c0 ─c4 ┴c1 ┘d9
Total: 12 personajes diferentes.
javascript:$('pre').css('line-height','1em')