运用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

  • VB缂栫▼棰:缂栧啓涓涓骇鐢1 鑷100涔嬮棿鐨勯殢鏈鏁存暟鐨凢unction 杩囩▼_鐧惧害...
    绛旓細鍥犳瑕佷骇鐢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...
  • 杩愮敤vb涓殑rnd闅忔満鏁扮紪鍐欎竴涓畝鍗曠殑灏忔父鎴忋傘傘傚府甯繖鍝,鎬ュ埌鐢ㄥ暒...
    绛旓細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()鎬庝箞鐢?
    绛旓細vb涓璕nd锛堬級浣跨敤璇硶锛歊nd[(number)] 銆((9000*rnd)+1000)涓紝鐢变簬Rnd鏄痆0锛1锛夛紝锛9000*Rnd锛+1000涓篬1000锛10000锛夛紝鎵浠ュ緱鍑1000~10000鐨勯殢鏈烘暟銆傚叾涓細濡傛灉 number 鐨勫兼槸 Randomize 鐢熸垚锛屽皬浜 0 锛屾瘡娆¢兘浣跨敤 number 浣滀负闅忔満鏁扮瀛愬緱鍒扮殑鐩稿悓缁撴灉銆傚ぇ浜 0 锛屼互涓婁竴涓殢鏈烘暟涓虹瀛愪骇鐢熶笅...
  • 鍦VB涓闇瑕RND闅忔満涓涓暟瀛,杩欎釜鏁板瓧蹇呴』鍦ㄥ嚑涓暟涓娊鍙,搴旇鎬庝箞...
    绛旓細RndNum=v(1+5*rnd())鈥欒幏寰闅忔満鏁RndNum
  • VB鍒╃敤闅忔満鍑芥暟Rnd(),闅忔満浜х敓3涓50鑷100鐨勬暣鏁,鎸変粠灏忓埌澶х殑椤哄簭鏄剧ず...
    绛旓細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...
  • vb缂栧啓涓涓▼搴,鍒╃敤闅忔満鍑芥暟Rnd鐢熸垚10涓10-99涔嬮棿鐨勬暣鏁,骞惰绠楀叾涓礌...
    绛旓細n= [ 10+int(90*rnd) ]st = [ st + " " + n ]forj=2 to [ n ][ n1=n1+1 ][ exit for ]text1.text=[ st ]text2.text= [ n-n1 ]
  • vb 閲鎬庢牱缂栧啓0-9,闅忔満浜х敓鍏朵腑鐨勪竴涓暟銆
    绛旓細浠g爜鍙婃敞閲婂涓嬶細Private Sub Command1_Click()'鐐瑰嚮鍛戒护鎸夐挳鎵ц绋嬪簭 Randomize'鍒濆鍖栭殢鏈烘暟鍙戠敓鍣 x = Round((Rnd() * 9), 0)'鍏鍒╃敤闅忔満鏁寰楀埌0-1鍖洪棿鐨勫皬鏁帮紝鐒跺悗涔樹互9锛屽湪瀵硅繖涓暟杩涜鍥涜垗浜斿叆鍚庯紝璧嬪肩粰x Print x'绐椾綋鎵撳嵃x End Sub ...
  • 濡備綍鐢╒B浜х敓涓涓瘡娆¢兘涓嶄竴鏍鐨勯殢鏈烘暟鍟,鐢rnd鐨勮瘽鍙兘浜х敓涓涓浐瀹氱殑...
    绛旓細绗竴绉嶆柟寮忥細 浣跨敤鏃犲弬鏁扮殑Random()鏋勯犲嚱鏁帮紱榛樿绉嶅瓙鍊兼槸浣跨敤DateTime.Now.Ticks浣滀负绉嶅瓙鍊肩殑锛屽鏋滆Е鍙慠andom鍑芥暟闂撮殧鏃堕棿寰堢煭锛屽氨鏈夊彲鑳介犳垚浜х敓涓鏍鐨勯殢鏈烘暟銆傜浜岀鏂瑰紡锛 浣跨敤RNGCryptoServiceProvider鐢熸垚绉嶅瓙鍊硷紱鐢熸垚閫熷害杈冩參銆1銆丷andom()浣跨敤涓庢椂闂寸浉鍏崇殑榛樿绉嶅瓙鍊硷紝鍒濆鍖 Random 绫荤殑鏂板疄渚嬨...
  • VB鍒╃敤闅忔満鍑芥暟Rnd鐢熸垚10涓10-99鐨勬暣鏁,骞惰绠楀叾涓殑绱犳暟涓暟銆(姹傚ぇ绁...
    绛旓細1銆侀鍏堬紝鎴戜滑缁欎富鍑芥暟鍏堝畾涓涓嚱鏁般2銆佺劧鍚庢垜浠缂栧啓For寰幆璇彞銆3銆佺劧鍚庢垜浠紪鍐欒緭鍑鸿鍙ュ強鑼冨洿銆4銆佺劧鍚庢垜浠紑濮嬭繍琛屾祴璇曘5銆佽繖鍙ヨ鍛婃病鍏崇郴锛屽鏋滀笉鎯崇湅鍒板彲浠ユ坊鍔犺皟鐢ㄦ暟瀛﹀嚱鏁般6銆佽繖鏃舵垜浠究鍙互鐪嬪埌鏁堟灉浜嗐
  • 鐢╒B鍋氫竴涓骇鐢闅忔満鏁鐨勭▼搴
    绛旓細鐢╒B鍋氫竴涓骇鐢闅忔満鏁鐨勭▼搴忚繃绋嬶細1 鍒涘缓闅忔満鏁扮獥浣擄細2 缂栧啓浜х敓闅忔満鏁扮殑浜嬩欢锛歅rivate Sub Command1_Click()Randomize '鍒濆鍖栭殢鏈烘暟鐢熸垚鍣 List1.AddItem Int((Rnd * 9) + 1)End Sub 3 杩愯缁撴灉锛
  • 扩展阅读:cad快速看图看图软件 ... vb中int rnd 是什么意思 ... vb rnd函数用法 ... vb round函数怎么使用 ... vb随机函数rnd公式 ... vb随机函数int rnd范围 ... vb随机数生成器 ... vb基础编程题库 ... vb随机数参数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网