• ベストアンサー

switch文

switch文を使って、コンピュータとジャンケンをするプログラムを作らなくてはいけません。 c++です。 まず、ダイアログベースで作っています。グー,チョキ、パーのボタンを配置しました。 このあとボタンを押したときにコンピュータとじゃんけんをしたいのですが、プログラム文をどのようにかいたらいいのかわからないので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

switch ( わたし ) { case グー : switch ( あなた ) { case グー : あいこ; break; case チョキ : わたしのかち; break; case パー : あなたのかち; break; } ... 以下同文

898989
質問者

お礼

さっそくの回答ありがとうございます。(わたし)(あなた)には適当に変数を作ってあてはめればいいのでしょうか?

その他の回答 (4)

回答No.5

ごめん。まちがい。 'グー'ボタンが押されたのなら、 'あなた'がグーであることが自明なので 'わたし'つまり計算機の手に応じて 動きを変える(switch ...する)ことになります。

回答No.4

> 以下のプログラム分はグーの場合ですがこんなかんじでかきこむのでしょうか? 'わたし'がグーであることは自明なのだから、 switch ( me ) は不要です(でしょ?)。

回答No.3

> 以下のプログラム分はグーの場合ですがこんなかんじでかきこむのでしょうか? 僕が示したのは '擬似コード' です。 そのまま入力してもコンパイルエラーとなります。 これを動くコードにするのは 'あなたの仕事' です。 # 乱数については 直下の 1758 参照

回答No.2

>(わたし)(あなた)には適当に変数を作ってあてはめればいいのでしょうか? もちろんです。それぞれの手を現す'なにか'です。 おそらく 'わたし' は乱数でデタラメに決めた手、 'あなた'はどのボタンが押されたかで決まります。

898989
質問者

お礼

ありがとうございます。以下のプログラム分はグーの場合ですがこんなかんじでかきこむのでしょうか? 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("グー"); はボタンを押したと気にエディットボックスが何を出したか表示されます。

898989
質問者

補足

あと、コンピュータが乱数ででたらめに決める手についてもおしえてほしいのですが、これはどこにどのように記述すればよいのでしょうか?たびたびすみません

関連するQ&A