////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    送信日： 2002/01/07(Mon) No.139
    配信数： 3750 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                          新年の御挨拶                          */
『新年、あけましておめでとー！』
「あけましておめでとうございます」
『１年間、かぶヘッダーをご愛読していただき誠にありがとう！』
「去年はいろいろあったからねぇ」
『ってゆーか、辞書とかなくなったし、小説加わったし』
「 #pragma twice だけは続けてるけどね」
『本家かぶスタが更新してないのに比べて、うちはけなげよねー』
「ある意味、 KAB-studio 希望の星かも」
『今年もそれが中心？』
「うん、コンテンツ的には変わらないはず」
『日記とふーがとぷらとわね』
「この３つは死守するので、これからもご愛顧よろしくお願いいたします」
『……死守って、そんなやばいの？』
「ぷらとわがちょっと……」

////////////////////////////////////////////////////////////////////
/*                ２００２年１月７日（月）の更新                  */
http://www.kab-studio.com/

・更新なし
　いきなりですが更新はお休み。たぶん１月は忙しくてほとんど何もできな
いと思う……。


////////////////////////////////////////////////////////////////////
/*                        チョー普通な日記                        */
http://www.kab-studio.com/nikki2/

2001/12/23 (Sun)
　ほとんど何もせず。カレーにはパン。新しいトップページのイメージ。テ
レビはコメットさんっつーかメテオさんがよろしい。今年を振り返る・５月
と６月。一人暮らしを開始して、そして始めてのお仕事。

2001/12/24 (Mon)
　１月表紙壁紙完成。新しいトップページ向け。今年を振り返る・７月と
８月。始めて作成した業務用プログラム、残業休出、そして長崎旅行。なん
となくないじめ(爆)。猫がいればいい？

2001/12/25 (Tue)
　お仕事はなんとかなりそう？　最終兵器彼女最終巻。良かったにゃー。今
年を振り返る・９月。忙しかったり忙しくなかったり。そして ESC キーで
のキャンセル。ダイアログが原因？

2001/12/26 (Wed)
　他ベンダーの API は使いづらい。でもこれをパスしたら結構いい感じ
に。今年を振り返る・１０月。アニメの展望。セルシェーディングがブレイ
クしそう。

2001/12/27 (Thu)
　仕事のプログラムについて。エセ C 。ぐちゃぐちゃなとこがあるけどバ
グ入れちゃいそうで手を加えづらい。 GGXX 。今年を振り返る・１１月と
１２月。プロトタイプ作成、そしてメインシステム作成。あっという間の
１年。現実の厳しさと甘さ。ま、このままやってけばなんとかなりそう？

2001/12/28 (Fri)
　仕事の方は順調。でも明日あさってと４時間ずつくらい出る予定。納会で
ピザ。１月表紙壁紙に背景を追加。新しいトップページ。ココロ図書館最終
回。良かったなー。今クール一番？　そして OJT 。教える人に左右され
ちゃうんですよねー。

2001/12/29 (Sat)
　日記書いたのは３０日。徹ゲーしました。３０分しか休出しなかったし。
マリオカートとウィニングイレブン。休出しない……。プログラマーの年末
年始。お仕事は増える一方ですよー。

2001/12/30 (Sun)
　横浜に行ってゲーマーズでデ・ジ・キャラット前売り券購入。スマブラな
いなぁ。 CD-R にバックアップ。新しいトップページ。でも見にくい？

2001/12/31 (Mon)
　大掃除とかダビングとか。今年最後のメールは Badtrans.B 。２００１年
は自由を得た１年。だからこそ、自分のために生きたいと思う。かぶスタは
そういう人間が作ってるってことを忘れないで。

2002/01/01 (Tue)
　里帰りにつきお休み。

2002/01/02 (Wed)
　里帰りにつきお休み。

2002/01/03 (Thu)
　年末年始はゆっくりしてきました。コタツっていいなぁ。１日はボーリン
グでコツを発見。２日目はパソコンを教えたり。３日目はのんびり。帰って
きたら仕事のメール(泣)。手描きの年賀状がめんどくさい……。部屋が寒い
なー。

2002/01/04 (Fri)
　朝からお仕事。有休取ったのに。まぁわてが悪いんだけど。バグはリビル
ドしたらあっさり解決。某データセンターへ持っていってテストして１０時
に上がり。午後に冬の角川アニメを。あずまんが大王もデ・ジ・キャラット
もスレイヤーズも良かったです！　残りひとつは……。

2002/01/05 (Sat)
　あんまりのんびりせず。タブレット環境を良くしたからイラスト描けるか
も。サンルームってストーブは結構いいかも。 lain レベルのアニメっても
うないんかなぁ。ハイブリッドデッキの再生機能が良くない……。キーボー
ドが欲しい。音が出るのね。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.com/Novel/Fuga/

■　第三章　きもち　−２−

　舞は、精悍な顔つきをしていた。再び札を取り、構える。
「運命とも立ち向かえる、って顔だな」
　そう奨が言うと、舞は反応して、顔を曇らせた。
「舞……」
　舞の顔は曇りっぱなしで、そのまましゃがみ込み、着物を拾って羽織っ
た。帯を締め、奨のいるところまで降りる。ひょいと二メートル以上ある所
から軽々と飛び降りる様は、兄の目から見て悪くはないと感じた。
「だって、しょうがないじゃない」
　他の物と柄の違う青いビート板を取って、フェンスに向かって立つ。その
向こうには、光の射し込む山々が立ち並んでいる。
「私ががんばらないと、みんなを護れない。私なら、みんなを護れるか
ら……」
　舞は顔だけ奨の方へと向けた。
「仕方ないから、ね」
　闇に閉ざされたその姿の中で、鼻先と前髪と瞳だけが、きらびやかにきら
めいていた。
「嫌なら……舞が背負わなくったっていいんだ……」
　その言葉は、誰に向けられているのか判らない。奨は舞を巻き込んでいく
運命を呪っていた。そして、それを肩代わりできない自分の不甲斐なさに
も。
　舞が出遭った数度の危機。奨はその場に居合わせていないが、舞のように
振る舞えるとは思っていない。たとえ、体力や知力の面で舞を上回っている
と確信していても。
　それほどまでに、「泉の洗礼を受けた者」という事実は、重い。
「私は、大丈夫」
　舞は奨の方へと完全に向き直り、そう言った。
「木村君や恭子を護らなくちゃいけないし、あたしのせいで巻き込んだんだ
から。みんな解ってくれてると思うし、それに……」
　奨は、舞の笑みが、ほんの一瞬、とても暖かい――もしかしたら熱い――
笑顔に変わり、それが苦笑に変わったと、錯覚かと思いながらも、感じた。
「じゃ、先に帰ってるから」
　数枚の護符をフェンス外へと放り投げ、指揮者のように両腕を振るう。下
から水が噴き上がり、ビート板を挟む形で水の頂上へと立った。下からこん
こんと噴き上がる水の柱がビート板を押し上げ、即席のエレベーターを造り
出していた。
「タンク、置いて行けよ」
　うんとうなずいて、舞は降りていった。
「……本人は、周りほど悩んじゃいないか」
　早朝に吹く風は、思いの外冷たかった。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『このメルマガは置いといて、本家かぶスタの方はどうなの？』
「特に変化なし、みたいだね」
『辞書復活とか、そんな暇ないのねー』
「ただ」
『ただ？』
「 #pragma twice をホームページ化するって話があるみたい」
『げ！　それってここから消えるってコト！？』
「ううん、そうじゃなくてバックナンバーとして古いのから」
『あー、そーゆーこと。でもなんでまた今さら』
「 google で KAB-studio.h って検索すると」
『ふーん、まぐまぐのバックナンバーとか出ないんだ』
「 #pragma twice って初心者向けの情報が揃ってるのに」
『これじゃあまり知られてなさそうだね』
「だから、ホームページ化して検索に引っかかるようにしようってこと」
『って、なんかそれずっこい……』
http://www.kab-studio.com/
_______________________________________________________________[KCM]


////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

　Version 7.19
ランダマイズとのべ秒

「今回はちょっと横道にそれて、〈ランダマイズ〉ってものを紹介します」
『らんだまいず？』
「〈ランダム〉は知ってるでしょ」
『テキトーってゆーかバラバラってゆーか、そういうののことだよね』
「そうそう。日本語だと〈乱数〉、英語で random 。このランダムを作るこ
とを〈ランダマイズ〉って言います。ゲームなんかだとランダムはとても大
切だからね」
『そりゃそーよね、敵がいっつも同じふうに攻撃してきたらゲームになんな
いもんね』
「今回はちょっとランダムなアニメーションをするつもりだから、その前に
ランダムをってことで。色々勉強になるしね」
『……なーんか嫌な予感するけど……』
「まーねー、ちょっとこつこつした話になってくるからね。ま、とりあえず
使ってみましょう」

void CAnimeDlg::OnBDraw() 
{
    int iRandData;
    for( int iF1 = 0; iF1 < 5; iF1++ )
    {
        // ランダムな値を作成！
        iRandData = rand();
        TRACE( "%d\n", iRandData );
    }

    // 下のは前の。
    ::KillTimer( GetSafeHwnd(), 100 );
}

『あ、前の KillTimer() が残ってる』
「これは一応取っといて。タイマーのをまた後でやるかもしれないから」
『かも、って……まーいーや。この rand() っていうのがランダムなの？』
「そう、これはランタイムのひとつで、適当な整数値を戻り値として返しま
す。それを５回呼んでみました」

41
18467
6334
26500
19169

『おおっ、見事にバラバラ！』
「こういうふうに、ランダムな値を取り出すのにこのランタイムを使いま
す。あ、もう一度やってみて」
『ほいっ』

41
18467
6334
26500
19169

『おおっ見事にバラバラ、ってさっきと同じじゃない！！』
「そう、実は rand() をそのまま使うと〈決まってるバラバラ〉な値が返っ
てくるんです」
『決まってるバラバラ……って、それじゃ全然ランダムじゃないじゃな
い！』
「そう。なぜかっていうと、コンピューターは実はランダムが苦手だから」
『苦手？　コンピューターが？』
「コンピューターは決まったことを決まったようにするのは得意なんだけ
ど、テキトーにするのは苦手なんだよね」
『どうして？』
「たとえば歯車。コンピューターの中身は機械仕掛けの時計みたいに、きっ
ちり歯車が噛み合ってる状態」
『それだとランダムなことが起きないわけね』
「いきなり１時が７時になったりはしないからね。この歯車の歯がいきなり
ひとつずれる、ってことはあまりないから」
『落としたりしたらずれるんじゃない？』
「そこがポイント」
『へ？』
「外からショックを与えれば、ちゃんと噛み合ってた歯車もずれるでしょ。
そのショックっていつ起きる？」
『いつって、いつかわからないいつか……あ！　それってランダム？』
「そういうこと。つまり外からランダムな要因を取り込めば、ランダムのな
いコンピューターの世界にランダムを入れられるわけです」
『……なんか、変……ランダムがないから外からもらうなんて』
「コンピューターの変な部分のひとつかもね。ちなみにこの、ランダムを作
るために外から加えるもののことを【乱数の種】って言います」
『乱数の種を蒔くとランダムな値が出てくる？』
「そゆこと。そのあたりをやってみましょう」

void CAnimeDlg::OnBDraw() 
{
    // 乱数の種を蒔きます。
    srand( 100 );

    int iRandData;
    for( int iF1 = 0; iF1 < 5; iF1++ )
    {
        iRandData = rand();
        TRACE( "%d\n", iRandData );
    }

    // 下のは前の。
    ::KillTimer( GetSafeHwnd(), 100 );
}

『 srand() っていうのが、乱数の種を蒔くためのものだね』
「このランタイムを呼ぶと、 rand() の値がさっきと変わります」

365
1216
5415
16704
24504

『さっきと値が違う！』
「もう一度やってみて」

365
1216
5415
16704
24504

『おおっ、今度は、って今度も同じー！！』
「これは、 srand() の引数が同じだから」
『 100 を渡してるね』
「この値が乱数の種。この値が同じだと、 rand() の値も毎回同じになりま
す」
『毎日同じ時刻に時計落っことすようなもんね』
「だから、この乱数の種は、ランダムな値を入れなきゃいけないわけです」
『ってことはここに……何入れればいいの！？　 rand() は決まってるから
ランダムじゃないし、他にランダムがなかったらランダムにならないじゃな
い！！　あ、水希ちゃんが毎回違う値入れれば』
「それは面倒かも……まぁ、乱数の種はホントにランダムじゃなくてもいい
んです。ただ、値を取り出すたびに、ランダムの種の数字をまったく違うも
のにすればいいだけ」
『違えると？』
「 rand() で同じような値が出てくることがなくなるから、その時は」
『ホントのランダムになるわけね。でも、毎回違う値も難しくない？』
「うん、結局はこれも〈外〉から取り込まないといけないんだよね。で、こ
れには〈時計〉を使います」
『そっか！　時間はいつも違うもんね』
「そこで time() ってランタイムを使います」

void CAnimeDlg::OnBDraw() 
{
    time_t lTime_t;
    time( &lTime_t );
    TRACE( "%d\n", lTime_t );
    // 1008433967

    // 下のは前の。
    ::KillTimer( GetSafeHwnd(), 100 );
}

『 time_t って謎の引数を渡してるね』
「実際には long 型。ランタイムはこういうふうに普通の型を違う名前で
使ってること多いから、ちゃんと調べてね」
『ファイルから検索でっと、 typedef されてるね』
「そのポインタを渡すと、そこに現在時刻が返ってきます」
『でも変な値しか返ってきてないよ？』
「 time() は秒しか返ってこないからね」
『びょ、秒だけ！？』
「１９７０年１月１日０時０分０秒からののべ秒」
『使えなさそう……』
「普通の時刻は、こののべ秒を他のランタイムに渡せば分かるから」
『あ、そーゆー仕組みねー』
「ま、それはまた今度。で、この秒を乱数の種に使えば」
『毎回違う値になる！』
「ではやってみましょう」

void CAnimeDlg::OnBDraw() 
{
    time_t lTime_t;
    time( &lTime_t );

    srand( lTime_t );

    int iRandData;
    for( int iF1 = 0; iF1 < 5; iF1++ )
    {
        iRandData = rand();
        TRACE( "%d\n", iRandData );
    }

    // 下のは前の。
    ::KillTimer( GetSafeHwnd(), 100 );
}

4802
2789
13024
15284
18714

『ほいもう一度！』

4894
8833
21701
929
12610

『うん、今度はちゃんと違う！』
「こういうふうに、秒ならある程度乱数の種として機能するわけ」
『ある程度？』
「たとえばネットワークゲームでいろんな人が同時に乱数を使ったら？」
『同じ秒の可能性大……』
「そういう場合には乱数の種を工夫する必要があるかな」

/*
    Preview Next Story!
*/
『でも時間以外の種って？』
「専用のハードウェアを使うとか、ネットワーク上から出力するとか」
『なんか複雑〜』
「プログラミングよりも、そういうのの仕組みの方が難しいかもね」
『なんかめんどそう』
「というわけで次回」
＜ Version 7.20 時間あれこれ ＞
『につづく！』
「時間もまた複雑な話なんだ」
『ポピュラーそうなのに』
「そういうのが結構、ってことなのかもね」


////////////////////////////////////////////////////////////////////
/*                ２００２年１月１４日（月）の更新                */
http://www.kab-studio.com/

・KAB-studio.h 縮刷版更新
　KAB-studio.h が１４０号になるので縮刷版を更新する予定です。縮刷版
のダウンロードはダウンロードルームにて。
[ ダウンロードルーム ]
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

    (C)KAB-studio 1999 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////

