Das Ziel ist es, einen Stern zu animieren, der in der ASCII-Kunst explodiert, angefangen von einem einzelnen Sterncharakter *
über eine Supernova bis hin zur Leere.
Regeln:
- Sie müssen nur 80 Zeichen pro Zeile in 24 Zeilen anzeigen (dies ist die Standard-Terminalgröße unter Linux).
- Nur diese 95 druckbaren Zeichen aus ASCII sind zulässig
- Schritte:
- Der Anfangsstern muss
*
horizontal und vertikal zentriert sein - Der Stern muss wachsen, um zu zeigen, dass er explodiert
- Am Ende muss der Bildschirm leer sein (der Stern ist verschwunden)
- Der Anfangsstern muss
- Die Länge des Codes oder der Sprachen spielt keine Rolle
- Die Stimmen entscheiden über die kreativsten und schönsten Ergebnisse. Hast du jemals einen explodierenden Stern gesehen? Mal sehen, wie du dir das vorstellst.
Ich habe eine Antwort mit Python als Beispiel hinzugefügt, aber Sie werden aufgefordert, etwas anderes oder besseres zu erstellen.
Sie haben eine Woche Zeit, um teilzunehmen. Der Gewinner wird am 01.04.2014 ermittelt.
Ausgabebeispiele (nur bei einigen Frames):
# start
*
# during explosion
****#****
***#@##*#@#****
*@**@@@*##**#*#**#*
**@@*#**#@*#@****#***
****@*@***#****@**@@*
*******@***@@***#****#*
*#***#*##@****##@@@**
**#@###****@*********
*****@**@*@*****@**
************@**
****#****
# star is expanding
*
********* **@******
**** **#**@ #**#*# ****
*** ** **##** *@@*@* ** ***
** * @@ *@*#* ***@* *# * **
*** # * *# *@#** ***@* ** @ * *@*
** * * ** *@ ****@ @**** ** #* * * **
** * @* * ** *@ #### *#** ** ** * @* * **
*# * # ** * #* * **** **** @ ** * ** * * #*
** * *# * @ * # @ @*@ *#* * @ # # * @* * **
*# * * * * # * @* * **# *#* * ** * * * * * # **
** # * * @ * * # * # ** @* * * * * * # @ @ * **
*# * * * * * * * * # * * * * * * @ @ * * * * * **
*# * @ * @ * @ * * * ** *@ * * # * * * * * @ @*
*# # @ * * # * *@ * *** @#@ @ ** * @ @ * * # **
*# * ** * * * @ @ **@ *** * @ * * * @* * #*
** * * ** * #@ * #*** **## * #* * #@ * * @*
*# * *@ * @@ *# **** @*** ** ** * #* * #*
*# * * *@ ** @**@* *@#** ** ** * * @*
*#* @ * @@ **##* ****@ ** # * @**
** @ #* @*@#* @*@*# @# * **
*#* @* @#*@*# **#*@# ** ***
**** *##**# #***@* @***
****@**@* *****@***
# star is disappearing
* - - -- -- ------- ------- -- -- - - *
** - - - -- -- ------ ------ -- -- - - - **
* -- - -- -- -- -- ------ ------ -- -- -- -- - -- *
** - - - -- -- -- -- ------ ------ -- -- -- -- - - - **
* - - -- - -- - - -- ----- ----- -- - - -- - -- - - *
** - - - -- - -- - - -- ----- ----- -- - - -- - -- - - - **
* - - - - - - - - -- -- ----- ----- -- -- - - - - - - - - *
* - - - - - - - -- - -- -- ---- ---- -- -- - -- - - - - - - - *
* -- - - - - - - - -- - -- - ---- ---- - -- - -- - - - - - - - -- *
* - - - - - - - -- - - - - - --- --- - - - - - -- - - - - - - - *
* - - - - - - - - - - - - -- - --- --- - -- - - - - - - - - - - - - *
* - - - - - - - - - - - - - - - -- -- - - - - - - - - - - - - - - - *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
* - - - - - - - - - - - - - - - -- -- - - - - - - - - - - - - - - - *
* - - - - - - - - - - - - -- - --- --- - -- - - - - - - - - - - - - *
* - - - - - - - -- - - - - - --- --- - - - - - -- - - - - - - - *
* -- - - - - - - - -- - -- - ---- ---- - -- - -- - - - - - - - -- *
* - - - - - - - -- - -- -- ---- ---- -- -- - -- - - - - - - - *
* - - - - - - - - -- -- ----- ----- -- -- - - - - - - - - *
** - - - -- - -- - - -- ----- ----- -- - - -- - -- - - - **
* - - -- - -- - - -- ----- ----- -- - - -- - -- - - *
** - - - -- -- -- -- ------ ------ -- -- -- -- - - - **
* -- - -- -- -- -- ------ ------ -- -- -- -- - -- *
** - - - -- -- ------ ------ -- -- - - - **
# the star is gone
(there is nothing)
Animiertes Ausgabebeispiel:
Wenn Sie sich inspirieren lassen möchten, können Sie sich eine Explosion von Captain Blood ansehen , einem Spiel aus dem Jahr 1988.
Antworten:
C + Flüche
Ich habe mich nicht sehr bemüht, den Quellcode aufzuräumen. Grundsätzlich wird eine sich ausdehnende Stoßwelle berechnet, wobei den ersten Bildern ein fester Hintergrund hinzugefügt wird, um eine Art Blitzlichteffekt zu erzielen. [[BEARBEITEN: Die Explosion sah von einem einzelnen Sternchen aus etwas seltsam aus, daher habe ich zu Beginn der Animation einige Frames der Erweiterung hinzugefügt.]]
Darüber werden zufällige Partikel eingeblendet, deren Positionen anhand einer grundlegenden perspektivischen Berechnung ermittelt werden, um ein leichtes 3D-Gefühl zu erzeugen. (Nun, das war sowieso die Idee.)
quelle
Javascript
Ich dachte, es ist einen Versuch wert in JS. Schlagen Sie das Speichern und Ausführen vor. sehr sehr langsam, wenn Sie in der Konsole einfügen.
Bearbeitungen in JSBin: http://jsbin.com/worofeqi/5/watch?js,output
Seltsamerweise läuft es viel reibungsloser, wenn es über das lokale Dateisystem ausgeführt wird, als in JSBin. Ehrlich gesagt nicht sicher warum; darf sich das heute abend anschauen.
quelle
Python
Beispielausgabe (mit weniger Schritten und ohne Löschen des Bildschirms).
In der Frage werden auch Auszüge der Ausgabe angezeigt.
quelle