メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.531) GIBS 0.5 先行試作版  2005/01/21


/*========================================================*/
    <<<あゆしゃのC言語プログラミング>>>
/*========================================================*/
 第531回 GIBS 0.5 先行試作版
 発行    2005年1月23日(金曜日)
 発行数   約2600

{magclick}
/*========================================================*/
 はじめに ( 決り文句 )
/*========================================================*/
・このメールマガジンは、主にまぐまぐさんから発行しています。
・ジャンルは、マルチメディアのプログラム、C言語です。
・横60文字で作成し、インデントは大抵半角スペース4つです。
・ここで扱うプログラムは、C言語と半光年以内のものです。
・登録解除は、メルマガのホームページでお願いします。
・過去ログはバックナンバー(下欄参照)を活用して下さい。
・内容は私が感じたもので、最新の技術も、へたれもあります。
・わかりやすさを優先させる為、たまに嘘があるかもしれません。
・セキュリティ突破のため、暗号化された単語があります。

/*========================================================*/
 ご挨拶
/*========================================================*/

 こんにちは。あゆしゃです。

 現在、バージョン1.0.0.4まで作ったLCですが、小数点以下の
計算に誤差が多く、ちょっと残念に思っている今日この頃です。

 計算をそのまま行う以上、
−1ビット目が0.5
−2ビット目が0.25
−3ビット目が0.125
−4ビット目が0.0625
−5ビット目が0.03125
−6ビット目が0.015625

 という感じで扱い、0.1を表現する場合は
−4ビット目の0.0625+
−5ビット目の0.03125=0.09375

 という感じで近似値として表現する以外にありません。

 この誤差が結構目に見えるレベルで現れるので、どうしようかと
悩んでいたのですが、

★しょうがないのです。

{magclick}
/*========================================================*/
 今回のお題  << GIBS 0.5 先行試作版 >>
/*========================================================*/

 今回、公開するに当たり、ユーザの登録処理を消さなければいけ
ないなぁと思って、その呼び出し元を探したのですが、見当たり
ませんでした。

 どうも、以前の「消しちゃった事件」で消えてから、復元して
いないようでした。危ないなぁ。

/*========================================================*/

 それはさておき。

http://ayusya.hp.infoseek.co.jp/cgi-bin/GIBS/GIBS.html

 ここからゲストログインしてみてください。
 ゲストで中を見ても全然面白くないのですが、「マップ全体」
を表示してみてください。

 マップ全体の画面は、ユーザで見ても代わりがありません。
 そしてこの画面は見るだけでも面白いです、中毒者にとっては。

 あゆしゃ連邦とあゆしゃジオンがマップを2分しており、そして
サイド6でファーストコンタクトが発生しています。

 サイド6を開くと、以下のような戦闘ログを見れます。

/*========================================================*/
戦闘ログ

ROUND 1

(ZN.1)試験用HLVが索敵を開始。
(EF.16)試験用HLVが索敵を開始。

ROUND 2

(ZN.1)試験用HLVが索敵、敵影なし。
(EF.16)試験用HLVが索敵、敵影なし。

ROUND 3

(ZN.1)試験用HLVが(EF.16)を発見。
(EF.16)試験用HLVが索敵、敵影なし。

ROUND 4

(ZN.1)試験用HLVが(ZN.1)試験用HLV(EF.16)試験用HLVに
攻撃体勢。
(EF.16)試験用HLVが(ZN.1)を発見。

ROUND 5

(ZN.1)試験用HLVが近距離から(ZN.1)試験用HLV(EF.16)試験
用HLVを攻撃、115のダメージ、これを撃墜。
(EF.16)試験用HLVが大破。
/*========================================================*/

 という感じです。
 状態遷移の内容は、以下のようになります。

ラウンド1 状態が FIND の状態になる
ラウンド2 FIND の状態から TARGET の状態に遷移できない
ラウンド3 ジオン側が連邦を発見(50%)、TARGETに遷移
ラウンド4 TARGET 内部の状態が LONG に遷移
ラウンド5 ジオン側が攻撃、1撃で撃破、
      連邦側は BREAK の状態に遷移

 状態遷移図を参考にしてください。
http://ayusya.hp.infoseek.co.jp/Image/UMLsample_GIBS.png
http://ayusya.hp.infoseek.co.jp/Perl_GIBS_sample1.html

 現在はもう少し書き足されていますが、大枠は変わっていませ
ん。

 BREAK という状態は SHIP と UNIT の同列にある状態で、
ユニットの消去(()の代入)を実行するところです。

 きっと次のターンのラウンド1で、それが実行されます。

 そしてその後のラウンド5で、サイド6がジオンに制圧される
でしょう。

 マップ制圧はラウンド5限定、SHIP.OUT の状態で行います。
 マップ制圧も状態遷移図に組み込んでしまうことで、制圧判定を
一括で行うよりも高速に処理できるかというスンポーです。

/*========================================================*/

 微妙に表記がおかしいのは、笑ってやってください。

/*========================================================*/

{magclick}
/*========================================================*/
 さいごに
/*========================================================*/

 整数部と小数部を分けて、整数部は整数部で、小数部は小数部で
計算を行う、という方法もあります。

 それならば、文字列から少数を読み込む場合には正確な値が
取得できます。

 が、計算処理部が面倒です。。

{magclick}
/*========================================================*/
 次回予告
/*========================================================*/

 次回は1月24日(月曜日)に、第532回をお送りします。
 お題は「PerlChecker1」

 Perl の文法チェックを行うアプリケーションについて考えて
見ます。

 お楽しみに!

/*========================================================*/
 最後の決り文句
/*========================================================*/
 このメールマガジンは、まぐまぐさんから発行しています。
 このメールマガジンを解除したい場合は、まぐまぐさんをご利用
ください。このメルマガのまぐまぐアイディーは最後にあります。
 このメールマガジンには広告が挿入されていますか?
 このメールマガジンの内容に文面の引用はありませんか?
 めーらっくすの場合はめーらっくすの利用方に従ってください。
 このメールマガジンの内容の、転用、流用、宣伝、リンク、
$を拾うだけなら簡単のはず なんて大歓迎です。

{magclick}
/*========================================================*/
 
/*========================================================*/

発行者 あゆしゃ

ホームページ::あゆしゃの世界
http://ayusya.hp.infoseek.co.jp/

ご意見・ご感想・ご質問メール
mailto:ayusya@flamenco.plala.or.jp

まぐまぐ::アイディー
0000020674

まぐまぐ::登録と解除
http://www.mag2.com/m/0000020674.htm

まぐまぐ::バックナンバー
http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674

めーらっくす::アイディー
MM3E1AEE285AB4F

めーらっくす::登録と解除
http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F 

めーらっくす::バックナンバー★最近のものならこちらが便利★
http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F

ブラウザの閉じるボタンで閉じてください。