「じゃんけんバトルゲーム」を実行する

プロジェクトを Down Load して「じゃんけんバトルゲーム」を実行します。

じゃんけんバトルゲームのプログラムは次のページから Down Load して下さい。
Game Program & Tool のダウンロード

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

ゲームの概要

  1. Game Program & Tool のダウンロードから LZH で圧縮されたファイルをダウンロードして解凍して下さい。
    Jyanken のフォルダーの中に必要な全てのファイルが格納されています。
  2. 次の4個のファイルを同じフォルダーに格納して Jyanken.exe を起動して下さい。
    Jyanken.exe 「じゃんけんバトルゲーム」の Main Program
    W_proc.dll 白組の思考関数の DLL
    R_proc.dll 紅組の思考関数の DLL
    Jyan.bmp 画像ファイル
  3. START ボタンをクリックすると W_proc.dll と R_proc.dll の思考関数でゲームが開始されます。
    どちらも最初の思考関数は、乱数で「グー、チョキ、パー」を出すだけです。
  4. タイマ間隔でゲーム速度を調整できます。
    対戦回数でゲームの回数を設定できます。
    対戦回数が少なすぎると思考関数が十分働かないので、対戦するときは千回以上に設定して下さい。
  5. W_proc.dll と R_proc.dll を工夫して、最強の思考関数(DLL)を作成して下さい。
    二つのチームに分かれて思考関数を競うのも面白いでしょう。
  6. 得点表は次のとおりです。
    「グー、チョキ、パー」の組み合わせにより得点が異なります。
    勝ち 負け あいこ
    グー(0) 5点 -5点 3点
    チョキ(1) 2点 0点 1点
    パー(2) 15点 0点 0点


思考関数の例

  1. いつもパーを出すプログラムの例です。
    DllMain() は DLL の Main 関数です。そのまま書いておいて下さい。
        // W_proc.cpp : DLL アプリケーション用のエントリ ポイントを定義します。
    
        #include "stdafx.h"
        #include "W_proc.h"
    
        BOOL APIENTRY DllMain( HANDLE hModule, 
                               DWORD  ul_reason_for_call, 
                               LPVOID lpReserved
                             )
        {
            return TRUE;
        }
    
        // 初期化
        EXPORT char *W_init()
        {
            return ("White パー");
        }
    
        // Play の手を考える
        EXPORT int W_think()
        {
            return(2);           //パー
        }
    
        // 情報
        EXPORT void  W_info(int play1, int play2)
        {
            return;
        }
        
  2. 乱数で出す手を決める簡単なプログラムの例です。
        // R_proc.cpp : DLL アプリケーション用のエントリ ポイントを定義します。
    
        #include "stdafx.h"
        #include "R_proc.h"
    
        BOOL APIENTRY DllMain( HANDLE hModule, 
                               DWORD  ul_reason_for_call, 
                               LPVOID lpReserved
                             )
        {
            return TRUE;
        }
    
        // 初期化
        EXPORT char *R_init()
        {   time_t  nowtime;
            time(&nowtime);
            srand(nowtime%0Xff);
            return ("Red Random");
        }
    
        // Play の手を考える
        EXPORT int R_think()
        {
             return(rand()%3);    //乱数
        }
    
        // 情報
        EXPORT void  R_info(int play1, int play2)
        {
            return;
        }
        


DLL の作成

  1. DownLoad したファイルを解凍すると DLL を作成するプロジェクト一式が格納されています。
  2. R_proc.dsp(W_proc.dsp) をダブルクリックして Visual C++ を起動します。
  3. [ビルド(B)][R_proc のビルド(U)] を実行すると DLL が作成されます。
    Release Mode でコンパイルすると DLL のファイルサイズが小さくなります。
  4. 次のような警告が出ることがありますが無視して下さい。
        LINK : warning LNK4098: defaultlib "LIBC" は他のライブラリの使用と競合しています;
               /NODEFAULTLIB:library を使用してください
        LINK : warning LNK4089: "GDI32.dll" へのすべての参照は /OPT:REF によって廃棄されます
        LINK : warning LNK4089: "USER32.dll" へのすべての参照は /OPT:REF によって廃棄されます
        
  5. Debug または Release のフォルダーに DLL のプログラムファイルが作成されます。
    このファイルを Jyanken.exe と同じフォルダーにコピーして起動して下さい。

[Next Chapter ↓] Main Program の説明
[Previous Chapter ↑] 「じゃんけんバトルゲーム」の説明

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

"C:\Data\WinC\97Game\02Jyanken\"