只今、じゃんけんゲームを作成しています。
それで、
「ジャン」「ケン」「ポン」とLabel3に表示させるのですが、
「ポン」と表示させるのと同時にLabel1に
comの手を表示させえたいのです。
どのような関数を使えばよいのかもわからないので
なにか、アドバイスください。。。
只今のソースは、↓のようになっています。
--------------------------------------------------------------------
Public taisen As Integer
Public kati As Integer
Public make As Integer
Public aiko As Integer
Public user_gu As Integer
Public user_chok As Integer
Public user_par As Integer
--------------------------------------------------------------------
Private Sub Command1_Click()
Comcho
End Sub
--------------------------------------------------------------------
Private Sub Command2_Click()
Label2.Caption = "グー"
Comcho
If Label1.Caption = "グー" Then n = 3
If Label1.Caption = "チョキ" Then n = 1
If Label1.Caption = "パー" Then n = 2
Shohai (n)
user_gu = user_gu + 1
End Sub
--------------------------------------------------------------------
Private Sub Command3_Click()
Label2.Caption = "チョキ"
Comcho
If Label1.Caption = "チョキ" Then n = 3
If Label1.Caption = "パー" Then n = 1
If Label1.Caption = "グー" Then n = 2
Shohai (n)
user_chok = user_chok + 1
End Sub
--------------------------------------------------------------------
Private Sub Command4_Click()
Label2.Caption = "パー"
Comcho
If Label1.Caption = "パー" Then n = 3
If Label1.Caption = "グー" Then n = 1
If Label1.Caption = "チョキ" Then n = 2
Shohai (n)
user_par = user_par + 1
End Sub
--------------------------------------------------------------------
Private Sub Comcho()
Dim randamvalue As Double
Dim com_gu As Double 'ユーザがグーを出す確率
Dim com_chok As Double 'ユーザがチョキを出す確率
randamvalue = Rnd(1) '0以上1未満の乱数を発生させる
com_gu = user_gu / (user_gu + user_chok + user_par)
com_chok = (user_gu + user_chok) / (user_gu + user_chok + user_par)
If randamvalue <= com_gu Then
Label1.Caption = "パー" 'グーを出す確率が高いのでパーを出す
Else
If randamvalue <= com_chok Then
Label1.Caption = "グー" 'チョキを出す確率が高いのでグーを出す
Else
Label1.Caption = "チョキ"
End If
End If
End Sub
--------------------------------------------------------------------
Private Sub Shohai(k)
taisen = taisen + 1
Label6.Caption = taisen
If k = 1 Then
Label3.Caption = "勝ち"
kati = kati + 1
End If
If k = 2 Then
Label3.Caption = "負け"
make = make + 1
End If
If k = 3 Then
Label3.Caption = "あいこ"
aiko = aiko + 1
End If
Label9.Caption = kati
Label11.Caption = make
Label12.Caption = aiko
End Sub
--------------------------------------------------------------------
Private Sub Form_Load()
user_gu = 1
user_chok = 1
user_par = 1
End Sub
--------------------------------------------------------------------
プログラムをみると…その「ジャン」「ケン」「ポン」というのがないんですけど…
どうしろと?
見たところあまり合理化されていないプログラムなので、力任せに一度書いてみてはいかが?
「ジャン」と表示させることは
captionで可能なのですが、
ジャンのあとに
「ケン」と「ポン」を
表示させることができないのです。。。
すいません。初心者で。
みなさんは、関数とか
どうやって調べているのですか?
Timer コントロールを使えばできるかと。
Timer1, Command1, Label1 をフォーム上に配置し、
下のコードを実行して、ボタンを押してみて下さい。
ラベルに、じゃん、けん、ぽんと順に表示されます。
Private Sub Command1_Click()
Label1.Caption = "じゃん"
Timer1.Interval = 700
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Select Case Label1.Caption
Case "じゃん": Label1.Caption = "けん"
Case "けん": Label1.Caption = "ぽん"
Case "ぽん": Timer1.Enabled = False
End Select
End Sub
Private Sub Command1_Click()
Label1.Caption = "じゃん"
Timer1.Interval = 700
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Select Case Label1.Caption
Case "じゃん": Label1.Caption = "けん"
Case "けん": Label1.Caption = "ぽん"
comcho
Case "ぽん": Timer1.Enabled = False
End Select
End Sub
で、ちゃんとできましたv
ありがとうございました。
解決チェックするの
忘れてました。
スイマセン。。。
ツイート | ![]() |