• ベストアンサー

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

  • 10回じゃんけんの確率計算

    モバゲーにて、10回じゃんけんを同時にして合計6勝以上したら、景品がもらえるという遊びがはやっています。 そこで6勝以上する確率の計算法もしくは、6勝以上する確立を教えていただけないでしょうか? 相手「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」 自分「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「パー」「グー」 このように10回じゃんけんを一度に出し、合計の勝利数で決まります。二人同時に手をだします。 この例だと、自分が6勝です。 あいこは、勝ちには入りませんので、負けと同じ扱いです。 説明不十分かと思いますので、対戦例を2点かきます。 相手「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「チョキ」 自分「グー」「チョキ」「チョキ」「グー」「チョキ」「グー」「チョキ」「グー」「パー」「グー」 ↑これは、自分が、5勝です。 相手「グー」「グー」「グー」「グー」「グー」「グー」「グー」「グー」「グー」「グー」 自分「パー」「パー」「パー」「パー」「パー」「パー」「パー」「パー」「パー」「パー」 ↑これは自分が10勝です。 じゃんけんの手は、二人とも、同時に10手だします。6連勝じゃなく、負けても、何度目で勝ってもいいので、6回以上かてた時の確率を知りたいです。

  • エクセルなどで、ボタンを押すとじゃんけんの「グー」「チョキ」「パー」が

    エクセルなどで、ボタンを押すとじゃんけんの「グー」「チョキ」「パー」が表示されるプログラムを作りたいのですが可能でしょうか。 できればグーなど手の形はイラストを使いたいです。当方パソコン初心者です。

  • pの出す手の確率→グー:チョキ:パー=1/2:1/

    pの出す手の確率→グー:チョキ:パー=1/2:1/4:1/3qの出す手の確率→グー:チョキ:パー=1/4:1/3:1/4 (1)2回じゃんけんしてqがグーで勝つ確率 (2)4回じゃんけんしてpがパーかチョキで勝つ確率 教えてくださいm(_ _)m

  • 右手と左手で、自分でジャンケンしてみて下さい

    例えば右手が常に勝つジャンケンをします。 ・右手がパーで、左手はグー ↓ ・右手がグーで、左手はチョキ ↓ ・右手がチョキで、左手はパー これを、素早く繰り返してみて下さい。 間違えないでできますか? 何回くらいでおかしくなりますか?

  • じゃんけんの最初で、チョキを出すと負ける気がする?

    じゃんけん・・・誰もがやったことがあるでしょう。 そのじゃんけんで、最初に何を出すか頭の中で考えますが、チョキを出すと負ける気がする・・・ そういう感覚はないですか? 皆さんの中で、じゃんけんの最初で負ける気がする、出したくないのは何ですか? グー? チョキ? パー?

  • ゲーム理論(混合戦略)について

    ゲーム理論(混合戦略)についての質問です。 A_B--(グー)-(チョキ)-(パー)--- (グー) (0,0)(1,-1)(-5,5) (チョキ) (-1,1)(0,0)(2,-2) (パー) (5,-5)(-2,2)(0,0) 次の確率でじゃんけんとする。 プレーヤーA グー:a チョキ:b プレーヤーB グー:X チョキ:Y 上記の場合、 プレーヤーAのベストミックスは(a;1/4 b;5/8 c;1/8) プレーヤーBのベストミックスは(a;1/4 b;5/8 c;1/8) で正しいでしょうか?

  • C言語について

    C言語のじゃんけんゲームを作成したいのですが、 仕様は 1.利用者とコンピュータによる対戦形式とします。 2.利用者がキーボードから入力した手(グー・チョキ・パー)と、擬似乱数を用いて生成したコンピュータの手を比較し、利用者の勝ち・あいこ・負けの結果を表示しなさい。 3.利用者の入力が不正の場合には再度入力を促すなど、適切な処理をしなさい。 4.これまでの累積勝利数・引き分け数・敗北数をそれぞれ、user_win・user_draw・user_loseの3つの変数(int型)に格納しなさい。 5.連勝中の場合は「5連勝中!」などと表示させるようにしなさい。 6.あいこである限りは自動的にじゃんけんを反復しなさい。 7.勝敗がついた場合、利用者にまだ継続するか質問した上で、じゃんけんを反復させなさい。 8.じゃんけんを終了した場合、これまでの通算成績として、累積勝利数・引き分け数・敗北数のほか、勝利=累積勝利数÷(累積勝利数+累積敗北数)×100、および、最大勝利数を計算して表示しなさい。 という仕様のじゃんけんゲームを作成したいのですが、下記に書いているまでしかできません。誰か教えていただけないでしょうか。分からなくて困っています。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int a,c; srand(time(NULL)); c = rand()%3+1; printf("手を入力してください [1:グー 2:チョキ 3:パー] "); scanf("%d",&a); if(a==1 && c==1) printf("あなたはグーで、私もグーでした。アイコです。\n"); else if(a==1 && c==2) printf("あなたはグーで、私はチョキでした。あなたの勝ちです。\n"); else if(a==1 && c==3) printf("あなたはグーで、私はパーでした。あなたの負けです。\n"); else if(a==2 && c==1) printf("あなたはチョキで、私はグーでした。あなたの負けです。\n"); else if(a==2 && c==2) printf("あなたはチョキで、私もチョキでした。アイコです。\n"); else if(a==2 && c==3) printf("あなたはチョキで、私はパーでした。あなたの勝ちです。\n"); else if(a==3 && c==1) printf("あなたはパーで、私はグーでした。あなたの勝ちです。\n"); else if(a==3 && c==2) printf("あなたはパーで、私はチョキでした。あなたの負けです。\n"); else if(a==3 && c==3) printf("あなたはパーで、私もパーでした。アイコです。\n"); else printf("正しい手を入れてください。\n"); return 0; }

  • 英語で、じゃんけんするときに、「あいこ」の場合に、どういうの?

    子供から、英語でじゃんけんする場合、グー、チョキ、パーは、どのように言えばいいのかを、聞かれました。 また、「あいこ」のとき、どういうのかを、聞かれました. 英語で、じゃんけんのようなものは、あるのでしょうか。教えてください.

  • じゃんけん!

    じゃんけん! パー=パイナップル チョキ=チョコレート グー=?・・・グリコ?ですよね?

  • ペルーのじゃんけんのやり方

    ペルーのじゃんけんのやり方を教えてください。 日本と同じく、「グー」「チョキ」「パー」を使うのでしょうか。 また、グーにはパーが勝つ、などのルールは同じなのでしょうか、違うのでしょうか。 ペルーの人を含めて、ジャンケンを使ったゲームをやりたいと考えているので、確認したいと思い質問しました。 また、もし日本とペルーのじゃんけんが全く違うのであれば、敢えてペルーのじゃんけんを使ってゲームをするというのもおもしろいかなと思っているので、もし具体的な方法をご存知の方は教えてください。 よろしくお願いします。

専門家に質問してみよう