|
/*========================================================*/ <<<あゆしゃの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 |