运用vb中的rnd随机数编写一个简单的小游戏。。。帮帮忙哈,急到用啦。。。谢谢谢谢诶。。。
\u5173\u4e8eVB\u4f7f\u7528rnd\uff08\uff09\u968f\u673a\u6570\u7684\u4f7f\u7528'rnd\u8fd4\u56de\u7684\u662f0-1\u4e4b\u95f4\u7684\u4efb\u610f\u503c
dim a,b as integer
'\u8fd9\u91cc\u7c7b\u578b\u81ea\u5df1\u770b\u7740\u529e\uff0c\u8981\u6d6e\u70b9\u5c31\u5b9a\u4e49\u6210\u6d6e\u70b9\u7684
a = 2
'\u4e0d\u77e5\u9053\u4f60\u7684VB\u662f\u4ec0\u4e48\u7248\u672c\u7684\uff0c\u4f60\u53ef\u4ee5\u628a\u8fd9\u53e5\u6539\u6210a = int(text2.text)
b = 100 + int(rnd*2a) - a
'rnd*2a\u8fd4\u56de0-2a\u4e4b\u95f4\u7684\u4efb\u610f\u503c\uff0cint(rnd*2a)\u8fd4\u56de0-2a\u4e4b\u95f4\u7684\u4efb\u610f\u6574\u6570\uff0cint(rnd*2a) - a\u8fd4\u56de\u7684\u662f-a-a\u4e4b\u95f4\u7684\u4efb\u610f\u6574\u6570\uff0cb\u5219\u8fd4\u56de100\u00b1a
'\u8fd9\u91cc\u628ab\u8fd4\u56de\u5c31\u53ef\u4ee5\u4e86
\u7b97\u662f\u516c\u5e73\u5427\uff01 RND \u662f\u6982\u73870-1\u5747\u5300\u5206\u5e03\u7684\uff01
数字排序小游戏
Option Explicit
Dim Label2X As Integer '记录标签控件数组中要移动的标签控件左上角X的位置
Dim Label2Y As Integer '记录标签控件数组中要移动的标签控件左上角Y的位置
'让标签数组中的每个标签控件上显示的数字是随机的,无重复的
Private Sub Init()
Randomize
Dim a(7) As Integer
Dim i As Integer, k As Integer
Label1.Caption = ""
For i = 0 To 7
a(i) = i
Next
For i = 0 To 7
k = Int(Rnd * 8)
Do While a(k) = -1 'a(k)=-1表示该数组元素对应的数字已经被使用过了
k = Int(Rnd * 8) '重新生成k的值,直到a(k)的值不等于-1
Loop
Label2(i).Caption = Trim(Str(a(k)))
a(k) = -1 'a(k)的值已经使用了,不能再用,重新赋值为-1与其他的元素值相区别
Next i
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer
Dim z As Integer
Init
Picture1.Enabled = True
'让空白标签Label1出现的位置随机
Randomize
'记录下空白标签Label1的位置
x = Label1.Left
y = Label1.Top
z = Int(Rnd * 8)
'将空白标签Label1和标签控件数组任一控件交换位置
Label1.Move Label2(z).Left, Label2(z).Top
Label2(z).Move x, y
Command1.Enabled = False
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Dim i As Integer
Picture1.Enabled = False
'在标签中显示游戏说明信息
Label3.Caption = "如左图所示,将数字按0-7顺" & vbCrLf & vbCrLf & "序依次排列,即取得胜利。"
'在标签中显示排列规则后的数字顺序
Label1.Caption = 0
For i = 0 To 6
Label2(i).Caption = i + 1
Next
End Sub
Private Sub Label1_DragDrop(Source As Control, x As Single, y As Single)
Dim Label1X As Integer '记录空白控件Label1左上角X的位置
Dim Label1Y As Integer '记录空白控件Label1左上角Y的位置
Dim flag(3) As Boolean
'获取空白控件Label1的位置
Label1X = Label1.Left
Label1Y = Label1.Top
'要移动的控件位于空白控件Label1的正左侧
flag(0) = (Label2X = Label1X - Source.Width) And (Label2Y = Label1Y)
'要移动的控件位于空白控件Label1的正右侧
flag(1) = (Label2X = Label1X + Source.Width) And (Label2Y = Label1Y)
'要移动的控件位于空白控件Label1的正上方
flag(2) = (Label2X = Label1X) And (Label2Y = Label1Y - Source.Height)
'要移动的控件位于空白控件Label1的正下方
flag(3) = (Label2X = Label1X) And (Label2Y = Label1Y + Source.Height)
If flag(0) Or flag(1) Or flag(2) Or flag(3) Then
Label1.Move Label2X, Label2Y
Source.Move Label1X, Label1Y
End If
Win
End Sub
Private Sub Label2_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then '如果按下鼠标左键
'记录下要拖动控件的位置
Label2X = Label2(Index).Left
Label2Y = Label2(Index).Top
Label2(Index).Drag 1 '启动拖动操作
End If
End Sub
Private Sub Label2_MouseUp(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
Label2(Index).Drag 2 '结束拖动操作
End Sub
Private Sub Win()
Dim winner As Integer
Dim i As Integer
Dim answer As Integer
'对于给定的标签控件数组中的任一标签控件,可以落在符合要求(对应位置应显示对应数字)
'的八个位置中的任一位置
'利用循环语句对标签控件数组中的每个标签控件进行检查,如果其落在某一符号要求的位置,
'则变量winner的值加1,如果所有标签控件都落在符号要求的位置,则变量winner的值应为8
For i = 0 To 7
If Label2(i).Left = 0 And Label2(i).Top = 0 And _
Label2(i).Caption = 0 Then
winner = winner + 1
ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = 0 And _
Label2(i).Caption = 1 Then
winner = winner + 1
ElseIf Label2(i).Left = 2 * Label2(i).Width And Label2(i).Top = 0 And _
Label2(i).Caption = 2 Then
winner = winner + 1
ElseIf Label2(i).Left = 0 And Label2(i).Top = Label2(i).Height And _
Label2(i).Caption = 3 Then
winner = winner + 1
ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = Label2(i).Height And _
Label2(i).Caption = 4 Then
winner = winner + 1
ElseIf Label2(i).Left = 2 * Label2(i).Width And Label2(i).Top = Label2(i).Height And _
Label2(i).Caption = 5 Then
winner = winner + 1
ElseIf Label2(i).Left = 0 And Label2(i).Top = 2 * Label2(i).Height And _
Label2(i).Caption = 6 Then
winner = winner + 1
ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = 2 * Label2(i).Height And _
Label2(i).Caption = 7 Then
winner = winner + 1
End If
Next i
If winner = 8 Then
MsgBox " 恭喜您,胜利了!", 0 + 64 + 0, "提示"
Picture1.Enabled = False
answer = MsgBox("还继续吗?", 4 + 32 + 0, "提示")
If answer = vbYes Then
Command1.Enabled = True
Else
End
End If
End If
End Sub
Int((上界整数 - 下界整数 + 1) * Rnd + 下界整数)这个取得数就是上,下界整数的随机数
如2-55之间的随机数就是int((55-2)*rnd+2)
还不够费事的
0
绛旓細鍥犳瑕佷骇鐢1~100涔嬮棿鐨勯殢鏈烘暟锛屽彲浠浣跨敤Rnd*98锛屼骇鐢熺殑鏄痆0,98)鐨勯殢鏈烘暟锛岃宨nt(Rnd*98)浜х敓鐨勬槸[0,97]涔嬮棿鐨勯殢鏈烘暣鏁帮紝閭d箞int(Rnd*98)+2浜х敓鐨勫氨鏄痆2,99]涔嬮棿鐨勯殢鏈烘暣鏁颁簡锛岀鍚堢洰鏍1鍒100涔嬮棿鐨勯殢鏈烘暟鐩殑銆傚嚱鏁颁唬鐮佸涓嬶細Public Function sj() As Integer Randomize sj = Int(Rnd * 98...
绛旓細k = Int(Rnd * 8)Do While a(k) = -1 'a(k)=-1琛ㄧず璇ユ暟缁勫厓绱犲搴旂殑鏁板瓧宸茬粡琚浣跨敤杩囦簡 k = Int(Rnd * 8) '閲嶆柊鐢熸垚k鐨勫硷紝鐩村埌a(k)鐨勫间笉绛変簬-1 Loop Label2(i).Caption = Trim(Str(a(k)))a(k) = -1 'a(k)鐨勫煎凡缁忎娇鐢ㄤ簡锛屼笉鑳藉啀鐢紝閲嶆柊璧嬪间负-1涓庡叾浠...
绛旓細vb涓璕nd锛堬級浣跨敤璇硶锛歊nd[(number)] 銆((9000*rnd)+1000)涓紝鐢变簬Rnd鏄痆0锛1锛夛紝锛9000*Rnd锛+1000涓篬1000锛10000锛夛紝鎵浠ュ緱鍑1000~10000鐨勯殢鏈烘暟銆傚叾涓細濡傛灉 number 鐨勫兼槸 Randomize 鐢熸垚锛屽皬浜 0 锛屾瘡娆¢兘浣跨敤 number 浣滀负闅忔満鏁扮瀛愬緱鍒扮殑鐩稿悓缁撴灉銆傚ぇ浜 0 锛屼互涓婁竴涓殢鏈烘暟涓虹瀛愪骇鐢熶笅...
绛旓細RndNum=v(1+5*rnd())鈥欒幏寰闅忔満鏁RndNum
绛旓細Private Sub Command1_Click()Dim a(3) As Integer For i = 1 To 3 Randomize a(i) = Int(Rnd * 51) + 50 Next i For i = 1 To 2 For j = i + 1 To 3 If a(i) > a(j) Then r = a(i)a(i) = a(j)a(j) = r End If Next j Next i For i = 1 To 3 P...
绛旓細n= [ 10+int(90*rnd) ]st = [ st + " " + n ]forj=2 to [ n ][ n1=n1+1 ][ exit for ]text1.text=[ st ]text2.text= [ n-n1 ]
绛旓細浠g爜鍙婃敞閲婂涓嬶細Private Sub Command1_Click()'鐐瑰嚮鍛戒护鎸夐挳鎵ц绋嬪簭 Randomize'鍒濆鍖栭殢鏈烘暟鍙戠敓鍣 x = Round((Rnd() * 9), 0)'鍏鍒╃敤闅忔満鏁寰楀埌0-1鍖洪棿鐨勫皬鏁帮紝鐒跺悗涔樹互9锛屽湪瀵硅繖涓暟杩涜鍥涜垗浜斿叆鍚庯紝璧嬪肩粰x Print x'绐椾綋鎵撳嵃x End Sub ...
绛旓細绗竴绉嶆柟寮忥細 浣跨敤鏃犲弬鏁扮殑Random()鏋勯犲嚱鏁帮紱榛樿绉嶅瓙鍊兼槸浣跨敤DateTime.Now.Ticks浣滀负绉嶅瓙鍊肩殑锛屽鏋滆Е鍙慠andom鍑芥暟闂撮殧鏃堕棿寰堢煭锛屽氨鏈夊彲鑳介犳垚浜х敓涓鏍鐨勯殢鏈烘暟銆傜浜岀鏂瑰紡锛 浣跨敤RNGCryptoServiceProvider鐢熸垚绉嶅瓙鍊硷紱鐢熸垚閫熷害杈冩參銆1銆丷andom()浣跨敤涓庢椂闂寸浉鍏崇殑榛樿绉嶅瓙鍊硷紝鍒濆鍖 Random 绫荤殑鏂板疄渚嬨...
绛旓細1銆侀鍏堬紝鎴戜滑缁欎富鍑芥暟鍏堝畾涓涓嚱鏁般2銆佺劧鍚庢垜浠缂栧啓For寰幆璇彞銆3銆佺劧鍚庢垜浠紪鍐欒緭鍑鸿鍙ュ強鑼冨洿銆4銆佺劧鍚庢垜浠紑濮嬭繍琛屾祴璇曘5銆佽繖鍙ヨ鍛婃病鍏崇郴锛屽鏋滀笉鎯崇湅鍒板彲浠ユ坊鍔犺皟鐢ㄦ暟瀛﹀嚱鏁般6銆佽繖鏃舵垜浠究鍙互鐪嬪埌鏁堟灉浜嗐
绛旓細鐢╒B鍋氫竴涓骇鐢闅忔満鏁鐨勭▼搴忚繃绋嬶細1 鍒涘缓闅忔満鏁扮獥浣擄細2 缂栧啓浜х敓闅忔満鏁扮殑浜嬩欢锛歅rivate Sub Command1_Click()Randomize '鍒濆鍖栭殢鏈烘暟鐢熸垚鍣 List1.AddItem Int((Rnd * 9) + 1)End Sub 3 杩愯缁撴灉锛