掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
乱数について (ID:146017)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あ、私も勘違いしていました。 >同じものが3回以上続けてでないようにしたい は、連続して3回ではなく、とにかく3回でないような プログラムでいいってことなんですか? それでしたら、まさるさんが最後に投稿された プログラムでも仕様を満たすことになります。 ただし、例えば 1回目:大吉 2回目:吉 だった場合、3回目は大吉は絶対に出ないことになります。 (前々回と今回を比較しているため) たしかに3回連続で出ることはありませんが、 出てもいい結果(例でいうと3回目の大吉)を省くというのは いささか問題あると思いますが、いかがでしょうか? 「これでも構わない」となればそれまでですが・・・ > もう降参したい気持ちなので > 模範のサンプルおしえていただけたら気が楽になりそうです。 この言葉は、質問の回答者に対して失礼です。 ヒントを与えている方々がいらっしゃるのに 「降参」とはいかがなものかと思います。 重要なのは、プログラムを書くことではなく、 フローチャートを書いてみて、どこでどういった条件が 必要か、自分で考えることなのです。 考えることが苦しいとなれば、今後も苦しむだけでしょう。 ちなみに私なら下記の様にプログラミングします。 3回連続して同じ結果がでないようになっております。 大吉→吉→大吉という結果も出ます。 ポイントはラベルに結果を表示した後にアレコレと処理することですね。 もう少し改良すれば、oldlotsを使わなくてもできます。 ちょっと難しいですが、ご自身で考えてみてください。 Public Class おみくじ Const max As Integer = 3 Const daikiti As Integer = 0 Const kiti As Integer = 1 Const kyou As Integer = 2 Dim omikuzi() As String Dim oldlots As Integer = -1 ' 前回の結果 Dim lots As Integer = -1 ' 今回の結果 Dim Kinshi As Integer = -1 ' 3回目に出さない結果 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click omikuzi = New String() {"やりました。大吉です", "まあまあ、吉です", "がっかり凶です"} lots = kansu(max) If lots = Kinshi Then Do lots = kansu(max) Loop Until lots <> Kinshi End If Label1.Text = omikuzi(lots) If oldlots = lots Then Kinshi = lots Else Kinshi = -1 End If oldlots = lots End Sub Function kansu(ByVal i As Integer) As Integer Dim mrandom = New Random() Return mrandom.Next(i) End Function End Class
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.