introduzione
Per farla breve: qualche giorno fa ho iniziato a lavorare a maglia una calza per caso e la struttura piuttosto logica dei punti semplici mi ha portato all'idea: perché non facciamo solo una calza ASCII?
Ingresso
L'input è un numero intero pari nell'intervallo [2,30].
Produzione
L'output è un calzino, ovviamente.
Struttura
Poiché utilizzeremo solo punti semplici che utilizzerai solo vper un punto verso il basso e >per un punto a destra. Vorrei spiegare l'intera struttura con un esempio per N=8:
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvv>>>
vvvvvv>>>>>>
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
- Il primo blocco è la parte superiore. Ha la larghezza
Ne l'altezzaN*1.5 - Successivamente inizia il tallone. Sottrai uno
vper riga dal lato destro fino ad avereN/2la larghezza. Quindi aggiungi leN/2righe con la larghezzaN/2sottostante per finire le maglie verso il basso. Si noti che fornisce un totale diN/2 + 1righe con la larghezzaN/2
prima parte:
vvvvvvvv //begin with width N
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv // N*1.5 times
vvvvvvv // reduce
vvvvvv
vvvvv
vvvv // till here
vvvv // repeat N/2 times
vvvv
vvvv
vvvv
- Ora iniziano i reparti a maglia. Si inizia con la prima riga ridotta, si riempie
>fino ad avere la larghezzaNe si aggiungono altri due. Continua quel processo inclusa la prima riga conN/2larghezza - Riempire le righe di sotto a quel livello e aggiungere
N*1.5volte>a quella - Lasciate le parti esterne come sono e aggiungetele sulla fila sotto la prima e sopra la lase altre due
>'sfino a quando non è finita
seconda parte:
vvvvvvvv
vvvvvvv>>> //fill to N and add two >
vvvvvv>>>>>> //repeat
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>> //till here
vvvv>>>>>>>>>>>>>>>>>>>>>>>> //fill to the row above and add N*1.5 times >
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row above
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row beneath
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
Regole
Le nuove righe finali sono ok.
Puoi scegliere tra lettere maiuscole o minuscole Vma deve essere coerente.
Questo è code-golf quindi vince il codice più breve in byte.
Casi test
N=2
vv
vv
vv
v>>>
v>>>>>>
N=4
vvvv
vvvv
vvvv
vvvv
vvvv
vvvv
vvv>>>
vv>>>>>>
vv>>>>>>>>>>>>
vv>>>>>>>>>>>>
N=6
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvv>>>
vvvv>>>>>>
vvv>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
N=12
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvv>>>
vvvvvvvvvv>>>>>>
vvvvvvvvv>>>>>>>>>
vvvvvvvv>>>>>>>>>>>>
vvvvvvv>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vo in modo Vintercambiabile? Presumo per il momento che vsia l'unico consentito, ma consentire Vavrà effetto sul conteggio dei byte