メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.375) AYGO8 思考ルーチン  2003/07/28


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

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