嘉哲 10 發表於 September 11, 2014 檢舉 Share 發表於 September 11, 2014 如題:VB俄羅斯方塊怎麼寫落下判定https://drive.google.com/file/d/0B4DBK-x__ieBZ1JLZmFLdlVnNFk/edit?usp=sharing↗這是檔案,必須用VB打開不是C++我想只差這一步就可以完成了以下為程式碼:Dim D, i, M, T, Q, W, R(9, 13) 'D為遊戲亂數, i為陣列係數, M為餘數,T為轉計次, Q為時間變數Private Sub Form_Load()'Dim變數屬性i = 0D = 0Q = 0W = 0form1.Width = 8500'box formFor x = 0 To 3 With box(x) '.Caption = x .Width = 500 .Height = 500 .Top = -1000 .Left = -1000 .Visible = False End WithNext x'side formFor x = 0 To 46 With side(x) .Width = 500 .Height = 500 .Top = -1000 .Left = -1000 End WithNext x'Line the sideside(0).Top = side(0).Heightside(0).Left = side(0).Width * 2For x = 0 To 9 side(x).Top = side(0).Top side(x + 1).Left = side(x).Left + side(x + 1).WidthNext xFor x = 10 To 23 side(x).Top = side(x - 1).Top + side(x).Width side(x).Left = side(0).LeftNext xside(24).Top = side(9).Top + side(24).HeightFor x = 24 To 37 side(x + 1).Top = side(x).Top + side(x + 1).Width side(x).Left = side(9).LeftNext xside(38).Left = side(23).Left + side(38).WidthFor x = 38 To 45 side(x).Top = side(23).Top side(x + 1).Left = side(x).Left + side(x + 1).WidthNext xboxapperEnd SubSub boxapper()RandomizeD = Fix(Rnd * 4) + 1T = 0W = 0 For x = 0 To 3 Select Case D Case Is = 1 ' T type box(i + x).BackColor = &HFF& Select Case x Case Is = 0 box(i + x).Left = side(4).Left box(i + x).Top = side(4).Top + box(i + x).Height * 2 Case Is = 1 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height Case Is = 2 box(i + x).Left = side(6).Left box(i + x).Top = side(6).Top + box(i + x).Height * 2 Case Is = 3 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 2 End Select Case Is = 2 ' L type box(i + x).BackColor = &H80FF& Select Case x Case Is = 0 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height Case Is = 1 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 2 Case Is = 2 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 3 Case Is = 3 box(i + x).Left = side(6).Left box(i + x).Top = side(6).Top + box(i + x).Height * 3 End Select Case Is = 3 ' I type box(i + x).BackColor = &HFF00& Select Case x Case Is = 0 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height Case Is = 1 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 2 Case Is = 2 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 3 Case Is = 3 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 4 End Select Case Is = 4 ' 口 type box(i + x).BackColor = &HC0C000 Select Case x Case Is = 0 box(i + x).Left = side(4).Left box(i + x).Top = side(4).Top + box(i + x).Height Case Is = 1 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height Case Is = 2 box(i + x).Left = side(4).Left box(i + x).Top = side(4).Top + box(i + x).Height * 2 Case Is = 3 box(i + x).Left = side(5).Left box(i + x).Top = side(5).Top + box(i + x).Height * 2 End Select End Select Next xEnd SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)'Key Contorl'form1.Caption = KeyCodeIf c1.Visible = True Then Timer1 = False Timer2 = TrueEnd If'資料Label1.Caption = "i=" & i & " D=" & DLabel2.Caption = "KeyCode=" & KeyCodeLabel4.Caption = "box(i).left=" & box(i).LeftLabel5.Caption = "box(i).top=" & box(i).TopSelect Case KeyCode Case Is = 16 'hold shift x = plays(3).Caption plays(3).Caption = plays(0).Caption plays(0).Caption = x Case Is = 39 'right For x = 0 To 3 box(i + x).Left = box(i + x).Left + box(i + x).Width Next x Case Is = 37 'left For x = 0 To 3 box(i + x).Left = box(i + x).Left - box(i + x).Width Next x Case Is = 38 'turn T = T + 1 M = T Mod 4 Select Case D Case Is = 1 ' T type Select Case M Case Is = 1 box(i + 3).Left = box(i).Left box(i + 1).Left = box(i).Left box(i + 2).Left = box(i).Left - box(i).Width box(i + 3).Top = box(i).Top + box(i).Height box(i + 1).Top = box(i).Top - box(i).Height box(i + 2).Top = box(i).Top Case Is = 2 box(i + 3).Left = box(i).Left - box(i).Width box(i + 1).Left = box(i).Left + box(i).Width box(i + 2).Left = box(i).Left box(i + 3).Top = box(i).Top box(i + 1).Top = box(i).Top box(i + 2).Top = box(i).Top + box(i).Height Case Is = 3 box(i + 3).Left = box(i).Left box(i + 1).Left = box(i).Left box(i + 2).Left = box(i).Left + box(i).Width box(i + 3).Top = box(i).Top + box(i).Height box(i + 1).Top = box(i).Top - box(i).Height box(i + 2).Top = box(i).Top Case Is = 0 box(i + 3).Left = box(i).Left - box(i).Width box(i + 1).Left = box(i).Left + box(i).Width box(i + 2).Left = box(i).Left box(i + 3).Top = box(i).Top box(i + 1).Top = box(i).Top box(i + 2).Top = box(i).Top - box(i).Height End Select Case Is = 2 'L type Select Case M Case Is = 1 box(i + 0).Left = box(i + 2).Left + box(i + 2).Width * 2 box(i + 1).Left = box(i + 2).Left + box(i + 2).Width box(i + 3).Left = box(i + 2).Left box(i + 0).Top = box(i + 2).Top box(i + 1).Top = box(i + 2).Top box(i + 3).Top = box(i + 2).Top - box(i + 2).Height Case Is = 2 box(i + 0).Left = box(i + 2).Left box(i + 1).Left = box(i + 2).Left + box(i + 2).Width box(i + 3).Left = box(i + 2).Left box(i + 0).Top = box(i + 2).Top - box(i + 2).Height box(i + 1).Top = box(i + 0).Top box(i + 3).Top = box(i + 2).Top + box(i + 2).Height Case Is = 3 box(i + 0).Left = box(i + 2).Left + box(i + 2).Width * 2 box(i + 1).Left = box(i + 2).Left + box(i + 2).Width box(i + 3).Left = box(i + 0).Left box(i + 0).Top = box(i + 2).Top box(i + 1).Top = box(i + 2).Top box(i + 3).Top = box(i + 2).Top + box(i + 2).Height Case Is = 0 box(i + 0).Left = box(i + 2).Left box(i + 1).Left = box(i + 2).Left - box(i + 2).Width box(i + 3).Left = box(i + 2).Left box(i + 0).Top = box(i + 2).Top - box(i + 2).Height box(i + 1).Top = box(i + 3).Top box(i + 3).Top = box(i + 2).Top + box(i + 2).Height End Select Case Is = 3 'I type Select Case M Case Is = 1 box(i + 0).Left = box(i + 2).Left - box(i).Width * 2 box(i + 1).Left = box(i + 2).Left - box(i).Width box(i + 3).Left = box(i + 2).Left + box(i).Width box(i + 0).Top = box(i + 2).Top box(i + 1).Top = box(i + 2).Top box(i + 3).Top = box(i + 2).Top Case Is = 3 box(i + 0).Left = box(i + 2).Left - box(i).Width * 2 box(i + 1).Left = box(i + 2).Left - box(i).Width box(i + 3).Left = box(i + 2).Left + box(i).Width box(i + 0).Top = box(i + 2).Top box(i + 1).Top = box(i + 2).Top box(i + 3).Top = box(i + 2).Top Case Is = 2 box(i + 0).Left = box(i + 2).Left box(i + 1).Left = box(i + 2).Left box(i + 3).Left = box(i + 2).Left box(i + 0).Top = box(i + 2).Top - box(i).Height * 2 box(i + 1).Top = box(i + 2).Top - box(i).Height box(i + 3).Top = box(i + 2).Top + box(i).Height Case Is = 0 box(i + 0).Left = box(i + 2).Left box(i + 1).Left = box(i + 2).Left box(i + 3).Left = box(i + 2).Left box(i + 0).Top = box(i + 2).Top - box(i).Height * 2 box(i + 1).Top = box(i + 2).Top - box(i).Height box(i + 3).Top = box(i + 2).Top + box(i).Height End Select End Select Case Is = 40 'slow down If box(i + 3).Top >= side(38).Top - box(i + 3).Height Then '未完成 Else For x = 0 To 3 box(i + x).Top = box(i + x).Top + box(i + x).Height Next x End If Case Is = 32 'space down 未完成 Case Is = 70 'F 資料 If form1.Width = 11100 Then form1.Width = 8500 Else form1.Width = 11100 End IfEnd SelectEnd SubPrivate Sub c1_Click()'Startc1.Visible = Falsec2.Visible = Falsec3.Visible = Falsec4.Visible = Trueform1.Caption = "Tetris Battle"For x = 0 To i + 3 box(x).Visible = TrueNext xTimer1 = TrueTimer3 = TrueEnd SubPrivate Sub c4_Click()'Stopc1.Visible = Truec2.Visible = Truec3.Visible = Truec4.Visible = Falsec1.Caption = "Resume"form1.Caption = "Stop"For x = 0 To i + 3 box(x).Visible = FalseNext xTimer1 = FalseTimer3 = FalseEnd SubPrivate Sub Timer1_Timer()If box(i + 3).Top >= side(38).Top - box(i + 3).Height Then '未完成 i = i + 4 For x = 0 To 3 Load box(i + x) Set box(i + x).Container = form1 box(i + x).Visible = True Next x boxapper Else Q = Q + 1End IfIf Q >= 60 Then Q = 0 For x = 0 To 3 box(i + x).Top = box(i + x).Top + box(i + x).Height Next xEnd IfEnd SubPrivate Sub Timer2_Timer()If Timer3 = False ThenElse Timer1 = True Timer2 = FalseEnd IfEnd SubPrivate Sub Timer3_Timer()If time(1).Caption = 60 Then time(0).Caption = Val(time(0).Caption) + 1 time(1).Caption = 0Else time(1).Caption = Val(time(1).Caption) + 1End IfEnd Sub 鏈接文章 分享到其他網站
Recommended Posts
請登入後來留意見
在登入之後,您才能留意見
立即登入