題名通りのコードを作っているのですが、どうもうまくいきません。以下のように表示したいのですが…。
(1)コンピュータの(出す手の)確率を表示したうえで、ユーザーの(出す手の)入力を得る。
例:コンピュータの確率 グ(0) : 40, チ(1) : 12, パ(2) : 99
あなたの手は?(0,1,2)
(2)ユーザー、コンピュータの勝ち数、じゃんけんの結果、ユーザーの連勝数を表示。
例:YOU=2,PC=0, > Win : 1連勝
(3)3連勝したら経過時間を表示して終了。
例:TIME : 14秒
以下作成したコードです。
Sub Main()
Dim StartTime, StopTime As Variant
Dim man As Integer, com As Integer
Dim Prob_G, Prob_C, Prob_P, ProbSum As Integer
Dim kekka As String
Dim rand As Integer
Dim count As Integer
Randomize
StartTime = Time
count = 0
Do While count < 3
Prob_G = Int(Rnd * 100)
Prob_C = Int(Rnd * 100)
Prob_P = Int(Rnd * 100)
ProbSum = Prob_G + Prob_C + Prob_P
rand = Int(Rnd * ProbSum)
If Prob_G Then
com = 0
ElseIf Prob_C Then
com = 1
ElseIf Prob_P Then
com = 2
End If
man = InputBox("あなたの手は?(0,1,2)")
Select Case (com - man + 3) Mod 3
Case 0
kekka = "Draw"
Case 1
kekka = "Win"
count = count + 1
Case 2
kekka = "Lose"
count = 0
End Select
MsgBox "YOU=" & man & ",PC=" & com & " > " & kekka & " : " & count & "連勝"
Loop
StopTime = Time
MsgBox "TIME:" & Second(StopTime) & " 秒"
End Sub
穴が多くてすみません…このまま実行するとコンピュータの確率が表示されず、コンピュータの出す手がなぜかグーで固定されてしまいます。If文が機能していないようですorz
コードはできるだけこのままの形でお願いします。私はエクセル初心者で、独学ではこれが限界でした。ご教授お願いします。
No.2ベストアンサー
- 回答日時:
こんな感じでどうでしょう。
Sub Main()
Dim StartTime As Long, StopTime As Long
Dim man As Integer, com As Integer
Dim Rnd_G As Single, Rnd_C As Single, Rnd_P As Single, RndSum As Single
Dim Prob_G As Integer, Prob_C As Integer, Prob_P As Integer
Dim kekka As String
Dim rand As Single
Dim count As Integer
Randomize
StartTime = Timer
Do While count < 3
Rnd_G = Rnd
Rnd_C = Rnd
Rnd_P = Rnd
RndSum = Rnd_G + Rnd_C + Rnd_P
Prob_G = Rnd_G / RndSum * 100
Prob_C = Rnd_C / RndSum * 100
Prob_P = 100 - Prob_G - Prob_C
rand = Rnd * 100
If rand < Prob_G Then
com = 0
ElseIf rand < Prob_G + Prob_C Then
com = 1
Else
com = 2
End If
On Error GoTo キャンセル処理
man = InputBox("コンピュータの確率 グ(0):" & Prob_G & _
"% チ(1):" & Prob_C & "% パ(2):" & Prob_P & "%" & vbCrLf & "あなたの手は?(0,1,2)")
On Error GoTo 0
Select Case (com - man + 3) Mod 3
Case 0
kekka = "Draw"
Case 1
kekka = "Win"
count = count + 1
Case 2
kekka = "Lose"
count = 0
End Select
MsgBox "YOU=" & man & ",PC=" & com & " > " & kekka & " : " & count & "連勝"
Loop
StopTime = Timer
MsgBox "TIME: " & StopTime - StartTime & "秒"
Exit Sub
キャンセル処理:
End Sub
ありがとうございます!まさかここまで完璧に回答してもらえるとは…!If文は不等号で乱数とつなげばよかったのですね。まったくきづきませんでした。ありがとうございます。
No.1
- 回答日時:
If Prob_G Then
com = 0
ElseIf Prob_C Then
com = 1
ElseIf Prob_P Then
com = 2
End If
この部分では、何を判定しようとして 書いたコードですか?
※このままでは、常に com = 0 になります。
この回答への補足
そこは乱数で Prob_G, Prob_C, Prob_P をランダムに設定したいのです。でも言われてみれば確かにそうでした。特定のものをIfの先頭に置いちゃだめですよね。 ProbSum とおくべき…ですかね。それともそれに Int(Rnd * 3) をイコールでおくべき…? あいまいですみません。違ってたら訂正お願いします。
補足日時:2010/11/25 20:40お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一般常識を教えてください。1割...
-
解法を
-
6人でジャンケンをした時、1人...
-
30%の確率が5回連続で起きない...
-
五分を6回連続で外すのはなん...
-
10本のくじの中に当たりくじが2...
-
数学A 反復試行 この計算になる...
-
1個のサイコロを3回投げる時、...
-
じゃんけんの問題
-
数学の質問です。 一枚の硬貨を...
-
ビンゴの確率計算
-
数学Aで質問です。 20人の生徒...
-
直方体サイコロの面のでる確率
-
当たりが4本入った10本のくじが...
-
原点oから出発して数直線上を動...
-
統計学、順列・組み合わせの問...
-
街の中や駅で好きな人にばった...
-
確率0.02%って10000人に2人です...
-
「○○通りのパターンがある」の...
-
3σについて教えてください(基...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一般常識を教えてください。1割...
-
五分を6回連続で外すのはなん...
-
30%の確率が5回連続で起きない...
-
数学の質問です。 一枚の硬貨を...
-
確率0.02%って10000人に2人です...
-
じゃんけんの問題
-
1個のサイコロを3回投げる時、...
-
75%を3回連続で引かない確率
-
「天文学的に低い確率」とは?
-
反応速度や濃度は、大きいor小...
-
ビンゴの確率計算
-
2択問題の正解確率について
-
次の硬貨を同時に投げる時表の...
-
P(A|B)などの読み方
-
血液型がA型とO型の両親では...
-
高1 数学の問題です
-
街の中や駅で好きな人にばった...
-
6人でジャンケンをした時、1人...
-
確率
-
確率の問題です。 全5種類ある...
おすすめ情報