Mes beaux-parents ont un étang à poissons dans leur cour, rempli de koi. Cela ne m'a pas vraiment traversé l'esprit jusqu'à ce que je remarque l'extrait suivant de mon code.
',') & '_'
... J'avais des visages de poisson me regardant depuis mon écran ...
Ce qui m'a donné une bonne idée ...
Ma quête pour vous, mes chers golfeurs, est de créer un aquarium ASCII en ligne, avec les règles suivantes:
- La taille de l'aquarium d'un côté du réservoir à l'autre côté du réservoir ne doit pas être inférieure à 60 caractères et pas plus de 80 caractères. Les côtés du réservoir doivent être indiqués en utilisant le caractère pipe / bar (
|
). - Les poissons doivent pouvoir «nager» de gauche à droite entre les côtés du réservoir. Comme ils vont tourner, une vue de face est nécessaire pour la transition d'une direction à l'autre.
Le poisson doit ressembler à ceci:
}}< }} ',')
Poissons nageant à droite(',' {{ >{{
Poissons nageant à gauche}}('_'){{
Poissons face à l'avant
Lorsqu'un poisson se tourne pour changer de direction (30% de chances), il doit partir d'une direction, faire face à l'avant, puis faire face à l'autre direction ... Assurez-vous qu'il y a suffisamment d'espace pour que le poisson puisse tourner, c'est-à-dire qu'il nécessite six espaces avant la bord du réservoir minimum ...
- À moins qu'un poisson ne souffle une bulle ou ne change de direction, il continuera dans la direction à laquelle il fait face, s'il se trouve à moins de six cases du côté du réservoir, il changera de direction.
- Le poisson (face à gauche ou à droite) peut parfois (10% de chances) s'arrêter pour faire des bulles successivement (
.oO*
), de sorte que le poisson doit avoir un espace disponible à côté d'eux pour que la bulle existe, donc un poisson peut nagez seulement aussi près des côtés, économisez un espace. La bulle doit disparaître avant que le poisson ne puisse avancer ...
Une série d'exemples de lignes du comportement du poisson, avec des -
caractères indiquant les espaces, car la fonction d'affichage du code ici est un peu stricte ... Je m'attendrai à ce que ces tirets soient remplacés par des espaces lorsque vous coderez ceci ...
Chaque ligne ici pourrait être considérée comme une trame en time-lapse.
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
etc. L'exemple ci-dessus est, comme je l'ai dit, petit, mais vous avez l'idée générale ...
Le code le plus court gagne ...
Je m'attends à ce que la sortie sur la même ligne (si possible), sinon, afficher image par image successivement est très bien ... Que vous alliez une ligne ou plusieurs lignes, c'est à vous. Si vous effectuez plusieurs lignes, elles doivent être séparées par une nouvelle ligne.
Un temporisateur est également imposé entre les images, 2000 ms. C'est obligatoire .
Voyons voir ce que tu as!