「じゃんけんバトルゲーム」の説明

DLL(Dynamic Link Library)で作成した思考関数を競い合う「じゃんけん Battle Game」の説明です。
ほんの少しC言語の知識があれば 誰でも簡単に思考関数を作成する ことができます。

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

ゲームの概要

  1. 紅白に分かれて「じゃんけんバトルゲーム」の思考関数(DLL)を競い合います。
  2. 次の4個のファイルを同じフォルダーに格納して Jyanken.exe を起動して下さい。
    これらのファイルは 「じゃんけんバトル」を実行する から Down Load できます。
  3. 白組と紅組に分かれて思考関数(DLL)同士が対戦して得点を競います。
    「グー、チョキ、パー」の組み合わせにより得点が異なります。
    得点表は次のとおりです。
    勝ち 負け あいこ
    グー(0) 5点 -5点 3点
    チョキ(1) 2点 0点 1点
    パー(2) 15点 0点 0点
  4. 何時もパーを出せば、勝ち点が大きく、負けたときの減点も無いのですが、そのプログラムが最強でしょうか?
    簡単な戦略として次のようなものが考えられます。
  5. W_proc.dll, R_proc.dll に組み込む関数の仕様です。
    1. char *W_init(void);
      ゲームの開始時に一度だけ呼ばれます。
      乱数や思考関数の初期化などを行って下さい。
      画面上に表示する簡単なID(名前など)を返して下さい。
    2. int W_think(void);
      「じゃんけん」で出す手「グー(0),チョキ(1),パー(2)」を決めてリターンします。
    3. void W_info(int play1, int play2);
      自分の手(play1)と相手の手(play2)を知らせます。
      戦略の解析に使用して下さい。
    R_proc.dll の仕様は、関数名が「R_」で始まる以外は同じです。
  6. 乱数で出す手を決める簡単なプログラムの例です。
    DllMain() は DLL の Main 関数です。そのまま書いておいて下さい。
    int Old; は、前回対戦相手が出した手を記憶しておく領域です。
        // R_proc.cpp : DLL アプリケーション用のエントリ ポイントを定義します。
    
        #include "stdafx.h"
        #include "R_proc.h"
    
        int     Old;
    
        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);
            Old= 0;
            return ("Red Random");
        }
    
        // Play の手を考える
        EXPORT int R_think()
        {    //return(0);           //グー
             //return(1);           //チョキ 
             //return(2);           //パー
             //return((Old+2)%3);   //前回の相手に勝つ手
             //return((Old+1)%3);   //前回の相手に負ける手
             return(rand()%3);    //乱数
        }
    
        // 情報
        EXPORT void  R_info(int play1, int play2)
        {   Old= play2;
            return;
        }
        

[Next Chapter ↓] 「じゃんけんバトルゲーム」を実行する

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

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