- ベストアンサー
switch文
switch文を使って、コンピュータとジャンケンをするプログラムを作らなくてはいけません。 c++です。 まず、ダイアログベースで作っています。グー,チョキ、パーのボタンを配置しました。 このあとボタンを押したときにコンピュータとじゃんけんをしたいのですが、プログラム文をどのようにかいたらいいのかわからないので教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
switch ( わたし ) { case グー : switch ( あなた ) { case グー : あいこ; break; case チョキ : わたしのかち; break; case パー : あなたのかち; break; } ... 以下同文
その他の回答 (4)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
ごめん。まちがい。 'グー'ボタンが押されたのなら、 'あなた'がグーであることが自明なので 'わたし'つまり計算機の手に応じて 動きを変える(switch ...する)ことになります。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 以下のプログラム分はグーの場合ですがこんなかんじでかきこむのでしょうか? 'わたし'がグーであることは自明なのだから、 switch ( me ) は不要です(でしょ?)。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 以下のプログラム分はグーの場合ですがこんなかんじでかきこむのでしょうか? 僕が示したのは '擬似コード' です。 そのまま入力してもコンパイルエラーとなります。 これを動くコードにするのは 'あなたの仕事' です。 # 乱数については 直下の 1758 参照
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
>(わたし)(あなた)には適当に変数を作ってあてはめればいいのでしょうか? もちろんです。それぞれの手を現す'なにか'です。 おそらく 'わたし' は乱数でデタラメに決めた手、 'あなた'はどのボタンが押されたかで決まります。
お礼
ありがとうございます。以下のプログラム分はグーの場合ですがこんなかんじでかきこむのでしょうか? void CFightDlg::OnGu() { CEdit* myED1= (CEdit*)GetDlgItem(IDC_EDIT1); myED1->SetWindowText("グー"); switch me { case グー : switch you { case グー : あいこ; break; case チョキ : わたしのかち; break; case パー : あなたのかち; break; } } ちなみに CEdit* myED1= (CEdit*)GetDlgItem(IDC_EDIT1); myED1->SetWindowText("グー"); はボタンを押したと気にエディットボックスが何を出したか表示されます。
補足
あと、コンピュータが乱数ででたらめに決める手についてもおしえてほしいのですが、これはどこにどのように記述すればよいのでしょうか?たびたびすみません
お礼
さっそくの回答ありがとうございます。(わたし)(あなた)には適当に変数を作ってあてはめればいいのでしょうか?