Raffaele Cecco jest programistą, który pod koniec lat osiemdziesiątych wyprodukował jedne z najlepszych gier wideo dla komputera ZX Spectrum . Między innymi, rozwinął się dużym uznaniem Cybernoid i Exolon .
Raffaele kończy 50 maja 10 maja 2017 r . To wyzwanie jest dla niego małym hołdem dla szczęśliwych godzin, które wielu z nas spędzało, grając w te wspaniałe gry, oraz dla motywacji, jaką przynieśli.
Wyzwanie
Celem jest stworzenie prostokątnej markizy inspirowanej tym, co widać na głównym ekranie menu Cybernoida , ale w sztuce ASCII.
W szczególności łańcuch "Happy birthday Raffaele Cecco "
(zwróć uwagę na ostatnią spację) będzie obracał się wzdłuż krawędzi prostokąta 12 × 5, ze stałym czasem przerwy między migawkami.
Na przykład, zakładając, że tekst jest wyświetlany zgodnie z ruchem wskazówek zegara i obracany przeciwnie do ruchu wskazówek zegara (patrz opcje poniżej), oto trzy kolejne migawki prostokątnej markizy:
Happy birthd
a
o y
c
ceC eleaffaR
następnie
appy birthda
H y
o R
cceC eleaffa
następnie
ppy birthday
a
H R
a
occeC eleaff
i tak dalej.
Zasady
Nie zostaną pobrane żadne dane wejściowe. Dane wyjściowe będą przesyłane przez STDOUT lub równoważne, lub w oknie graficznym.
Dane wyjściowe powinny faktycznie przedstawiać obracający się tekst; to znaczy, każda nowa migawka powinna zastąpić poprzednią, aby sprawiać wrażenie ruchu. Można to zrobić w dowolny sposób, na przykład pisząc odpowiednią liczbę znaków nowej linii, aby skutecznie wyczyścić ekran. Jest to dopuszczalne, jeśli jest to ważne tylko dla danego rozmiaru ekranu; po prostu podaj to w odpowiedzi.
Akceptowane są następujące opcje:
- Tekst może być wyświetlany zgodnie z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara i może być obracany zgodnie z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara (przykładowe migawki powyżej zakładają wyświetlanie zgodnie z ruchem wskazówek zegara i obracanie w lewo).
- Obracanie powinno następować cyklicznie w nieskończonej pętli (aż do zatrzymania programu) i może rozpocząć się w dowolnej fazie.
- Czas pauzy między migawkami powinien być w przybliżeniu stały, ale można go dowolnie wybierać między 0,1 a 1 s. Dopuszczalna jest początkowa pauza przed wyświetleniem pierwszej migawki.
- Litery mogą być dużymi, małymi lub mieszanymi (jak w powyższym przykładzie).
- Wiodące lub końcowe puste miejsce jest dozwolone.
Programy lub funkcje są dozwolone w dowolnym języku programowania . Standardowe luki są zabronione.
Jeśli to możliwe, podaj plik gif przedstawiający dane wyjściowe lub link do przetestowania programu.
Najkrótszy kod w bajtach wygrywa.