2017-01-07 11 views
0

私はMFCの昔のゲーム(DungeonsやDragonsのようなもの)を作成しています。私はCPointオブジェクトとして自分のキャラクターの位置を表しています。 マップは(0,0)から(9,9)、10 x 10の間にあります。 各ポイントにはそれぞれ異なるストーリーが必要です。 どのように各ポイントと何が起こったのかを選択するのが一番ですか?ゲームマップ(MFC、CPoint)で100の状況を選択する最も良い方法

私はいくつかのオプションについて考えた:

A.私は移動ボタンでプレイヤークリック(examplのために彼は東に移動することを選択した)ことを毎回確認し、そしてtはその中で起こっすべきかどうか確認する多くのIFSを行います場所。

例:私は同じですが、すべての場所(可能であれば)上のスイッチで操作を行います

void CProjectDlg::OnBnClickedWest() 
{ 
    (*Location).x--; 
    if(Location->x ==0) 
     CWest.EnableWindow(false); 
    if(Location->x <9) 
     CEast.EnableWindow(true); 

    if(Location->x==0 && Location->y==0) 
     do something; 
    else 
     if(Location->x==1 && Location->y==0) 
      do something else...; 
    etc...; 
} 

B.。 例:

void CProjectDlg::OnBnClickedWest() 
{ 
    (*Location).x--; 
    if(Location->x ==0) 
     CWest.EnableWindow(false); 
    if(Location->x <9) 
     CEast.EnableWindow(true); 

    switch(Location) 
     case ((0,0)): 
     something; 
} 

私は

はどうもありがとうございまし助けてください!

+0

私はあなたがより快適に感じさせるものを使用して、と言うでしょう。 –

+0

一般的な解決策'if'カスケードや巨大な' switch'文の複雑さを減らすためにルックアップテーブルを使用することです。 – IInspectable

答えて

0

終わりに、答えは100個のオプションの間で選択するための最良のあった(ベーススイッチを使用していたが...おかげでみんな!

関連する問題