Я взял копию книги 10 PRINT CHR $(205.5 + RND (1));: GOTO 10
В этой книге обсуждается искусство, созданное одной линией Commodore 64 BASIC:
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Это несколько раз печатает случайный символ 205 или 206 на экране из набора PETSCII:
Я не уверен, почему оригинал использует символы 205 и 206 вместо идентичных 109 и 110. Кроме того, я предпочитаю добавлять четкость в начале. Это то, что я обычно набираю в C64:
1?CHR$(147)
2?CHR$(109.5+RND(1));:GOTO2
RUN
Вы можете попробовать все это для себя в эмуляторе, например, с помощью Flash или JavaScript:
- http://codeazur.com.br/stuff/fc64_final/
-
http://www.kingsquare.nl/jsc64
При вводе вышеуказанного кода в перечисленные эмуляторы вам нужно понять, что
- (is *
- ) есть (
- + is]
Я решил, что было бы забавно написать строку bash, чтобы сделать что-то подобное.
В настоящее время у меня есть:
clear; while :; do [ $(($RANDOM%2)) -eq 0 ] && (printf "\\") || (printf "/"); done;
Два вопроса:
- Любые предложения для более кратким образом?
- Любые предложения для лучшего выходного символа? Передняя и обратная коса не так красиво, поскольку их очки не выстраиваются в линию. Символы, используемые из PETSCII, являются специальными символами, а не слэшами. Я не видел ничего в ASCII, который мог бы работать, но, может быть, вы можете предложить способ привлечь персонажа из UTF-8 или еще что-то?
Лучший ОТВЕТ ДАЛЕЕ
Самый короткий для bash (40 символов):
yes 'c=(╱ ╲);printf ${c[RANDOM%2]}'|bash
Вот короткий для zsh (53 символа):
c=(╱ ╲);clear;while :;do printf ${c[RANDOM%2+1]};done
Вот псевдоним, который мне нравится вставлять в мой .bashrc или .profile
alias art='c=(╱ ╲);while :;do printf "%s" ${c[RANDOM%2]};done'
Смешно сравнивать это с самым коротким, что я могу сделать для C64 BASIC (23 символа):
1?C_(109.5+R_(1));:G_1
Подчерки - сдвиг + H, сдвиг + N и сдвиг + O соответственно. Я не могу вставить символ здесь, поскольку они специфичны для PETSCII. Кроме того, вывод C64 выглядит более симпатичным;)
Здесь вы можете прочитать о аббревиатурах C64 BASIC: