SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

市松模様を描いてみよう

IchigoJamの画面に市松模様を表示するプログラミング。なかなか面白い課題です。
福野さんのブログで取り上げられていました。
fukuno.jig.jp
他の方が作ったプログラム3本の後、私が作ったプログラム3本をご紹介します。
紹介動画はこちら。

www.youtube.com

Hana道場方式

f:id:shiro0922:20220219023719p:plain

10 FORY=0TO21
20 FORX=0TO31
30 LCX,Y:?CHR$(X%2=Y%2)
40 NEXT
50 NEXT

画面上のX,Y座標の値で文字コード0か1を判断して描画します。

福野さん方式

f:id:shiro0922:20220219023741p:plain

1 ?CHR$((N+N/32)%2);:N=N+1:CONT

文字コード0と1を交互に表示、なおかつ1行(32文字)ごとにパターンを逆にします。

Facebookで出ていた猪原さん方式

f:id:shiro0922:20220219023757p:plain

1 VIDEO3
2 ?CHR$(137);:CONT

画面を2倍拡大表示にして、市松キャラ(文字コード137)を表示する荒技です。

斎藤:COPY方式

f:id:shiro0922:20220218154636p:plain

10 POKE #900,0,1
20 COPY #902,#900,30
30 POKE #920,1,0
40 COPY #922,#920,30
50 COPY #940,#900,704

VRAMに0,1の基本パターンを描いて、COPY命令で横→縦にメモリコピーして増やします。
COPY命令は高速なので、IchigoJam webでもかなり速く描けます。

斎藤:斜線方式

f:id:shiro0922:20220219023908p:plain

10 CLS
20 FOR S=1 TO 31 STEP 2
30 X=S
40 FOR Y=0 TO 23
50 LC X,Y:?CHR$(1);
60 X=(X+1)&31
70 NEXT
80 NEXT

左上→右下へ斜線を引いていきます。画面の右端へはみ出したら左端へワープします。

斎藤:ボール方式

f:id:shiro0922:20220219023922p:plain

10 CLS:X=31:Y=0:D=-1:E=1
20 LC X,Y:?CHR$(1);
30 U=X+D:V=Y+E
40 IF U<0 OR U>31 D=-D:GOTO 30
50 IF V<0 OR V>23 E=-E:GOTO 30
60 X=U:Y=V
70 GOTO 20

45度の角度でボール(四角)を動かして模様を描いていきます。四方の壁で反射します。