Odio il codice gonfio!
Quindi ho deciso di sostituire il mio sistema Windows 7 con una versione da golf. Tuttavia, so che non è facile, quindi costruiamo prima un prototipo. Prenderà un elenco di finestre dall'utente e le mostrerà usando un display pseudo-grafico sull'output standard.
Ad esempio: input dell'utente:
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
Le uscite di Code Golf® Window Manager ™:
┌──────────────┐
│ :::::::: ┌─────┴┐
│ │ ::::::::: ┌────┴┐
│ :::::::: └─┤: ┌───┴┐
│ :::::::::: └─┤ :::: ├┐
│ :::::::::::: └─┬──┘├┐
│ :::::::::::::: ├─┬─┘│
│ :::::::::::::: │ └──┘
│ │ ::::::::::::::
│ │ ::::::::::::::
└──────────────┼────┐
│ │ ::::
│ │ ::::
┌────┤ :::: │
│ │ :::: :::: │
└────┴────┘
Ingresso:
- Tratto da input standard (o, se il tuo sistema non ha
stdin, qualsiasi metodo che può fornire diverse righe di input) - Ogni riga contiene 4 numeri, delimitati da virgole - coordinate di una finestra
- Primi due numeri: angolo in alto a sinistra; ultimi due numeri: angolo in basso a destra
- Usando la
x,ynotazione
Produzione:
- Scrivilo nello standard output (o, se il tuo sistema non ha
stdout, tutto ciò che mostra testo monospaziato) - Utilizzare i singoli caratteri di disegno a riquadro dalla pagina di codice 437 per disegnare i confini della finestra
- Windows specificato in seguito nell'input oscura quelli specificati in precedenza
- Riempi le finestre con il carattere due punti:
: - Gli spazi iniziali e finali sono OK, purché non interrompano l'allineamento delle finestre
Appunti:
- Risoluzione massima che voglio supportare: 76 (orizzontale) per 57 (verticale)
- Non è necessario supportare input errati
- Numero massimo di finestre: 255 (se è necessario un limite)
- La mia
cmdshell di Windows 7 visualizza la tabella codici 437 caratteri per impostazione predefinita; se qualcuno ha un modo per farlo su Linux (usandoxtermo altro), descrivilo qui
Per riferimento, i codici dei caratteri sono:
┌da ─c4 ┬c2 ┐bf
│b3 :3a │b3 │b3
├c3 ─c4 ┼c5 ┤b4
└c0 ─c4 ┴c1 ┘d9
Totale: 12 personaggi diversi.
javascript:$('pre').css('line-height','1em')