ゲームの Down Load とプログラムの実行

「オセロバトルゲームは Game Program & Tool のダウンロード から Down Load できます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

ゲームの実行

  1. Game Program & Tool のダウンロードから LZH で圧縮されたファイルをダウンロードして解凍して下さい。
    圧縮ファイルには、次のファイルが格納されています。
  2. OseroBattle.exe と二個の DLL を同じフォルダーに格納して OseroBattle.exe を起動して下さい。
    B_proc.dll と W_proc.dll が対戦するオセロゲームが楽しめます。
  3. ボタンの操作法です。
    1. 連続実行ボタンをクリックすると先手(黒)と後手(白)の思考関数が交互に呼ばれてプレイされます。
    2. 停止ボタンは連続実行の停止です。
    3. Play ボタンをクリックすると手番の思考関数が呼ばれてプレイします。
    4. Manual ボタンをクリックするとマウスのクリックでプレイすることができます。
      Play と Manual ボタンを交互に操作して dll と人間が対戦することもできます。
    5. ゲームが終了したときと、打つ手が無くてパスするときにはメッセージボックスで応答確認があります。
    6. 応答するのが面倒なときは、右ボタンをクリックするとメッセージが抑制されます。
    7. 「戻る」のスクロールバーを操作すると局面を再現することができます。
    8. リセットボタンでオセロ盤をリセットして次のゲームを開始することができます。

プロジェクトの説明

  1. B_proc(W_proc も同様)のプロジェクトのフォルダーには次のファイルが格納されています。
  2. B_proc.cpp, W_proc.cpp で定義する関数の仕様です。
    W_proc.cpp の仕様は、関数名が「W_」で始まる以外は同じです。
  3. 「乱数で出す手を決める」B_proc.cpp の簡単な例です。
    先頭の部分は DLL を作成するための記述で、実際のプログラムは「// 初期化」から始まります。
    乱数を初期化していないので、いつも同じ手を打ってきます。
        // B_proc.cpp : DLL アプリケーション用のエントリ ポイントを定義します。
        // いつも同じ結果になるように乱数の初期化は行っていません。
    
        #include "stdafx.h"
        #include "B_proc.h"
        #pragma     comment(lib,"OseroApp.lib")
    
        BOOL APIENTRY DllMain( HANDLE hModule, 
                               DWORD  ul_reason_for_call, 
                               LPVOID lpReserved
                             )
        {
            return TRUE;
        }
    
        // 初期化
        EXPORT char *B_init()
        {   return ("Black Random");
        }
    
        // Play の手を考える
        // 上4 Bit:Y座標、下4 Bit:X座標
        EXPORT BYTE B_think(OseroApp *App)
        {   short   n;
            n= App->Search(App->Teban());   //手番で打てる場所を検索
            if (n==0)   return(0xFF);       //パスのとき
            return(App->S[rand()%n]);       //乱数で決める
        }
        

[Next Chapter ↓] 思考関数の作成方法
[Previous Chapter ↑] 「オセロバトルゲーム」の説明

超初心者のプログラム入門(Win32API C++)