You are on page 1of 32

43

L A M P I R A N

Universitas Sumatera Utara

44

Penulisan Kode Program Aplikasi Game Tetris

A. Kode program aplikasi game tetris untuk form1 ( MainF.frm ) adalah sebagai berikut.

Dim BANK As Database Dim RS As DAO.Recordset

Private Sub C_GotFocus(Index As Integer) KeyDownC.SetFocus End Sub

Private Sub Check1_Click() KeyDownC.SetFocus End Sub

Private Sub Check1_KeyDown(KeyCode As Integer, Shift As Integer) KeyDownC.SetFocus End Sub

Private Sub Command1_Click() RS.MoveFirst RS.Edit RS("hiscoref") = 0

Universitas Sumatera Utara

45

RS.Update HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) If KeyDownC.Enabled Then KeyDownC.SetFocus End Sub

Private Sub Form_GotFocus() KeyDownC.SetFocus End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 39 Then Call MOVErigth If KeyCode = 37 Then Call MOVEleft

End Sub

Private Sub Form_Load() 'KeyDownC.SetFocus Set BANK = DBEngine.OpenDatabase(App.Path + "\hiscore.mdb") Set RS = BANK.OpenRecordset("his") RS.MoveFirst HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) BEGflag = True If SND.Value = 1 Then j = sndPlaySound(App.Path + "\startGAME.wav", 0) nextSHAPE BEGflag1 = True

Universitas Sumatera Utara

46

MAINtimer.Enabled = True End Sub

Private Sub Form_Unload(Cancel As Integer) If SND.Value = 1 Then j = sndPlaySound(App.Path + "\gameOVER.wav", SND_ASYNC Or SND_LOOP) End Sub

Private Sub KeyDownC_KeyPress(KeyCode As Integer) KeyDownC.Caption = KeyAscii 'Form1.BackColor = GRRc.BackColor If KeyCode = 48 Then If SELshape = 4 Then SELshape = 1 Else SELshape = SELshape + 1 End If End If If KeyCode = 48 Then Call ROTATEshape If KeyCode = 54 Then Call MOVErigth If KeyCode = 52 Then Call MOVEleft If KeyCode = 53 Then Call MOVEdown 'If KeyCode = 51 Then Call nextSHAPE If KeyCode = 32 Then FASTdownFLAG = True

Universitas Sumatera Utara

47

Call MOVEdown End If If KeyCode = 112 Or KeyCode = 80 Then Call pouseKEY End If End Sub

Function GetMEi() 'If BEGflag Then ' ' BEGflag = False Call GetMEi

'End If COLORt = S(6) 'PRi = i 'rewFLAG = True Randomize Timer pishi1 = Rnd * 1000 For i = 1 To 8 If pishi1 > i * 142 - 142 And pishi1 <= i * 142 Then Exit For Next i TEMPi = PRi DEFshape If Not BEGflag Then PRi = i

Universitas Sumatera Utara

48

Call PRIshape Else BEGflag = False Call GetMEi End If i = TEMPi 'BEGflag = False End Function

Function nextSHAPE() KeepFLAG = True MainI = 4 SELshape = 1 'For k = 1 To 160 ' MM(k) = False

'Next k If KeepFLAG = True Then GetMEi DEFshape End If For j = 0 To 3 MM(MainI + S(j)) = S(6) Next j For cleaner = 1 To 160 If MM(cleaner) <> 0 Then

Universitas Sumatera Utara

49

If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else C(cleaner).BackColor = BLAKc.BackColor End If Next cleaner If SND.Value = 1 Then j = sndPlaySound(App.Path + "\fallDOWN.wav", SND_ASYNC Or SND_LOOP) End Function

Private Sub LEVEL_KeyPress(KeyAscii As Integer) If KeyAscii = 112 Then Call pouseKEY End If End Sub

Private Sub MAINtimer_Timer() MOVEdown End Sub

Universitas Sumatera Utara

50

Function ROTATEshape() KeepFLAG = True 'MainI = 4 For j = 0 To 3 MM(MainI + S(j)) = 0 Next j 'If KeepFLAG = True Then 'GetMEi DEFshape 'End If temp = MainI Mod 10 If temp = 0 Then temp = 10 row = ((MainI - (temp)) / 10) + 1 If MainI > S(4) + ((row - 1) * 10) Then fillFLAG = True For q = 0 To 3 If MM(MainI + S(q)) Then fillFLAG = True Next q If fillFLAG Then If SELshape = 1 Then SELshape = 4 Else SELshape = SELshape - 1 End If End If DEFshape

Universitas Sumatera Utara

51

fillFLAG = False For j = 0 To 3 MM(MainI + S(j)) = S(6) Next j For cleaner = 1 To 160 If MM(cleaner) <> 0 Then If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else C(cleaner).BackColor = BLAKc.BackColor End If Next cleaner

End Function Function MOVErigth() KeepFLAG = True For j = 0 To 3 MM(MainI + S(j)) = False Next j MainI = MainI + 1

Universitas Sumatera Utara

52

temp = MainI Mod 10 If temp = 0 Then temp = 10 row = ((MainI - (temp)) / 10) + 1 If MainI > S(4) + ((row - 1) * 10) Then MainI = MainI - 1 If i = 7 And (SELshape = 2 Or SELshape = 4) And temp = 1 Then MainI = MainI - 1 For q = 0 To 3 If MM(MainI + S(q)) Then fillFLAG = True Next q If fillFLAG Then MainI = MainI - 1 fillFLAG = False For j = 0 To 3 MM(MainI + S(j)) = S(6) Next j For cleaner = 1 To 160 If MM(cleaner) <> 0 Then If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else C(cleaner).BackColor = BLAKc.BackColor End If

Universitas Sumatera Utara

53

Next cleaner

End Function Function MOVEleft() KeepFLAG = True For j = 0 To 3 MM(MainI + S(j)) = 0 Next j MainI = MainI - 1 row = ((MainI - (MainI Mod 10)) / 10) + 1 If MainI < 1 + ((row - 1) * 10) Then MainI = MainI + 1 For q = 0 To 3 If MM(MainI + S(q)) <> 0 Then fillFLAG = True Next q If fillFLAG Then MainI = MainI + 1 fillFLAG = False 'If KeepFLAG = True Then 'GetMEi ' DEFshape '********************************

'End If For j = 0 To 3 MM(MainI + S(j)) = S(6) Next j For cleaner = 1 To 160 If MM(cleaner) <> 0 Then

Universitas Sumatera Utara

54

If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else C(cleaner).BackColor = BLAKc.BackColor End If Next cleaner

End Function

Function MOVEdown() Dim lineFLAG As Boolean SCORE.Text = Val(SCORE.Text) + 5 'If MAINtimer.Interval < 200 Then ' ' MAINtimer.Interval = 500 LEVEL.Text = Val(LEVEL.Text) + 1

'End If 'MAINtimer.Interval = MAINtimer.Interval - 2 'If SND.Value = 1 Then j = sndPlaySound(App.Path + "\falldown.wav", SND_ASYNC) KeepFLAG = True

Universitas Sumatera Utara

55

For j = 0 To 3 MM(MainI + S(j)) = 0 Next j MainI = MainI + 10 'If MainI > S(5) Then 'p = i 'End If For q = 0 To 3 If MM(MainI + S(q)) <> 0 Then fillFLAG = True Next q If S(5) < MainI Or fillFLAG Then MainI = MainI - 10 For p = 0 To 3 MM(MainI + S(p)) = S(6) Next p fillFLAG = False If MainI < 10 And Not BEGflag1 Then MAINtimer.Enabled = False If Val(SCORE.Text) > RS("hiscoref") Then RS.Edit RS("hiscoref") = Val(SCORE.Text) RS.Update End If HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) C(44).BackColor = Smile.BackColor

Universitas Sumatera Utara

56

C(47).BackColor = Smile.BackColor C(62).BackColor = Smile.BackColor C(73).BackColor = Smile.BackColor C(84).BackColor = Smile.BackColor C(85).BackColor = Smile.BackColor C(86).BackColor = Smile.BackColor C(87).BackColor = Smile.BackColor C(78).BackColor = Smile.BackColor C(69).BackColor = Smile.BackColor If SND.Value = 1 Then j = sndPlaySound(App.Path + "\gameOVER.wav", SND_ASYNC Or SND_LOOP) MsgBox "YOU LOSE THE GAME ! " KeyDownC.Enabled = False Exit Function End If BEGflag1 = False For w = 0 To 15 lineFLAG = True For e = 1 To 10 If MM(w * 10 + e) = 0 Then lineFLAG = False Next e If lineFLAG = True Then SCORE.Text = Val(SCORE.Text) + 100 For r = w To 1 Step -1 For t = 1 To 10

Universitas Sumatera Utara

57

MM(r * 10 + t) = MM((r - 1) * 10 + t) MM((r - 1) * 10 + t) = 0 'If MM(r * 10 + t) Then C(r * 10 + t).BackColor = GRRc.BackColor Else C(r * 10 + t).BackColor = BLAKc.BackColor Next t Next r 'GoTo 1 If SND.Value = 1 Then j = sndPlaySound(App.Path + "\LINEFILL.wav", SND_ASYNC) End If Next w For cleaner = 1 To 160 If MM(cleaner) <> 0 Then If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else C(cleaner).BackColor = BLAKc.BackColor End If Next cleaner FASTdownFLAG = False

Universitas Sumatera Utara

58

nextSHAPE Else If FASTdownFLAG Then Call MOVEdown End If 'If MainI > 140 Then MainI = MainI - 10 'If KeepFLAG = True Then 'GetMEi 'DEFshape 'End If For j = 0 To 3 MM(MainI + S(j)) = S(6) Next j For cleaner = 1 To 160 If MM(cleaner) <> 0 Then If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else C(cleaner).BackColor = BLAKc.BackColor End If Next cleaner

Universitas Sumatera Utara

59

'If lineFLAG = True Then ' ' lineFLAG = False Exit Function

'End If End Function

Private Sub NEW_GAME_Click() HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) MainI = 4 For lk = 0 To 160 MM(lk) = 0 Next lk SCORE.Text = 0 LEVEL.Text = 1 MAINtimer.Enabled = True KeyDownC.Enabled = True If KeyDownC.Enabled Then KeyDownC.SetFocus If SND.Value = 1 Then j = sndPlaySound(App.Path + "\startGAME.wav", SND_ASYNC Or SND_LOOP) End Sub

Private Sub NEW_GAME_KeyPress(KeyAscii As Integer) If KeyAscii = 112 Or KeyAscii = 80 Then Call pouseKEY

Universitas Sumatera Utara

60

End If

End Sub

Function pouseKEY() MAINtimer.Enabled = Not MAINtimer.Enabled KeyDownC.Enabled = Not KeyDownC.Enabled If KeyDownC.Enabled Then KeyDownC.SetFocus End Function

Private Sub SCORE_KeyPress(KeyAscii As Integer) If KeyAscii = 112 Or KeyAscii = 80 Then Call pouseKEY End If End Sub

Function PRIshape() For m = 1 To 4 A(m).BackColor = PINKc.BackColor A(m + 10).BackColor = PINKc.BackColor A(m + 20).BackColor = PINKc.BackColor A(m + 30).BackColor = PINKc.BackColor Next m If S(6) = 0 Then Exit Function Select Case PRi

Universitas Sumatera Utara

61

Case 1 GoTo 1 Case 2 GoTo 2 Case 3 GoTo 3 Case 4 GoTo 4 Case 5 GoTo 5 Case 6 GoTo 6 Case 7 GoTo 7 End Select 1 A(2).BackColor = BCOLOR(S(6)).BackColor A(3).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor Exit Function 2 A(1).BackColor = BCOLOR(S(6)).BackColor A(2).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor

Universitas Sumatera Utara

62

A(13).BackColor = BCOLOR(S(6)).BackColor Exit Function

3 A(1).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(21).BackColor = BCOLOR(S(6)).BackColor A(22).BackColor = BCOLOR(S(6)).BackColor Exit Function

4 A(2).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor A(21).BackColor = BCOLOR(S(6)).BackColor A(22).BackColor = BCOLOR(S(6)).BackColor Exit Function

5 A(2).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor A(13).BackColor = BCOLOR(S(6)).BackColor Exit Function

Universitas Sumatera Utara

63

A(1).BackColor = BCOLOR(S(6)).BackColor A(2).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor Exit Function 7 A(1).BackColor = BCOLOR(S(6)).BackColor A(2).BackColor = BCOLOR(S(6)).BackColor A(3).BackColor = BCOLOR(S(6)).BackColor A(4).BackColor = BCOLOR(S(6)).BackColor Exit Function

End Function

Private Sub SND_Click() If KeyDownC.Enabled Then KeyDownC.SetFocus End Sub

Universitas Sumatera Utara

64

B. Kode program untuk Modules yg diberi nama ( PhisiM.bas ).

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Global S(6) As Integer 'global s2(3) As Integer 'Global s3(3) As Integer 'Global s4(3) As Integer 'Global s5(3) As Integer 'Global s6(3) As Integer 'Global s7(3) As Integer Global MM(160) As Integer 'if 0 then null if 1 then blue if 2 red Global SELshape As Integer Global MainI As Integer Global KeepFLAG As Boolean Global rewFLAG As Boolean Global i As Integer Global row As Integer Global fillFLAG As Boolean Global FASTdownFLAG As Boolean Global ShColor As Integer Global PRi As Integer Global BEGflag As Boolean Global TEMPi As Integer

Universitas Sumatera Utara

65

Global BEGflag1 As Boolean Global COLORt As Integer

Function DEFshape() Select Case SELshape Case 1

'KIND a Select Case i Case 1 S(0) = 1 S(1) = 2 S(2) = 10 S(3) = 11 S(4) = 8 S(5) = 140 Case 2 S(0) = 0 S(1) = 1 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 3 S(0) = 0

Universitas Sumatera Utara

66

S(1) = 10 S(2) = 20 S(3) = 21 S(5) = 130 S(4) = 9 Case 4 S(0) = 1 S(1) = 11 S(2) = 20 S(3) = 21 S(4) = 9 S(5) = 130 Case 5 S(0) = 1 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9

Universitas Sumatera Utara

67

S(5) = 140 Case 7 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 3 S(4) = 7 S(5) = 150 End Select Case 2 'KIND b Select Case i Case 1 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130 Case 2 S(0) = 1 S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9

Universitas Sumatera Utara

68

S(5) = 130 Case 3 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 10 S(4) = 8 S(5) = 140 Case 4 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 5 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9 S(5) = 130 Case 6 S(0) = 0 S(1) = 1

Universitas Sumatera Utara

69

S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 10 S(2) = 20 S(3) = 30 S(4) = 10 S(5) = 120 End Select Case 3 'KIND c Select Case i Case 1 S(0) = 1 S(1) = 2 S(2) = 10 S(3) = 11 S(4) = 8 S(5) = 140 Case 2 S(0) = 0 S(1) = 1

Universitas Sumatera Utara

70

S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 3 S(0) = 0 S(1) = 1 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130 Case 4 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 20 S(4) = 9 S(5) = 130 Case 5 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 11 S(4) = 8 S(5) = 140

Universitas Sumatera Utara

71

Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 3 S(4) = 7 S(5) = 150 End Select Case 4 'KIND d Select Case i Case 1 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130

Universitas Sumatera Utara

72

Case 2 S(0) = 1 S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9 S(5) = 130 Case 3 S(0) = 2 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 4 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 12 S(4) = 8 S(5) = 140 Case 5 S(0) = 1 S(1) = 10 S(2) = 11

Universitas Sumatera Utara

73

S(3) = 21 S(4) = 9 S(5) = 130 Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 10 S(2) = 20 S(3) = 30 S(4) = 10 S(5) = 120 End Select End Select Select Case i Case 1 S(6) = 1 Case 2 S(6) = 2 Case 3

Universitas Sumatera Utara

74

S(6) = 3 Case 4 S(6) = 4 Case 5 S(6) = 5 Case 6 S(6) = 6 Case 7 S(6) = 7 End Select End Function

Universitas Sumatera Utara

You might also like