Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2017/08/19 (土)

バイオリズム

| 21:18 | バイオリズム - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - バイオリズム - 雪乃☆雫のなでしこ日和 バイオリズム - 雪乃☆雫のなでしこ日和 のブックマークコメント

 突然何の脈絡も無く、バイオリズムを表示するプログラム。

 ムカシはだいぶ流行ったけど、最近はあんまりお見かけしませんね。

 やっぱり、カガク的コンキョに欠けるとゆうコトなんでしょうか。

 のわりには、血液型占いは廃れないよね~。

 A型が几帳面だなんて、絶っっ対にあり得ないと思うんだけど・・・(^▽^;

#バイオリズム(なでしこ1)

#-----宣言--------------------------------------------------
生年月日とは文字列。生年月日=「」。
当日とは整数。当日=今日の2文字右部分整数変換。
当月とは整数。当月=今日の6から2文字抜き出しを整数変換。
基準日とは整数。基準日=今日に「-0/0/{当日-1}」を日付加算。
誕生日とは文字列表示年とは整数表示月とは整数表示年月とは文字列。
閏年とは整数。
月末とは整数。
#-----------------------------------------------------------
母艦について
  クライアント幅は640。クライアント高さは480。

文字色黒色。30,20へ「生年月日(yyyy/mm/dd):」を文字描画。
生年月日エディタとはエディタこれについて
  位置は「175,15」。幅は80。テキストは生年月日。
部品間隔は0。
前月ボタンとはボタンこれについて
  位置は「280,15」。幅は50。高さは20。
  クリックした時は~
    基準日=基準日に「-0/1/0」を日付加算。
    バイオリズム表示今月ボタンとはボタンこれについて
  位置は前月ボタンの右側。幅は50。高さは20。
  クリックした時は~
    基準日=今日に「-0/0/{当日-1}」を日付加算。
    バイオリズム表示。
翌月ボタンとはボタンこれについて
  位置は今月ボタンの右側。幅は50。高さは20。
  クリックした時は~
    基準日=基準日に「+0/1/0」を日付加算。
    バイオリズム表示文字色青色。480,20へ「■身体」を文字描画文字色赤色。530,20へ「■感情」を文字描画文字色緑色。580,20へ「■知性」を文字描画。
#-----------------------------------------------------------
枠描画。
もし、生年月日がならば、「生年月日を入力して下さい」と言う違えば、バイオリズム表示。
#-----------------------------------------------------------

*枠描画
 線スタイルは実塗りスタイルはべた。線色白色塗り色白色文字色黒色。
 0,40から640,480へ四角。
 11
  もし、((回数-1)=0)ならば、3,40へ「高{~}調{~}期」を文字描画。
  もし、((回数-1)=9)ならば、3,((回数-1)*40+40)へ「低{~}調{~}期」を文字描画。
  もし、((回数-1)=5)ならば、
    3,((回数-1)*40+20)へ「要{~}{~}意」を文字描画。
    線スタイルは透明。塗りスタイルはべた。塗り色黄色。
    20,((回数-1)*40+20)から620,((回数-1)*40+60)へ四角。
  線色黒色塗りスタイルは透明。
  もし、((回数-1)=0)または((回数-1)=5)または((回数-1)=10)ならば、
    線太さは2。線スタイルは実。
  違えば、
    線太さは1。線スタイルは点。
  20,((回数-1)*40+40)から620,((回数-1)*40+40)へ。

 31
  もし、((回数-1)=0)または((回数-1)=30)ならば、
    線太さは2。線スタイルは実。
  違えば、
    線太さは1。線スタイルは点。
  ((回数-1)*20+20),40から((回数-1)*20+20),440へ。

 (月末)
  ((回数-1)*20+15),450へ回数文字描画。
#-----------------------------------------------------------

*バイオリズム表示
  生年月日は生年月日エディタのテキスト。
  誕生日=「{生年月日の4文字左部分}年{生年月日の6から2文字抜き出し}月{生年月日の2文字右部分}日」
  表示年=基準日の4文字左部分整数変換。
  表示月=基準日の6から2文字抜き出しを整数変換。
  表示年月=「{表示年}年{表示月}月」

  もし表示年%4=0でなければ、閏年=いいえ。
  違えばもし表示年%100=0でなければ、閏年=はい。
  違えばもし表示年%400=0でなければ、閏年=いいえ。
  違えば、閏年=はい。
  もし、(表示月=02)または(表示月=04)または(表示月=06)または(表示月=09)または(表示月=11)でなければ、月末=31。
  違えばもし表示月=02ならば、
    もし、閏年=はいならば、月末=29。
    違えば、月末=28。
  違えば、月末=30。

  母艦のタイトルは「{誕生日} 生まれの方の {表示年月} のバイオリズム」
  枠描画。バイオリズム描画。

*バイオリズム描画
 線太さは3。線スタイルは実塗りスタイルはベタ。
 31
  日付=基準日に「+0/0/{回数-1}」を日付加算。
  結果=生年月日と日付でバイオリズム計算。
  身体2=(結果¥0)*2。
  感情2=(結果¥1)*2。
  知性2=(結果¥2)*2。
  もし回数>1ならば、
    線色青色。(20*(回数-1)),(-身体1+240)から(20*回数),(-身体2+240)へ
    線色赤色。(20*(回数-1)),(-感情1+240)から(20*回数),(-感情2+240)へ
    線色緑色。(20*(回数-1)),(-知性1+240)から(20*回数),(-知性2+240)へ
  もし、(表示年=今年)かつ(表示月=今月)かつ(回数=当日)ならば、
    線色青色塗り色青色。(20*回数-5),(-身体2+240-5)から(20*回数+5),(-身体2+240+5)へ
    線色赤色塗り色赤色。(20*回数-5),(-感情2+240-5)から(20*回数+5),(-感情2+240+5)へ
    線色緑色塗り色緑色。(20*回数-5),(-知性2+240-5)から(20*回数+5),(-知性2+240+5)へ
  身体1=身体2。
  感情1=感情2。
  知性1=知性2。
#-----------------------------------------------------------
#外枠の表示
 線色黒色塗りスタイルは透明。
 18,38から622,442へ四角。
#-----------------------------------------------------------
*バイオリズム計算(誕生日と基準日で)
  日数=誕生日と基準日の日数差。
  結果¥0=SIN(日数/23*PI*2)*100を整数変換。
  結果¥1=SIN(日数/28*PI*2)*100を整数変換。
  結果¥2=SIN(日数/33*PI*2)*100を整数変換。
  結果で戻る。
#-----------------------------------------------------------

 生年月日を入力して「今月」のボタンを押せば表示されます。

 宣言のところで、生年月日に自分のを入れとけば、それが自動的に表示されます。

 高調期や低調期は、それほど気にする必要は無く、0と交わる辺りが注意日で色々と不安定になるので気をつけなければならないそうです。


 こんなヤツを、なでしこ3で、ウェブ上に設置できたら面白そうだなぁ~と思って、なでしこ1で試しに作ってみたんだけど・・・

 まあ、バイオリズム自体は、サインカーブを描くだけなんで、サインもコサインも何も覚えてないけど、プログラム的にはそう難しいことはないんですが、なでしこ3では使えない命令があったり、色々ナゾ現象はあるし、密かに違っているところも多くて、なんだか次から次へとエラーが出る~(*_*;

 たとえば、文字列中の{}の中の変数は、1同様展開されるんだけど、の中で{回数-1}みたいに計算するコトは出来ないみたいなんだよね。不便っす;;;

 でも、それ以前にずっと引っかかっていたのは、<button>タグのonclickに、なでしこの関数を設定したりは出来ないのかしらん・・・とゆうことでした。

 カナリ色々試したんだけど、のところムリっぽい気が~・・・・・・(?)

 ↑バージョン0.1.5でできるようになりました!!!


◆覚え書き◆

※バイオリズムの計算式
日数差=誕生日-基準日。
身体のリズム=23。
感情のリズム=28。
知性のリズム=33。
SIN日数差/リズム*PI*2)

※閏年の計算方法
1、4で割り切れる。
2、ただし、100で割り切れる場合は閏年でない。
3、ただし、400で割り切れる場合は閏年である
トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20170819