Wyzwanie
Niedawno dostałem się do komputerów 8-bitowych i jestem zafascynowany ich działaniem i innymi; dlatego celem tego kodu golfowego jest odtworzenie części Monitora Woz, zaprojektowanego przez Steve'a Woźniaka dla Apple I.
Masz przechowywać tablicę 22 wartości szesnastkowych o szerokości dwóch bajtów (minimalna wartość 10 USD , maksymalna wartość $ FF ), a następnie weź n- ilość danych wejściowych. (Zwykle dwa; języki takie jak Brainfuck mogą mieć trudności).
Dane wejściowe będą odnosić się do miejsca w tablicy, od którego ma się rozpocząć drukowanie, i gdzie się zatrzymać; wejście o zdefiniowanym zachowaniu będzie miało wartość początkową mniejszą lub równą wartości końcowej. Twój program musi wtedy być w stanie wydrukować każdą wartość szesnastkową między wprowadzonymi wartościami szesnastkowymi włącznie .
Przykład tego:
Array
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15
Values
FF F4 B6 D7 40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6 A5
input first num:
04
input second num:
14
40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6
Interesującą częścią tego ćwiczenia jest to, że możesz użyć wszystkiego, co chcesz, sprawdzić granice danych wejściowych użytkowników. Dane wejściowe od osoby hello
i twój program ma niezdefiniowane zachowanie? Odchodzi bez uprzedzenia? Oba są ważne.
Jedyne zasady to:
1. Musisz włączyć wartości 22 wartości szesnastkowych jako część programu przed jego uruchomieniem (nie możesz poprosić użytkownika o dane wejściowe).
2. Dane wyjściowe wartości szesnastkowych muszą mieć dokładny format:
00 FF 00 FF 00
spacje końcowe, tabulatory lub linie są w porządku. Znaki nie są.
3. Program nie musi pytać o dane wejściowe z komunikatem. Pozostaw „wiadomość” pustą, jeśli chcesz. Użytkownik musi jednak wprowadzić ograniczenia szesnastkowe.
4. Ponieważ w przypadku wartości 22 wartości szesnastkowych decyzję należy podjąć, należy stworzyć program, który faktycznie pobiera wartości z pamięci, a nie naśladuje program, po prostu drukując wartości. (np. lista 00 $ ).
5 n-ilość danych wejściowych, odnosi się do ilości danych wejściowych wymaganych dla wybranego języka do rozpoznania szesnastkowej o szerokości dwóch bajtów. na przykład. (Brainfuck wymaga dwóch danych wejściowych na heks, co daje cztery dla obu).
Jeśli potrzebujesz wyjaśnienia, możesz je komentować.
To jest kod golfowy, więc zwycięzcą jest najkrótsza odpowiedź w liczbie bajtów.
Tabela liderów
Oto tabela liderów generująca fragment dzięki uprzejmości Martina Endera .
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes
n
ponieważ ponieważ Brainfuck nie może pobrać ciągu 2 znaków, należy wprowadzić pierwszy bajt, a następnie drugi dla pierwszej wartości, a następnie zrobić to ponownie dla drugiej wartości, łącznie 4 dane wejściowe. Może być ich tyle, ile chcesz.