Moi teściowie mają na swoim podwórku staw rybny wypełniony koi. Tak naprawdę nie przyszło mi to do głowy, dopóki nie zauważyłem następującego fragmentu mojego kodu.
',') & '_'
... Miałem twarze ryb, które patrzyły na mnie z ekranu ...
Co dało mi świetny pomysł ...
Moją misją dla was, moi drodzy golfiści, jest stworzenie akwarium ASCII o jednej linii, zgodnie z następującymi zasadami:
- Rozmiar akwarium od strony zbiornika do drugiej strony zbiornika nie powinien być mniejszy niż 60 znaków i nie większy niż 80 znaków. Boki zbiornika należy wskazać za pomocą
|
znaku rury / baru ( ). - Ryby muszą być w stanie „pływać” od lewej do prawej między bokami akwarium. Ponieważ będą się obracać, widok z przodu jest wymagany do przejścia z jednego kierunku do drugiego.
Ryba musi wyglądać następująco:
}}< }} ',')
Ryba pływa w prawo(',' {{ >{{
Ryba pływa w lewo}}('_'){{
Ryba skierowana do przodu
Kiedy ryba skręca, aby zmienić kierunek (30% szansy), musi zacząć od jednego kierunku, przodem do przodu, a następnie skierować się w drugim kierunku ... Upewnij się, że jest wystarczająco dużo miejsca na obrót ryby, tj. Wymaga sześciu spacji przed minimalna krawędź zbiornika ...
- O ile ryba nie wydmuchuje bańki lub nie zmieni kierunku, będzie kontynuować w kierunku, w którym jest skierowana, jeśli znajdzie się w odległości sześciu pól od boku akwarium, zmieni kierunek.
- Ryba (skierowana w lewo lub w prawo) może czasami (10% szansy) przestać wysadzać pęcherzyki kolejno (
.oO*
), więc ryba musi mieć wolne miejsce obok nich, aby bąbel mógł istnieć, więc ryba może pływaj tak blisko boków, oszczędzaj jedno miejsce. Bańka musi zniknąć, zanim ryba będzie mogła przejść dalej ...
Seria przykładowych wierszy zachowania ryby, ze -
znakami wskazującymi spacje, ponieważ funkcja wyświetlania kodu tutaj jest trochę ścisła ... Spodziewam się, że te myślniki zostaną zastąpione spacjami, gdy kodujesz to ...
Każda linia tutaj może być uważana za ramkę poklatkową.
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
itd. Powyższy przykład jest, jak powiedziałem, niewielki, ale masz ogólny pomysł ...
Najkrótszy kod wygrywa ...
Oczekuję, że dane wyjściowe w tej samej linii (jeśli to możliwe), jeśli nie, wyświetlanie klatka po klatce po kolei jest w porządku ... To, czy przejdziesz jedną linię, czy wiele linii, zależy od Ciebie. Jeśli wykonujesz wiele linii, muszą one być oddzielone nową linią.
Także zegar jest narzucany między ramkami, 2000ms. To jest obowiązkowe .
Zobaczmy, co masz!