Meine Schwiegereltern haben einen mit Koi gefüllten Fischteich in ihrem Garten. Es kam mir nicht wirklich in den Sinn, bis ich den folgenden Auszug aus meinem Code bemerkte.
',') & '_'
... Ich hatte Fischgesichter, die mich von meinem Bildschirm aus ansahen ...
Welches hat mir eine gute Idee gegeben ...
Meine Suche nach Ihnen, meine lieben Golfer, ist es, ein einzeiliges ASCII-Aquarium mit den folgenden Regeln zu erstellen:
- Die Größe des Aquariums von der Seite des Tanks zur anderen Seite des Tanks sollte nicht kleiner als 60 Zeichen und nicht größer als 80 Zeichen sein. Die Seiten des Tanks müssen mit dem
|
Zeichen pipe / bar ( ) angegeben werden. - Fische müssen in der Lage sein, von links nach rechts zwischen den Seiten des Beckens zu "schwimmen". Da sie sich drehen werden, ist eine Vorderansicht für den Übergang von einer Richtung in die andere erforderlich.
Der Fisch muss wie folgt aussehen:
}}< }} ',')
Fische schwimmen richtig(',' {{ >{{
Fische schwimmen links}}('_'){{
Fisch nach vorne
Wenn sich ein Fisch dreht, um die Richtung zu ändern (30% Chance), muss er von einer Richtung nach vorne und dann in die andere Richtung zeigen Tankrand Minimum ...
- Wenn ein Fisch keine Luftblase bläst oder die Richtung ändert, bewegt er sich in die Richtung, in die er blickt. Wenn er sich innerhalb von sechs Feldern von der Seite des Tanks entfernt befindet, ändert er die Richtung.
- Der Fisch (nach links oder rechts zeigend) kann gelegentlich (mit einer Wahrscheinlichkeit von 10%) aufhören, Blasen nacheinander zu blasen (
.oO*
). Daher muss neben dem Fisch ein Platz verfügbar sein, damit die Blase vorhanden ist schwimme nur so nah wie möglich an den Seiten, spare einen Platz. Die Blase muss verschwinden, bevor sich der Fisch fortbewegen kann ...
Eine Reihe von Beispielzeilen zum Verhalten des Fisches mit -
Zeichen, die die Leerzeichen angeben, da die Codeanzeige hier ein wenig streng ist. Ich erwarte, dass diese Bindestriche durch Leerzeichen ersetzt werden, wenn Sie dies codieren.
Jede Zeile kann hier als Frame im Zeitraffer betrachtet werden.
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
usw. Das obige Beispiel ist, wie gesagt, klein, aber Sie haben eine allgemeine Vorstellung ...
Kürzester Code gewinnt ...
Ich erwarte die Ausgabe in derselben Zeile (wenn möglich), wenn nicht, ist es in Ordnung, Frame für Frame nacheinander anzuzeigen ... Es liegt an Ihnen, ob Sie eine Zeile oder mehrere Zeilen verwenden. Wenn Sie mehrere Zeilen eingeben, müssen diese durch einen Zeilenumbruch getrennt werden.
Es wird auch ein Zeitgeber zwischen Rahmen von 2000 ms auferlegt. Dies ist obligatorisch .
Mal sehen, was du hast!