Koniecznie zobacz inne wyzwanie, odwróć mapę znaków ASCII !
Zestaw znaków ASCII (American Standard Code for Information Interchange) jest najczęściej stosowanym standardem kodowania znaków. Kody ASCII reprezentują tekst w komputerach, sprzęcie telekomunikacyjnym i innych urządzeniach.
Wyzwanie
Wyzwanie polega na wydrukowaniu odwzorowania zestawu znaków ASCII podczas wprowadzania ich przez użytkownika. GIF:
Po wprowadzeniu przez użytkownika każdego znaku ASCII dane wyjściowe powinny wyglądać następująco:
Mapowanie
Każdy znak ma przypisaną pozycję na siatce logicznej 16x6, zaczynając od znaku spacji w lewym górnym rogu i zawijając, tak aby cyfra 0 pojawiła się pod nim.
Po odebraniu wejściowego wydruku ASCII wydrukuj ten znak ASCII w przypisanej lokalizacji na ekranie, nie usuwając żadnych znaków aktualnie wyświetlanych na ekranie.
Zasady
- Twój program musi jedynie zmapować drukowalne znaki ASCII,
0x20
na0x7E
. - Twój program nie może zakończyć i kontynuować mapowania znaków na ekranie, dopóki nie zostaną wprowadzone wszystkie drukowalne znaki ASCII. Odtąd twój program może zakończyć się lub uruchomić w Nibylandii.
- Twój program może mapować znaki w dowolny sposób, np. W arkuszu kalkulacyjnym, tabeli, oknie konsoli lub oknie graficznym.
- Bez względu na to, jak wyświetlasz odwzorowanie, musi ono zostać zaktualizowane w czasie rzeczywistym (jak tylko otrzyma dane wejściowe od użytkownika).
- Jeśli twój program nie odczytuje danych po cichu, musi odsunąć kursor, aby tekst nie przeszkadzał na mapie.
Wsparcie
Oto algorytm pseudokodu, którego użyłem do wygenerowania 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
Może być inny sposób na osiągnięcie wymaganej wydajności. Możesz wybrać użycie mojego algorytmu lub własnego, ale wynik musi być taki sam, niezależnie od tego.
Oto przydatne odniesienie do tabeli ASCII.
Punktacja
Odpowiedź z najmniej bajtami w każdym języku wygrywa. Baw się dobrze!