Questo è il codice golf. Per questa sfida, accetterò un metodo (non è necessario un programma completo), ma la firma del metodo conta per il conteggio dei byte e voglio vedere la firma completa (non un lamdba). L'input per il metodo è un array intero con 81 elementi. Il valore output / return del metodo è una stringa che rappresenta l'array come una scheda sudi ascii.
Se stai usando un linguaggio esoterico o qualcosa che assolutamente non ha metodi, puoi adattarti, ma se il linguaggio lo supporta affatto, voglio vedere che qualcosa potrebbe effettivamente essere inserito in un "vero" programma non golfato, anche se il il metodo stesso è un dolore con cui lavorare. Il requisito non ha lo scopo di bloccare linguaggi come Jelly o 05AB1E, ma di rendere più semplice per linguaggi come Java creare qualcosa che abbia senso per quella piattaforma.
Per l'input, i valori interi 1-9 dovrebbero avere significati ovvi. Uno 0 deve sempre essere interpretato come una cella vuota. Puoi anche interpretare qualsiasi altra cosa al di fuori dell'intervallo 1-9 come una cella vuota, ma ciò non è necessario. Il posizionamento dalla matrice al puzzle inizia in alto a sinistra e riempie ogni riga da sinistra a destra prima di passare alla riga successiva.
Per le scatole, voglio linee doppie attorno all'esterno e tra ciascuna regione 3x3 e linee singole tra altre celle. Questi dovrebbero essere disegnati con caratteri di disegno al tratto (se il tuo formato I / O rappresenta le stringhe come una sequenza di byte anziché una sequenza di caratteri, dovresti rappresentarli in una codifica ben nota come UTF-8 o codepage 347).
Per questa sfida, NON ti sto chiedendo di generare il puzzle di sudoku. Questo è l'input per la funzione. NON ti sto chiedendo di risolvere il puzzle. Ti sto solo chiedendo di produrre una stringa per "disegnare" ciò che ti viene dato (nel minor numero di byte possibile).
Esempio di input:
Valori per l'array:
{ 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0}
I valori possono usare qualsiasi meccanismo naturale per la tua lingua: int [], ArrayList, sequenza, tupla, stringa di cifre, qualunque cosa, purché tu abbia un valore nell'input per ogni cella (nessuna mappa per le sole celle popolate nelle posizioni ). Ricorda che l'ingresso è fornito ... non fa parte del conteggio dei byte. Ma l'input potrebbe rappresentare qualsiasi puzzle di sudoku e il puzzle potrebbe anche non avere una soluzione valida . Supponi che il puzzle sia stampabile. Non otterrai qualcosa con 82 elementi, per esempio.
Puoi anche assumere un carattere a larghezza fissa ragionevole.
Uscita corrispondente:
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ║ 8 │ 5 │ ║ │ │ 2 ║ 4 │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 7 │ 2 │ ║ │ │ ║ │ │ 9 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ │ 4 ║ │ │ ║ │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ║ │ │ ║ 1 │ │ 7 ║ │ │ 2 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 3 │ │ 5 ║ │ │ ║ 9 │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ 4 │ ║ │ │ ║ │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ║ │ │ ║ │ 8 │ ║ │ 7 │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ 1 │ 7 ║ │ │ ║ │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ │ ║ │ 3 │ 6 ║ │ 4 │ ║ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝