2023-05-28

20年前の2003/5/28、株式会社jig.jpが誕生しました。ありがとう、20周年。記念にIchigoJam BASICでjig.jpロゴパズルを作りました。

メイキング。まずはjig.jpロゴを設計。配列に横幅-1、縦幅-1、アルファベットを使った16進法でビットパターンを定義。

10 LET[0],1,4,"CCCCD",0,0,"B",0,2,"BBB",0,0,"B",3,4,"PFHEH",0,0,"B",1,4,"CCCCD",0,0,"B",2,4,"HFHBB"

表示サブルーチン@PUTを作って、テスト表示。

10 LET[0],1,4,"CCCCD",0,0,"B",0,2,"BBB",0,0,"B",3,4,"PFHEH",0,0,"B",1,4,"CCCCD",0,0,"B",2,4,"HFHBB" 20 CLS:X=3:Y=5:FORI=0TO8:N=I:O=1:GSB@PUT:WAIT30:X=X+[N*3]+2:NEXT 30 END 100 @PUT:FORL=0TO[N*3+1]:C=PEEK([N*3+2]+L)-65:FORM=0TO[N*3]:IFC>>M&1LCX+M,Y+L:IFO?CHR$(3-!!SCR()*2);:ELSE?CHR$(!!SCR()*3) 110 NEXT:NEXT:RTN

カーソルキーで動かせるようにします。スペースキーでパーツ選択。これでロゴができます。

10 LET[0],1,4,"CCCCD",0,0,"B",0,2,"BBB",0,0,"B",3,4,"PFHEH",0,0,"B",1,4,"CCCCD",0,0,"B",2,4,"HFHBB" 15 CLS:O=1:X=1:Y=5:FORI=0TO8:LET[27+I*2],X,Y:N=I:GSB@PUT:X=X+[N*3]+2:NEXT:N=0 45 X=[27+N*2]:Y=[28+N*2] 50 K=INKEY():IF!KCONT 60 IFK=32LET[27+N*2],X,Y:N=(N+1)%9:GOTO45 65 O=0:GSB@PUT 70 X=X-(K=28)+(K=29):Y=Y-(K=30)+(K=31) 80 O=1:GSB@PUT 90 GOTO50 100 @PUT:FORL=0TO[N*3+1]:C=PEEK([N*3+2]+L)-65:FORM=0TO[N*3]:IFC>>M&1LCX+M,Y+L:IFO?CHR$(3-!!SCR()*2);:ELSE?CHR$((SCR()=1)*3); 110 NEXT:NEXT:RTN


上下左右で動かして・・・


jig.jpロゴはこの配置!

更に、プログラムを改造して、エンターキーで回転に対応すると、長方形に収めるパズルのできあがり!

10 LET[0],1,4,"CCCCD",0,0,"B",0,2,"BBB",0,0,"B",3,4,"PFHEH",0,0,"B",1,4,"CCCCD",0,0,"B",2,4,"HFHBB" 15 CLS:R=0:O=1:X=4:Y=10:FORI=0TO8:LET[27+I*3],X,Y,R:N=I:GSB@PUT:X=X+[N*3]+2:NEXT:N=0 45 X=[27+N*3]:Y=[28+N*3]:R=[29+N*3] 50 K=INKEY():IF!KCONT 60 IF!F&&K=32LET[27+N*3],X,Y,R:N=(N+1)%9:GOTO45 65 O=0:GSB@PUT 66 R=(R+(K=10))%4 70 X=X-(K=28)+(K=29):Y=Y-(K=30)+(K=31) 80 O=1:GSB@PUT 90 GOTO50 100 @PUT:F=0:FORL=0TO[N*3+1]:C=PEEK([N*3+2]+L)-65:FORM=0TO[N*3]:IFC>>M&1=0:GOTO120 105 IFR=0LCX+M,Y+L 106 IFR=1LCX+L,Y-M 107 IFR=2LCX-M,Y-L 108 IFR=3LCX-L,Y+M 109 IFOIFSCR()F=1:?CHR$(1);:ELSE?CHR$(3); 110 IF!O?CHR$((SCR()=1)*3); 120 NEXT:NEXT:RTN

RUN on IchigoJam web
今の IchigoJam web ちょっと動作が遅いので、ぜひ IchigoJamの実機でどうぞ!IchigoJam R だとより快適です。

隠れた楽しいパターンが見つけた方、ご一報ください!


長方形にしてみよう!


プログラムは、652byte。残り、372byteとまだ余裕あり!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS