IchigoJam ロゴ


IchigoJam は文字を表示する事しかできませんが、

大きな文字や絵を描いてみたい場合はどうしよう?

頭脳を働かせてみた結果、こんなプログラムになりました。

 

この方法を生かして、ほぼ全画面の表示も可能です。

 

これを応用し、スクロール(0.9.7 以降対応)させたものが

バナー (電子掲示板) です。

 

10 'IchigoJam ロゴ
20 LET [0],25945:LET [1],21058
30 LET [2],5445:LET [3],30021
40 LET [4],21957:LET [5],30533
50 LET [6],21829:LET [7],21829
60 LET [8],25945:LET [9],21810
70 LET D,0:LET X,0:LET B,0
80 IF(B==15)*(D%2==1)GOTO 100
90 ? CHR$([D]%2);:LET [D],[D]/2
100 LET X,X+1:IF X==32 GOTO 100
110 LET B,B+1:IF B<>16 GOTO 80
120 IF D%2 ?:LET X,0
130 LET D,D+1:LET B,0
140 IF D<>10 GOTO 80

IchigoJam web でプログラムを実行します。

このQRコードはアクセス解析のためにCookieを使用しています。

アクセス解析は匿名で収集されており、個人を特定するものではありません。

この機能はCookieを無効にすることで収集を拒否することができますので、
お使いのデバイスのブラウザの設定をご確認ください。

MixJuice ダウンロード ?"MJ GET 15JM.LI/K/580

MicJack ダウンロード ?"MJ GKP 580


 

IchigoJam BASIC 0.9.4 からは 10〜50 を下記のようにする事ができるようになりました。

10 LET [0],25945,21058,5445,30021
30 LET [4],21957,30533,21829,21829
50 LET [8],25945,21810

 

オリジナルのロゴを作成したい人もいると思うので、方法を記載しておきます。

方眼紙などでパターンを作成します。[0] などが配列で、横16個並んでいます。

この中で塗りつぶした部分にある数の合計が配列に入れる値になります。32768 がマイナスなのにご注意下さい。

縦に長く伸ばしたい場合は [10] 以降を作成します。140 行目の 10 を最後の配列+1(配列の数)にします。

横幅を変更したい場合は 100 行目の 32 を変更します。値によっては 120 行目の改行処理を変更する必要があります。

- の値がある時、出力結果がおかしくなる場合は 70 の [D]%2 を [D]&1 に、[D]/2 を [D]>>1 にそれぞれ変更して下さい。

 

 

PRINT を並べて処理すると速くなります。ただしデータの横幅が並べた文字分の倍数でなければいけない事になります。

下記では4文字ずつ PRINT させています。これで上のプログラムより処理速度がおよそ半分になります。

これより更に数を増やしても、あまり速度は速くなりません。

 

こうする事で速くなる正しい理由は PRINT そのものではなく、PRINT 以外の処理が少なくなるためです。

詳しくは 高度な技 を参照して下さい。

 

下は IchigoJam BASIC 0.9.9 以降を考慮していません。IchigoJam BASIC 0.9.9 以降では 100 の ?: を外して下さい。

 

10 LET [0],25945:LET [1],21058
20 LET [2],5445:LET [3],30021
30 LET [4],21957:LET [5],30533
40 LET [6],21829:LET [7],21829
50 LET [8],25945:LET [9],21810
60 LET D,0:LET X,0:LET B,0
70 ? CHR$([D]%2);CHR$([D]%4>1);
71 ? CHR$([D]%8>3);CHR$([D]%16>7);
72 LET [D],[D]/16
80 LET X,X+4:IF X==32 GOTO 100
90 LET B,B+4:IF B<>16 GOTO 70
100 IF D%2 ?:LET X,0
110 LET D,D+1:LET B,0
120 IF D<>10 GOTO 70

 

IchigoJam BASIC 0.9.4 からは下記のプログラムで容易に大きな文字が作成・表示できるようになりました。出力結果は同じです。

 

10 ? CHR$(1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1)
20 ? CHR$(1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,1,1)
30 ? CHR$(1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1)
40 ? CHR$(1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1)
50 ? CHR$(1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,1,0,1,0,1)