投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/12/28 11:19:03
> ちなみに、メッセージボックスを利用して
メッセージボックスでもできなくは無いですが、フォームにグー,チョキ,パーの
3つのボタンを配置したほうが分かりやすいですし、後々、融通が利くと思いますよ。


> 途中経過も表示し
どのような表示にしたいかによって、プログラムも異なってきます。


> どのようにプログラムを記述すればよいですか
いろいろな書き方がありますが、考え方の一例を書いておきます。


じゃんけんという事は、グー,チョキ,パーの少なくとも3つの状態がありますよね。
これを、0,1,2 の数字にあてはめて考えましょう。

まずは、その数字をパソコンに選ばせるために、Random を利用します。
http://homepage1.nifty.com/rucio/main/dotnet/ClassLibrary/L002_System.Random.htm

選んだ結果は変数に入れておきましょう。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard4.htm

そして、ユーザーが選んだ結果とパソコンが選んだ結果を比較します。
グー,チョキ,パーで計9通りの組み合わせができますので、その勝敗を判定します。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard6.htm
(書き方を工夫すると、勝/あいこ/負けの3比較で判定することができますが、
 最初のうちは、そのまま9通りの判定文を書いても良いでしょう)

この時あらかじめ、勝ち/あいこ/負けの回数を記録しておくための変数を
ユーザ用とパソコン用それぞに用意しておき、じゃんけんする度に
勝敗結果に応じて、これらの変数の値をそれぞれ増やしていきます。
この変数はクラスレベルの変数にしておきましょう。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard8.htm

そしてその変数の内容を、画面に(Label等で)表示させるようします。

また、勝負のたびに、それぞれの勝った回数を If 文で調べます。
そしてユーザーとパソコンのいずれかが 5 回目の勝利となった時点で
それを勝者とすれば終了です。

------

> さらに繰り返しじゃんけんをして
この部分ですが、繰り返し処理をパソコン側にやらせる方法と
ユーザーにやらせる方法とがあるかと思います。

ユーザーによる繰り返しの場合は、たとえば、フォームにグー/チョキ/パーの
3つのボタンを配置し、どちらかが5回勝つまで、ユーザーにボタンを
押してもらうようにすると良いでしょう。

あるいは、悩める子羊さんがやろうとしていたように、メッセージボックスを
使うのだとすれば、フォームに「じゃんけん」ボタンをおき、それを押すたびに
勝負を行わせれば良いと思います。

一方、パソコン側に繰り返し処理を行わせるのであれば、下記のようにします。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard7.htm



なお「どうしても分からない!」という場合には、先人の作ったプログラムを真似ていき、
そこから学んでいくのも手かと思いますので、一応、他の方の書かれたじゃんけんゲームの
例を紹介しておきます。ただし、これらのサンプルをそのまま写しただけでは、
今回のお題である「先に5勝」などのルールは満たせませんので、最終的に完成させるには
御自身の力で追加のプログラムコードを記述してあげてください。
http://www.seiryojoho-h.ed.jp/old_web/webt/text/vbnet/vbnetjyanken.htm
http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=9198