IchigoJam BASICの新ファームウェア、Ver 1.4が正式リリースされました。
www.b-incorp.com
IchigoJamの公式サイトからファイルをダウンロードできます。
ichigojam.net
β版が公開されていた時に「バイオリズム」のプログラムを作ったのですが、あらためて記事にまとめます。
誕生日(年月日)と、現在の年月を入力すると、今月のバイオリズムを描きます。
(P=身体〈23日周期〉、S=感情〈28日周期〉、I=知性〈33日周期〉)
IchigoJamでこんなことができるのも楽しいですね(^_^)
プログラム
1.4の新機能、三角関数と簡易グラフィックを使っています。
コード容量は1Kバイトをほぼ使い切りました。
10 CLS:?"*** Biorhythm ***" 20 CLV 30 ?:?"---Birthday" 40 ?"Year=";:INPUT B 50 ?"Month=";:INPUT C 60 ?"Day=";:INPUT D 70 ?:?"---Now" 80 ?"Year=";:INPUT Y 90 ?"Month=";:INPUT M 100 IF C<=2 B=B-1:C=C+12 110 Z=Y:N=M 120 IF M<=2 Z=Z-1:N=N+12 130 A=365*(Z-B) 140 A=A+Z/4-B/4 150 A=A-Z/100+B/100 160 A=A+Z/400-B/400 170 A=A+306*(N+1)/10-306*(C+1)/10 180 A=A+1-D 190 IF A<0 A=A-21252 200 CLS 210 ?"Biorhythm (";Y;"-";M;")" 220 FOR J=0 TO 62 STEP 2 230 DRAW J,23 240 NEXT 250 Q=-SIN(360*(A%23)/23)/16+23 260 FOR J=1 TO 30 270 P=-SIN(360*(J+A%23)/23)/16+23 280 DRAW J*2-2,Q,J*2,P 290 Q=P 300 NEXT 310 T=-SIN(360*(A%28)/28)/16+23 320 FOR J=1 TO 30 330 S=-SIN(360*(J+A%28)/28)/16+23 340 DRAW J*2-2,T,J*2,S 350 T=S 360 NEXT 370 K=-SIN(360*(A%33)/33)/16+23 380 FOR J=1 TO 30 390 I=-SIN(360*(J+A%33)/33)/16+23 400 DRAW J*2-2,K,J*2,I 410 K=I 420 NEXT 430 LC 31,P/2:?"P"; 440 LC 31,S/2:?"S"; 450 LC 31,I/2:?"I"; 460 LC 0,12:?1 470 LC 9,12:?10 480 LC 19,12:?20 490 LC 29,12:?30 500 LC 0,1
誕生日から現在までの日数は、西暦1年1月1日からの日数を計算するフェアフィールドの公式
365y+[y/4]-[y/100]+[y/400]+[306(m+1)/10]+d-428(y=年、m=月、d=日。[]は小数点以下切り捨て。ただし1月・2月は前年の13月・14月とする)
を差し引きに変形して計算しています。
※対策しました(190行)。これで148歳までのバイオリズムが描けます。