ページ 11

構造体配列の種類分けについて

Posted: 2008年1月30日(水) 17:34
by Cげんが~
こちらの掲示板で質問させていただいたおかげで、構造体の配列を作る事が出来ました。
本当にありがとうございました。

次のステップに移り、次は構造体配列のひとつひとつを、種類分けしようとしてるんですが、
なかなか上手く出来ません。
例えば、構造体配列 element[10]があるとしまして、そのメンバにkindがあります。
そのkindを1~5までの好きな数字に変えたいんですが、
何かいい方法はありませんでしょうか?

現在描いたプログラムは

//マウスが範囲0≦x≦32、0≦y≦32でクリックされれば、elementの種類を4にする。
else if(IsDownMouseLeft(mouseInfo)
&& (0<mouseInfo->pos.x && mouseInfo->pos.x<=32)
&& (0<mouseInfo->pos.y && mouseInfo->pos.y<=32))
element->kind = 1;

//マウスが範囲0≦x≦32、195≦y≦220でクリックされれば、elementの種類を2にする。
if(IsDownMouseLeft(mouseInfo)
&& (0<mouseInfo->pos.x && mouseInfo->pos.x<=32)
&& (195<mouseInfo->pos.y && mouseInfo->pos.y<=220))
element->kind = 2;
         ・
         ・
         ・


としましたが、一回目のクリックでは種類分けできるものの、また、違う場所をクリックしますと、
一旦種類分けしたものまでも、また種類が変わってしまいます。

どのようにしたらよいのでしょうか?ご教授お願いします。


やりたいことのフローチャートは
 
                →→→→→→→「素子の種類は1」→→→
               ↑ ※種類1 ↓
「素子の種類defalt」→→「種類分け」        「END ※一度決められた種類は変えられない」 
               ↓ ※種類2              ↑
                →→→→→→→「素子の種類は2」→→→

です。よろしくお願いします。

Re:構造体配列の種類分けについて

Posted: 2008年1月30日(水) 17:37
by Cげんが~
すいません。フローチャートの方、上手く描けていませんでしたので、
訂正させていただきます。

                →→→→→→→「素子の種類は1」→→→
               ↑ ※種類1                   ↓
「素子の種類defalt」→→「種類分け」        「END ※一度決められた種類は変えられない」 
               ↓ ※種類2                   ↑
                →→→→→→→「素子の種類は2」→→→

Re:構造体配列の種類分けについて

Posted: 2008年1月30日(水) 18:12
by やそ
再度変わってしまうことを避けたいのならば、
if文にそれを反映させればいいだけのような気が・・・

          <yes>   →→→→→→→「素子の種類は1」→→→
               ↑ ※種類1                   ↓
「素子の種類defalt」→→「種類分け」        「END ※一度決められた種類は変えられない」 
          ↓    ↓ ※種類2                   ↑
          ↓<no>   →→→→→→→「素子の種類は2」→→→
          ↓
「END ※一度決められた種類は変えられない」

でしょうかね。

Re:構造体配列の種類分けについて

Posted: 2008年1月30日(水) 19:18
by Cげんが~
返信ありがとうございます。

> 再度変わってしまうことを避けたいのならば、
>if文にそれを反映させればいいだけのような気が・・・

知識不足のため、どのようにすればよいのか分かりません。
もしよろしければ、教えていただけないでしょうか?
お願いします。

Re:構造体配列の種類分けについて

Posted: 2008年1月30日(水) 20:59
by box
> 例えば、構造体配列 element[10]があるとしまして、そのメンバにkindがあります。

この定義だと

>         element->kind = 1;

element[0].kind = 1;

のように書くのではありませんか?
違っていたらすみません。

あるいは、

>         element->kind = 1;

において、変数elementは当該の構造体を指すポインタ変数として
定義しているのでしょうか?

Re:構造体配列の種類分けについて

Posted: 2008年1月30日(水) 21:51
by Cげんが~
boxさん、やそさんありがとうございます。

>element[0].kind = 1;
>のように書くのではありませんか?

のように、ひとつひとつを分けて考えてみましたら、何とかできそうです。

まだ、完璧に出来た訳ではありませんが。
これから改善がんばってみます。ありがとうございました。