10 PRINT CHR$(205.5+RND(1));という本を手に取りました。:後藤10
この本では、Commodore 64 BASIC の単一ラインによって生み出されたアートについて説明します。
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
これは、PETSCII セットからランダムに文字 205 または 206 を画面に繰り返し出力します。
なぜオリジナルが同じ109と110ではなく、205と206の文字を使用しているのかはわかりません。また、最初にクリアを追加することを好みます。これは私が通常 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
上記のコードをリストされているエミュレーターに入力するときは、次のことを認識する必要があります。
- ( は *
- ) は (
- +は】
私は、似たようなことをするために bash 行を書くのは面白いだろうと判断しました。
私は現在持っています:
clear; while :; do [ $(($RANDOM%2)) -eq 0 ] && (printf "\\") || (printf "/"); done;
2 つの質問:
- これをより簡潔にするための提案はありますか?
- より良い出力文字の提案はありますか? スラッシュとバックスラッシュは、ポイントが揃っていないため、あまり美しくありません。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
アンダースコアは、それぞれ shift+H、shift+N、および shift+O です。PETSCII 固有の文字なので、ここに貼り付けることはできません。また、C64 出力はきれいに見えます ;)
C64 BASIC の略語については、次を参照してください。