Programalama > VISUAL BASIC

Etiketler: basit, tetris

Ort. 0
Puan ver:
Option Explicit
Private i, k, durum, renk, r, s, level, puan
Private iaktifsekilkare(3) As Integer
Private devam(3) As Boolean
Private devamet As Boolean
Private sola(3) As Boolean
Private solagit As Boolean
Private saga(3) As Boolean
Private sagagit As Boolean
Private sil(11) As Boolean

Private Sub form_keydown(keycode As Integer, shift As Integer)
On Error Resume Next
If keycode = vbKeyLeft Then
 If Not (iaktifsekilkare(0) Mod 10 = 1) Then
   If Shape1(iaktifsekilkare(0) - 1).Visible = False Then
     sola(0) = True
   Else
     sola(0) = False
   End If
   If (iaktifsekilkare(1) - 1 = iaktifsekilkare(0)) Then
     sola(1) = True
   Else
     sola(1) = False
   End If
  End If
   If ((iaktifsekilkare(2) - 1 = iaktifsekilkare(0)) Or (iaktifsekilkare(2) - 1 = iaktifsekilkare(1))) Then
sola(2) = True
Else
 If Shape1(iaktifsekilkare(2) - 1).Visible = False Then
sola(2) = True
Else
sola(2) = False
End If
End If
If ((iaktifsekilkare(3) - 1 = iaktifsekilkare(0)) Or (iaktifsekilkare(3) - 1 = iaktifsekilkare(1)) Or (iaktifsekilkare(3) - 1 = iaktifsekilkare(1) Or (iaktifsekilkare(3) - 1 = iaktifsekilkare(2)))) Then
sola(3) = True
Else
  If Shape1(iaktifsekilkare(3) - 1).Visible = False Then
sola(3) = True
Else
sola(3) = False
End If
End If
For i = 0 To 3
 If sola(i) = True Then
solagit = True
Else
solagit = False
 GoTo soladevam
End If
Next
soladevam:
 If solagit = True Then
 If solagit = True Then
For i = 0 To 3
Shape1(iaktifsekilkare(i)).Visible = False
iaktifsekilkare(i) = iaktifsekilkare(i) - 1
Shape1(iaktifsekilkare(i)).Visible = True
Shape1(iaktifsekilkare(i)).BackColor = QBColor(renk)
Next
End If
End If
End If
End If
 If keycode = vbKeyRight Then
 If Not (iaktifsekilkare(3) Mod 10 = 0) Then
 If Shape1(iaktifsekilkare(3) + 1).Visible = False Then
saga(3) = True
Else
saga(3) = False
End If
 If (iaktifsekilkare(2) + 1 = iaktifsekilkare(3)) Then
saga(2) = True
Else
  If Shape1(iaktifsekilkare(2) + 1).Visible = False Then
saga(2) = True
Else
saga(2) = False
End If
End If

If ((iaktifsekilkare(1) + 1 = iaktifsekilkare(3)) Or (iaktifsekilkare(1) + 1 = iaktifsekilkare(2))) Then
saga(1) = True
Else
 If Shape1(iaktifsekilkare(1) + 1).Visible = False Then
saga(1) = True
Else
saga(1) = False
End If
End If
If ((iaktifsekilkare(0) + 1 = iaktifsekilkare(3)) Or (iaktifsekilkare(0) + 1 = iaktifsekilkare(2)) Or (iaktifsekilkare(0) + 1 = iaktifsekilkare(1))) Then
saga(0) = True
Else
 If Shape1(iaktifsekilkare(0) + 1).Visible = False Then
saga(0) = True
Else
saga(0) = False
End If
End If
For i = 0 To 3
 If saga(i) = True Then
 sagagit = True
Else
sagagit = False
 GoTo sagadevam
End If
Next
sagadevam:
 If sagagit = True Then
 For i = 3 To 0 Step -1

Shape1(iaktifsekilkare(i)).Visible = False
iaktifsekilkare(i) = iaktifsekilkare(i) + 1
Shape1(iaktifsekilkare(i)).Visible = True
Shape1(iaktifsekilkare(i)).BackColor = QBColor(renk)
Next
End If
End If
End If
 If keycode = vbKeyDown Then
 Timer1.Enabled = False
 Timer1.Interval = 10
 Timer1.Enabled = True
 End If
 If keycode = vbKeySpace Then
 Select Case k
 Case 1
If durum = 1 Then
On Error Resume Next
If Shape1(iaktifsekilkare(1) - 20).Visible = False And Shape1(iaktifsekilkare(1) - 10).Visible = False Then
For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
Next
iaktifsekilkare(0) = iaktifsekilkare(1) - 20
iaktifsekilkare(1) = iaktifsekilkare(1) - 10
iaktifsekilkare(2) = iaktifsekilkare(1) + 10
iaktifsekilkare(3) = iaktifsekilkare(1) + 20
durum = 2
End If
ElseIf durum = 2 Then
On Error Resume Next
If Shape1(iaktifsekilkare(2) - 1).Visible = False And Shape1(iaktifsekilkare(2) + 1).Visible = False And Shape1(iaktifsekilkare(2) + 2).Visible = False And (Not iaktifsekilkare(2) Mod 10 = 1) And (iaktifsekilkare(2) Mod 10 < 9) And (Not (iaktifsekilkare(2) Mod 10 = 0)) Then
For i = 0 To 3
Shape1(iaktifsekilkare(i)).Visible = False
Next
iaktifsekilkare(0) = iaktifsekilkare(2) - 1
iaktifsekilkare(1) = iaktifsekilkare(2)
iaktifsekilkare(2) = iaktifsekilkare(2) + 1
iaktifsekilkare(3) = iaktifsekilkare(2) + 1
durum = 1
End If
End If
Case 2
If durum = 1 Then
If iaktifsekilkare(2) < 200 Then
If Shape1(iaktifsekilkare(2) + 10).Visible = False And Shape1(iaktifsekilkare(3) - 10).Visible = False Then
For i = 0 To 3
Shape1(iaktifsekilkare(i)).Visible = False
Next
iaktifsekilkare(0) = iaktifsekilkare(2)
iaktifsekilkare(1) = iaktifsekilkare(0) + 10
iaktifsekilkare(2) = iaktifsekilkare(3) - 10
iaktifsekilkare(3) = iaktifsekilkare(2) + 10
durum = 2
End If
End If
ElseIf durum = 2 Then
 If Shape1(iaktifsekilkare(0) - 11).Visible = False And Shape1(iaktifsekilkare(0) - 10).Visible = False And Not (iaktifsekilkare(0) Mod 10 = 1) Then
For i = 0 To 3
Shape1(iaktifsekilkare(i)).Visible = False
Next
iaktifsekilkare(0) = iaktifsekilkare(0) - 11
iaktifsekilkare(1) = iaktifsekilkare(0) + 1
iaktifsekilkare(2) = iaktifsekilkare(1) + 10
iaktifsekilkare(3) = iaktifsekilkare(2) + 1
durum = 1
End If
End If
Case 3
If durum = 1 Then
If iaktifsekilkare(2) < 200 Then
If Shape1(iaktifsekilkare(2) + 10).Visible = False And Shape1(iaktifsekilkare(0) - 10).Visible = False Then
For i = 0 To 3
Shape1(iaktifsekilkare(i)).Visible = False
Next
iaktifsekilkare(0) = iaktifsekilkare(0) - 10
iaktifsekilkare(1) = iaktifsekilkare(0) + 10
iaktifsekilkare(2) = iaktifsekilkare(2)
iaktifsekilkare(3) = iaktifsekilkare(2) + 10
durum = 2
End If
End If
ElseIf durum = 2 Then
 If Shape1(iaktifsekilkare(2) - 9).Visible = False And Shape1(iaktifsekilkare(2) - 10).Visible = False And Not (iaktifsekilkare(2) Mod 10 = 0) And Not (iaktifsekilkare(0) Mod 10 = 1) Then
 For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(1)
 iaktifsekilkare(1) = iaktifsekilkare(0) - 9
 iaktifsekilkare(2) = iaktifsekilkare(1) + 10
 iaktifsekilkare(3) = iaktifsekilkare(1) + 1
 durum = 1
 End If
 End If
 Case 4
 Case 5
  If durum = 1 Then
   If iaktifsekilkare(1) < 190 Then
   If Shape1(iaktifsekilkare(1) + 10).Visible = False And Shape1(iaktifsekilkare(1) + 20).Visible = False Then
   For i = 0 To 3
   Shape1(iaktifsekilkare(i)).Visible = False
   Next
 iaktifsekilkare(0) = iaktifsekilkare(1)
 iaktifsekilkare(1) = iaktifsekilkare(0) + 10
 iaktifsekilkare(2) = iaktifsekilkare(1) + 10
 iaktifsekilkare(3) = iaktifsekilkare(0) + 1
 durum = 2
 End If
 End If
 ElseIf durum = 2 Then
 If Shape1(iaktifsekilkare(3) + 10).Visible = False And Shape1(iaktifsekilkare(0) - 1).Visible = False And (Not (iaktifsekilkare(0) Mod 10 < 2)) Then
 For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(0) - 1
 iaktifsekilkare(1) = iaktifsekilkare(0) + 1
 iaktifsekilkare(2) = iaktifsekilkare(1) + 1
 iaktifsekilkare(3) = iaktifsekilkare(2) + 10
 durum = 3
 End If
 ElseIf durum = 3 Then
 If Shape1(iaktifsekilkare(2) - 10).Visible = False And Shape1(iaktifsekilkare(2) - 20).Visible = False And iaktifsekilkare(2) > 20 Then
 For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(0) + 1
 iaktifsekilkare(1) = iaktifsekilkare(0) + 1 - 20
 iaktifsekilkare(2) = iaktifsekilkare(1) + 10
 iaktifsekilkare(3) = iaktifsekilkare(2) + 10
 durum = 4
 End If
 ElseIf durum = 4 Then
 If Shape1(iaktifsekilkare(0) - 10).Visible = False And Shape1(iaktifsekilkare(3) + 1).visible0false And (Not (iaktifsekilkare(3) Mod 10 = 0)) Then
 For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(2) - 1
 iaktifsekilkare(1) = iaktifsekilkare(0) + 10
 iaktifsekilkare(2) = iaktifsekilkare(1) + 1
 iaktifsekilkare(3) = iaktifsekilkare(2) + 1
 durum = 1
 End If
 End If
 Case 6
 
 If durum = 1 Then
 If Shape1(iaktifsekilkare(2) - 1).Visible = False And Shape1(iaktifsekilkare(2) - 11).Visible = False And iaktifsekilkare(2) > 20 Then
 For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(2) - 11
 iaktifsekilkare(1) = iaktifsekilkare(0) + 10
 iaktifsekilkare(2) = iaktifsekilkare(1) + 10
 iaktifsekilkare(3) = iaktifsekilkare(2) + 1
 durum = 2
 End If
 ElseIf durum = 2 Then
 On Error Resume Next
 If Shape1(iaktifsekilkare(3) + 1).Visible = False And (Not (iaktifsekilkare(3) Mod 10 = 0)) And Shape1(iaktifsekilkare(2) + 10).Visible = False Then
 For i = 0 To 3
 Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(2)
 iaktifsekilkare(1) = iaktifsekilkare(0) + 10
 iaktifsekilkare(2) = iaktifsekilkare(0) + 1
 iaktifsekilkare(3) = iaktifsekilkare(2) + 1
 durum = 3
 End If
 ElseIf durum = 3 Then
 On Error Resume Next
 If Shape1(iaktifsekilkare(0) - 1).Visible = False And Shape1(iaktifsekilkare(1) + 10).Visible = False And (Not (iaktifsekilkare(0) Mod 10 = 1)) Then
 For i = 0 To 3
  Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(0) = iaktifsekilkare(0) - 1
 iaktifsekilkare(1) = iaktifsekilkare(0) + 1
 iaktifsekilkare(2) = iaktifsekilkare(1) + 10
 iaktifsekilkare(3) = iaktifsekilkare(2) + 10
 durum = 4
 End If
 ElseIf durum = 4 Then
 
 If Shape1(iaktifsekilkare(2) + 1).Visible = False And Shape1(iaktifsekilkare(2) - 9).Visible = False And (Not (iaktifsekilkare(1) Mod 10 = 0)) Then
 For i = 0 To 3
  Shape1(iaktifsekilkare(i)).Visible = False
 Next
 iaktifsekilkare(2) = iaktifsekilkare(1) - 9
 iaktifsekilkare(3) = iaktifsekilkare(2) + 10
 durum = 1
 End If
 End If
 End Select
  For i = 0 To 3
  Shape1(iaktifsekilkare(i)).Visible = True
 Shape1(iaktifsekilkare(i)).BackColor = QBColor(renk)
 Next
 End If
 End Sub
 Private Sub form_load()
'şekilleri yerleştirelim
For i = 0 To 20
For k = 1 To 10
Load Shape1(10 * i + k)
If k = 1 Then
Shape1(i * 10 + k).Left = Shape1(0).Left + Shape1(0).Width
  Shape1(i * 10 + k).Top = Shape1(0).Top
  Else
 Shape1(i * 10 + k).Left = Shape1(i * 10 + k - 1).Left + Shape1(i * 10 + k - 1).Width
  Shape1(i * 10 + k).Top = Shape1(0).Top
  End If
  Next
   Shape1(0).Top = Shape1(0).Top - Shape1(0).Height
   Next
   Shape2.Move Shape1(1).Left - 5, Shape1(210).Top - 5, 10 * Shape1(0).Width + 10, Shape1(0).Height * 20 + 10
   Call sekilsec
   For i = 0 To 10
   Shape1(i).Visible = True
   Next
   level = 0
   puan = 0
   Label1.Caption = "level" & level
   Label2.Caption = "punanınız:" & puan
   End Sub
   Private Sub sekilsec()
   Randomize Timer
   k = Int(Rnd * 6) + 1
   Select Case k
   Case 1: iaktifsekilkare(0) = 204
  iaktifsekilkare(1) = 205
  iaktifsekilkare(2) = 206
  iaktifsekilkare(3) = 207
  durum = 1
  
     Case 2: iaktifsekilkare(0) = 195
  iaktifsekilkare(1) = 196
  iaktifsekilkare(2) = 206
  iaktifsekilkare(3) = 207
  durum = 1
  
     Case 3: iaktifsekilkare(0) = 205
  iaktifsekilkare(1) = 196
  iaktifsekilkare(2) = 206
  iaktifsekilkare(3) = 197
  durum = 1
  
     Case 4: iaktifsekilkare(0) = 195
  iaktifsekilkare(1) = 205
  iaktifsekilkare(2) = 196
  iaktifsekilkare(3) = 206
  durum = 1
  
     Case 5: iaktifsekilkare(0) = 195
  iaktifsekilkare(1) = 205
  iaktifsekilkare(2) = 206
  iaktifsekilkare(3) = 207
  durum = 1
  
     Case 6: iaktifsekilkare(0) = 205
  iaktifsekilkare(1) = 206
  iaktifsekilkare(2) = 197
  iaktifsekilkare(3) = 207
  durum = 1
  End Select
bidaha:
  renk = Int(Rnd * 15) + 1
  If renk = 7 Then GoTo bidaha
  For i = 0 To 3
    Shape1(iaktifsekilkare(i)).Visible = True
 Shape1(iaktifsekilkare(i)).BackColor = QBColor(renk)
  Next
  
 End Sub
 
 Private Sub timer1_timer()
 devamet = False
 For i = 0 To 3
   devam(i) = False
 Next
 
 If Shape1(iaktifsekilkare(0) - 10).Visible = False Then devam(0) = True
 If (iaktifsekilkare(1) - 10 = iaktifsekilkare(0)) Then
  devam(1) = True
 Else
   If Shape1(iaktifsekilkare(1) - 10).Visible = False Then
   devam(1) = True
 End If
  
    If (iaktifsekilkare(2) - 10 = iaktifsekilkare(1)) Then
    devam(2) = True
 Else
     If Shape1(iaktifsekilkare(2) - 10).Visible = False Then
     devam(2) = True
 End If
      If (iaktifsekilkare(3) - 10 = iaktifsekilkare(2)) Then
    devam(3) = True
 Else
    If Shape1(iaktifsekilkare(3) - 10).Visible = False Then
    devam(3) = True
 End If
 For i = 0 To 3
    If devam(i) = True Then
     devamet = True
    Else
     devamet = False
     GoTo devamdevam
    End If
 Next
devamdevam:
If devamet = True Then
    For i = 0 To 3
    On Error Resume Next
      Shape1(iaktifsekilkare(i)).Visible = False
      iaktifsekilkare(i) = iaktifsekilkare(i) - 10
      Shape1(iaktifsekilkare(i)).Visible = True
      Shape1(iaktifsekilkare(i)).BackColor = QBColor(renk)
    Next
Else
    Call kontrol
    Call sekilsec
End If

End Sub

 
 Private Sub kontrol()
 sil(11) = False
basla:
 level = Int(puan / 1500)
 Select Case level
 Case 0: Timer1.Interval = 1000
  Case 1: Timer1.Interval = 1000
  Case 2: Timer1.Interval = 500
  Case 3: Timer1.Interval = 250
  Case 4: Timer1.Interval = 125
  Case 5: Timer1.Interval = 60
  Case 6: Timer1.Interval = 30
  Case 7: Timer1.Interval = 15
  Case 8: Timer1.Interval = 10
 End Select
 If level > 8 Then Timer1.Interval = 5
 Label1.Caption = "level" & level
 For i = 1 To 19
 For r = 1 To 10
 If Shape1(i * 10 + r).Visible = True Then
 sil(r) = True
 Else
 sil(r) = False
 End If
 Next
 For r = 1 To 10
 If sil(r) = True Then
 sil(11) = True
 Else
 sil(11) = False
 GoTo silelim
 End If
 Next
silelim:
 If sil(11) = True Then GoTo silbakalim
 Next
 Exit Sub
silbakalim:
 puan = puan + 100
 Label2.Caption = "puanınız:" & puan
 For s = i To 19
 For r = 1 To 10
 If Shape1(s * 10 + r + 10).Visible = True Then
 Shape1(s * 10 + r).BackColor = Shape1(s * 10 + r + 10).BackColor
 Else
 Shape1(s * 10 + r).Visible = False
 End If
 Next
 Next
 GoTo basla
 End Sub


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2024 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.