乱数を使って、三つの山に石を表示

プロジェクトの作成から、乱数を使って三つの山に石を設定して、画面表示するまでを説明します。

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

プロジェクトの作成

  1. 新規プロジェクト(Miyama)を作成して miyama.lib と miyama.h をフォルダーに格納して下さい。
    miyama.h 三山くずし Object Class のヘッダーファイル
    miyama.lib 三山くずし Object Class のプログラムファイル
  2. [プロジェクト][既存項目の追加]から miyama.h をプロジェクトに追加します。
  3. クラスタブを選択して[プロジェクト][プロパティ][リンカ][入力]で追加する依存関係を編集して [miyama.lib] を追加します。
    設定方法は BMP Object Class で画像を表示する を参照して下さい。
  4. Miyama.cpp を表示して、プログラム先頭の適当な位置に次のコードを追加して下さい。
    "Miyama.h" をインクルードして下さい。
    *App は Miyama Object Class の定義です。
    BmpFile は三つの山に表示する石のイメージファイルです。
        #include   "Miyama.h"
        Miyama     *App= NULL;          // Miyama Object Class
        LPSTR       BmpFile= { "jewel.bmp" };
        
  5. CALLBACK WndProc( ) を表示して WM_CREATE: を追加して下さい。
    new Miyama(hWnd,BmpFile) で Miyama Class の Object を生成します。
        LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
        {
            int wmId, wmEvent;
            PAINTSTRUCT ps;
            HDC hdc;
    
            switch( message ) 
            {
                case WM_CREATE:
                    App= new Miyama(hWnd,BmpFile);
                    break;
        
  6. WM_PAINT: に山の石を描画するコードを記述します。
    Miyama Class に実装されている App->Disp(hdc) を呼び出すだけで描画が行われます。
    WM_DESTROY: に delete(App) を記述して Miyama Object を開放して下さい。
            case WM_PAINT:
                hdc = BeginPaint (hWnd, &ps);
                // TODO: この位置に描画用のコードを追加してください...
                App->Disp(hdc);
                EndPaint( hWnd, &ps );
                break;
            case WM_DESTROY:
                if (App) { delete(App);  App= NULL; }
                PostQuitMessage( 0 );
        
  7. ビルド(コンパイル)に続いて実行を行います。
    三つの山に石が表示されたら完成です。
    実行するごとに表示される石の数が変わることを確認して下さい。

[Next Chapter ↓] 山の石をクリック操作で取り除く
[Previous Chapter ↑] 三山くずしゲームを作成する

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