プロが教える店舗&オフィスのセキュリティ対策術

VC++でMFCで簡単なカードゲームを作ろうとしています。

Com■■■■■ ←適当なアルゴリズムでカードを出す
   [ 場 ]
Man■■■■■ ←マウスでクリックしたカードを出す
・人間 VS コンピュータで交代に場に手札を出す
・手札はそれぞれ5枚ずつ持っている

以下のような処理を考えたのですが、人間のターンにおいて、マウスがクリックされるまでどうやって待機すればいいのか教えてください。
お願いします。

void CGameDlg::GameTurn(void){
 while(n_com!=0 || n_man!=0){ // n_com,n_man=カード残り枚数
  if( turn==1 ){ // turn:1=コンピュータ
   《カードを選んで出す処理》(省略)
   n_com--;
   turn=0; // ターン交代
  }
 else{ // turn:0=人間
   《マウスの入力を待つ処理》
    ?? ここが分かりません ??
   n_man--;
   turn=1;
  }
 }
 return;
}

void CGameDlg::OnLButtonDown(UINT nFlags, CPoint point){
《マウスクリックされた札を出す処理》(省略)
}

A 回答 (2件)

Windowsのプログラムはイベントドリブンです。


マウスの入力を意識して待つ必要はなくクリックされればクリックされたというメッセージがプログラムに伝えられます。
プログラムはメッセージを受け取ると自動的にそのメッセージに対応した処理を(その処理がプログラムされていれば)実行します。

void CGameDlg::OnLButtonDown(UINT nFlags, CPoint point){
// コンピュータ側の処理
// 人間側の処理
// 終了判定処理
}
    • good
    • 0
この回答へのお礼

あぁ、言われてみればそうですね!
無事に処理できるようになりました。
ありがとうございます!!

お礼日時:2007/01/19 04:51

自動的にというのは変ですね


MFCならメッセージマップ等で処理しますがこの辺はVisual C++が自動的に書いてくれたりするのでそう書いてしまいました
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!