Celem jest animacja gwiazdy eksplodującej w sztuce ASCII, od pojedynczej postaci gwiazdy *
do supernowych, a na końcu do pustki kosmicznej.
Zasady:
- Musisz wyświetlać tylko 80 znaków w linii w 24 liniach (jest to domyślny rozmiar terminala w systemie Linux)
- Tylko te 95 znaków ASCII druku są akceptowane
- Kroki:
- Początkowa gwiazda musi być
*
wyśrodkowana poziomo i pionowo - Gwiazda musi urosnąć, aby pokazać, że eksploduje
- Na końcu ekran musi być pusty (gwiazda zniknęła)
- Początkowa gwiazda musi być
- Długość kodu lub języków nie ma znaczenia
- Głosy zdecydują o najbardziej kreatywnych i najpiękniejszych wynikach. Czy widziałeś kiedyś wybuchającą gwiazdę? Zobaczmy, jak to sobie wyobrażasz.
Dodałem odpowiedź na przykładzie Pythona, ale zachęcasz do stworzenia czegoś innego lub lepszego.
Masz tydzień na udział, zwycięzca zostanie wybrany 01.04.2014.
Próbki danych wyjściowych (tylko niektóre ramki):
# start
*
# during explosion
****#****
***#@##*#@#****
*@**@@@*##**#*#**#*
**@@*#**#@*#@****#***
****@*@***#****@**@@*
*******@***@@***#****#*
*#***#*##@****##@@@**
**#@###****@*********
*****@**@*@*****@**
************@**
****#****
# star is expanding
*
********* **@******
**** **#**@ #**#*# ****
*** ** **##** *@@*@* ** ***
** * @@ *@*#* ***@* *# * **
*** # * *# *@#** ***@* ** @ * *@*
** * * ** *@ ****@ @**** ** #* * * **
** * @* * ** *@ #### *#** ** ** * @* * **
*# * # ** * #* * **** **** @ ** * ** * * #*
** * *# * @ * # @ @*@ *#* * @ # # * @* * **
*# * * * * # * @* * **# *#* * ** * * * * * # **
** # * * @ * * # * # ** @* * * * * * # @ @ * **
*# * * * * * * * * # * * * * * * @ @ * * * * * **
*# * @ * @ * @ * * * ** *@ * * # * * * * * @ @*
*# # @ * * # * *@ * *** @#@ @ ** * @ @ * * # **
*# * ** * * * @ @ **@ *** * @ * * * @* * #*
** * * ** * #@ * #*** **## * #* * #@ * * @*
*# * *@ * @@ *# **** @*** ** ** * #* * #*
*# * * *@ ** @**@* *@#** ** ** * * @*
*#* @ * @@ **##* ****@ ** # * @**
** @ #* @*@#* @*@*# @# * **
*#* @* @#*@*# **#*@# ** ***
**** *##**# #***@* @***
****@**@* *****@***
# star is disappearing
* - - -- -- ------- ------- -- -- - - *
** - - - -- -- ------ ------ -- -- - - - **
* -- - -- -- -- -- ------ ------ -- -- -- -- - -- *
** - - - -- -- -- -- ------ ------ -- -- -- -- - - - **
* - - -- - -- - - -- ----- ----- -- - - -- - -- - - *
** - - - -- - -- - - -- ----- ----- -- - - -- - -- - - - **
* - - - - - - - - -- -- ----- ----- -- -- - - - - - - - - *
* - - - - - - - -- - -- -- ---- ---- -- -- - -- - - - - - - - *
* -- - - - - - - - -- - -- - ---- ---- - -- - -- - - - - - - - -- *
* - - - - - - - -- - - - - - --- --- - - - - - -- - - - - - - - *
* - - - - - - - - - - - - -- - --- --- - -- - - - - - - - - - - - - *
* - - - - - - - - - - - - - - - -- -- - - - - - - - - - - - - - - - *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
* - - - - - - - - - - - - - - - -- -- - - - - - - - - - - - - - - - *
* - - - - - - - - - - - - -- - --- --- - -- - - - - - - - - - - - - *
* - - - - - - - -- - - - - - --- --- - - - - - -- - - - - - - - *
* -- - - - - - - - -- - -- - ---- ---- - -- - -- - - - - - - - -- *
* - - - - - - - -- - -- -- ---- ---- -- -- - -- - - - - - - - *
* - - - - - - - - -- -- ----- ----- -- -- - - - - - - - - *
** - - - -- - -- - - -- ----- ----- -- - - -- - -- - - - **
* - - -- - -- - - -- ----- ----- -- - - -- - -- - - *
** - - - -- -- -- -- ------ ------ -- -- -- -- - - - **
* -- - -- -- -- -- ------ ------ -- -- -- -- - -- *
** - - - -- -- ------ ------ -- -- - - - **
# the star is gone
(there is nothing)
Animowany przykład wyniku:
Jeśli szukasz inspiracji, możesz obejrzeć eksplozję gry Captain Blood z 1988 roku.
Odpowiedzi:
C + przekleństwo
Nie poczyniłem wiele wysiłku, aby uporządkować kod źródłowy. Zasadniczo oblicza rozszerzającą się falę uderzeniową, z solidnym tłem dodanym do pierwszych kilku klatek, aby dać rodzaj efektu błysku. [[EDYCJA: Eksplozja wyglądała trochę dziwnie, pojawiając się z jednej gwiazdki, więc dodałem kilka klatek rozszerzenia na początku animacji.]]
Na to nakładają się losowe cząstki, a pozycje określane są zgodnie z podstawowymi obliczeniami perspektywicznymi, aby nadać mu nieco trójwymiarowy charakter. (W każdym razie taki był pomysł).
źródło
JavaScript
Myślałem, że warto spróbować w JS. Zaproponuj zapisywanie i uruchamianie; bardzo, bardzo wolno, jeśli wkleisz w konsoli.
Edycje w JSBin: http://jsbin.com/worofeqi/5/watch?js,output
Dziwnie działa znacznie płynniej, gdy jest wykonywany z lokalnego systemu plików niż w JSBin. Szczerze mówiąc, nie jestem pewien, dlaczego; może spojrzeć na to dziś wieczorem.
źródło
Pyton
Przykładowe dane wyjściowe (przy użyciu mniejszej liczby kroków i bez czyszczenia ekranu).
Fragmenty wyników są również wyświetlane w pytaniu.
źródło