Assicurati di vedere l'altra sfida, Reverse ASCII character map !
Il set di caratteri ASCII (American Standard Code for Information Interchange) è lo standard di codifica dei caratteri più utilizzato. I codici ASCII rappresentano il testo nei computer, nelle apparecchiature di telecomunicazione e in altri dispositivi.
Sfida
La tua sfida è stampare una mappatura del set di caratteri ASCII mentre l'utente li inserisce. GIF:
Dopo che l'utente ha inserito tutti i caratteri ASCII, l'output dovrebbe essere simile al seguente:
Mappatura
A ciascun personaggio è assegnata una posizione su una griglia logica 16x6, a partire dal carattere spazio nella posizione in alto a sinistra e avvolgendo in modo tale che la cifra 0 appaia sotto di essa.
Quando si riceve un input ASCII stampabile, stampare quel carattere ASCII nella posizione dello schermo assegnata senza eliminare nessuno dei caratteri attualmente visualizzati sullo schermo.
Regole
- Il tuo programma deve solo mappare i caratteri ASCII stampabili
0x20
a0x7E
. - Il programma non deve terminare e continuare a mappare i caratteri sullo schermo fino a quando non sono stati immessi tutti i caratteri ASCII stampabili. Da qui, il tuo programma può terminare o eseguire in Neverland.
- Il tuo programma può mappare i caratteri come preferisci, ad esempio su un foglio di calcolo, una tabella, una finestra della console o una finestra grafica.
- Indipendentemente da come si visualizza la mappatura, deve essere aggiornata in tempo reale (non appena riceve l'input dell'utente).
- Se il tuo programma non legge l'input in silenzio, deve spostare il cursore in modo che il testo non si frapponga alla mappa.
Aiuto
Ecco l'algoritmo pseudocodice che ho usato per generare la GIF:
loop forever
c = input
y_coord = c / 16
x_coord = c - y * 16
if c is printable
print c at (x_coord * 2 + 1, y_coord + 1)
end if
end loop
Potrebbe esserci un altro modo per ottenere l'output richiesto. Puoi scegliere di usare il mio algoritmo o il tuo, ma l'output deve essere lo stesso indipendentemente.
Ecco un utile riferimento alla tabella ASCII.
punteggio
Vince la risposta con il minor numero di byte in ciascuna lingua. Divertiti!