|
/*========================================================*/ <<<あゆしゃのC言語プログラミング>>> /*========================================================*/ 第375回 AYGO8 思考ルーチン 発行 2003年7月28日(月曜日) 発行数 約???? {magclick} {magclick} /*========================================================*/ はじめに ( 決り文句 ) /*========================================================*/ ・このメールマガジンはまぐまぐさんから発行しています。 ・ジャンルは、マルチメディアのプログラム、C言語です。 ・このメールマガジンは、横60文字で作成しています。 また、インデントはすべて半角スペース4つで構成しています。 ・ここで扱うプログラムは、C言語と半光年以内のものです。 ・登録解除は、まぐまぐさんのホームページでお願いします。 ・まぐまぐさんのバックナンバー(下欄参照)を活用して下さい。 ・ここは私の復習の場です。内容は約1ヶ月内外に私が勉強した 内容になっています。最新の技術があれば、へたれもあります。 ・わかりやすさを優先させる為、たまに嘘があるかもしれません。 /*========================================================*/ ご挨拶 /*========================================================*/ こんにちは。あゆしゃです。 愛知県は梅雨が明け、いよいよ夏という感じです。 7月25〜27は、愛知県豊田市のお祭りでした。 おいでんまつりというお祭りで、数万人ものひとがいっせいに 踊りだすというイベントです。 最終日の27日は踊りではなく、花火大会が行われます。 某お金持ち企業がたくさんお金を出すのか、とんでもない数の 花火が毎年打ち上げられています。 踊りはともかくとしても花火は見ごたえがあります。 いっちゃわるいですが、質より量という感じです。 {magclick} /*========================================================*/ 今回のお題 << AYGO8 思考ルーチン >> /*========================================================*/ 以下のファイルをダウンロードすると作りかけのソースを見る ことができます。VisualStudio6.0のプロジェクトです。 ダウンロードしてコンパイルすると、実行ファイルができます ので、それをお確かめください。 http://ayusya.hp.infoseek.co.jp/Download/AYGO08.zip 実行結果のイメージは、こんな感じです。 http://ayusya.hp.infoseek.co.jp/Image/Igo/AYGO09_08.jpg /*========================================================*/ 前回で、こちらが石をおくと、自動的にコンピュータが打ち 返して来るようになっていました。 しかし、実はコンピュータというにはあまりにも卑怯な、 単なるランダムな手を打ってくるだけでした。 そこで今回、簡単な思考ルーチンを組み込みました。 実行結果のイメージを見てください。画面が真っ青ですね。 コンピュータは形成判断を行い、自分流の計算方法によって もっとも最善である手を打ってきます。よって画面が真っ青に なるわけです。 /*========================================================*/ プログラムは、最小の変更にとどめようと思ったのですが、 ・・・この手の修正ははまってしまいます。大幅な修正をほどこし ました。 まずはコンピュータの手を実行するタイマー関数です。 ここで、thinkという関数をコールするように変えました。 この関数の戻り値が真である場合に、コンピュータの手を採用 して内部変数を設定し、画面を再描画しています。 この関数は偽の値を返すこともあります。その場合は コンピュータがパスしたことを表します。 さて、think関数の内部ですが、ここでは、2重ループが 張ってあります。X軸とY軸のループです。 AIGOでは、1重ループでした。 Javaは実行速度が遅いので、高速化のためにわかりやすい座標系 そのままのコーディングをやめています。 しかしC言語は高速です。安心して2重ループします。 そのループの中では次の仕事をしています。 ・すでに石がおかれている場合はスキップ ・コウである場合はスキップ ・打った直後にとられる「禁じ手」である場合はスキップ ・自分でその場所に打ったときに全体のパワーを計算 ・パワーが最大である場合に現在位置を最善手として登録 という感じです。 /*========================================================*/ 全体のパワーを計算するところは、さらに関数に分けています。 make_power_total関数は、パワーボードから数値を取り出し、 それを集計しています。 /*========================================================*/ さいごに /*========================================================*/ 夏ばてだよ〜 そんな私に朗報なのが8月1日のルパン! ルっパ〜ン {magclick} /*========================================================*/ 次回予告 /*========================================================*/ 次回は8月4日(月曜日)に、第376回を送ります。 お題は「AYGO9 第1回 AIGO VS AYGO」 まだヴィオのアトリエにいそがしいので、周一といたします。 さて、思考ルーチンができましたので、早速思考ルーチン対戦と いきましょう! お楽しみに! 実は私が一番楽しいんだけどね! /*========================================================*/ 最後の決り文句 /*========================================================*/ このメールマガジンは、まぐまぐさんから発行しています。 このメールマガジンを解除したい場合は、まぐまぐさんをご利用 ください。このメルマガのまぐまぐアイディーは最後にあります。 このメールマガジンには広告が挿入されます。 このメールマガジンの内容に文面の引用はありません。 めーらっくすの場合はめーらっくすの利用方に従ってください。 このメールマガジンの内容は、転用、流用、宣伝、リンク、 ルパンルパンルパンルパン、ルパンだサー なんて大歓迎です。 {magclick} /*========================================================*/ /*========================================================*/ 発行者 あゆしゃ まぐまぐアイディー 0000020674 まぐまぐバックナンバー http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674 あゆしゃの世界 http://ayusya.hp.infoseek.co.jp/ 登録と解除 http://www.mag2.com/m/0000020674.htm ご意見・ご感想・ご質問メール mailto:ayusya@flamenco.plala.or.jp めーらっくす http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F |