Next Bantuan Keluar Kata yang akan ditebak
LISTING PROGRAM
Dim kesempatan As Integer
Script Menu Utama Pada Game Tebak Kata
Dim nilai As Integer
Dim arrKataAsli(20) As String Dim kataAsli As String
Dim arrHurufHarusHilang(20) As String Dim hurufHarusHilang As String Dim kataBaru As String
Dim indexKataTerpilih As Integer Dim jumlahKataDitebak As Integer Dim hurufSudahHilang(20) As String Dim indexArrHurufSudahHilang As Integer Dim jumlahHurufSudahHilang As Integer Dim koneksi As New ADODB.Connection Dim rsHasil As New ADODB.Recordset Dim strQuery As String
Private Sub Form_Load() Call mulaiBaru
End Sub
Private Sub Form_Unload(Cancel As Integer) Cancel=1
End Sub
Private Sub cmdInput_Click(Index As Integer) Dim i As Integer
Dim hurufKembalikan As String hurufKembalikan=””
for i=0 To indexArrHurufSudahHilang
If(cmdInput(index).Caption=arrHurufSudahHilang(i)) Then hurufKembalikan=arrHurufSudahHilang(i) End If
Next i
If(hurufKembalikan <>””) Then
kataBaru=kembalikanHurufHilang(kataAsli, kataBaru, hurufKembalikan) If(jumlahHurufHilang=0) Then Nilai=nilai+10 lblNilai.Caption=nilai jumlahKataDitebak=jumlahKataDitebak-1 If(jumlahKataDitebak>0) Then Call pengaturanTombolAZ(3) cmdBantuan.Enabled=False cmdNext.Enabled=True Else Call menangAtauKalah(“MENANG”) End If
End If Else kesempatan=kesempatan-1 lblKesempatan.Caption=kesempatan If(kesempatan<=0) Then Call menangAtauKalah(“KALAH”) End If End If End Sub
Private Sub cmdNext_Click() Call pengaturanTombolAZ(2) cmdBantuan.Enabled=True cmdNext.Enabled=False jumlahHurufHilang=0 indexKataTerpilih=indexKataTerpilih+1 kataAsli=arrKataAsli(indexKataTerpilih) hurufHarusHilang=arr hurufHarusHilang(indexKataTerpilih) kataBaru=tentukanHurufHilang(kataAsli, hurufHarusHilang) lblTampilKata.Caption=tampilkanKataKeLayar(kataBaru) End Sub
Private Sub cmdBantuan_Click() Dim posisiHurufBantuan As Integer Dim hurufDitampilkan As String Dim bisaDibantu As Boolean bisaDibantu=apakahNilaiCukup() If(bisaDibantu=True) Then
On Error Resume Next
posisiHurufBantuan=InputBox(“Masukkan posisi huruf yang ingin ditampilkan.” & vbCrLf & vbCrLf & “Setiap Anda memakai fasilitas Bantuan ini,” & vbCrLf & “Nilai Anda akan dikurangi sebanyak 20 poin”, “Input Posisi Huruf.”)
If(posisiHurufBantuan<>0) Then
hurufDitampilkan=ambilHurufTertentu(kataAsli, kataBaru, posisiHurufBantuan) If(hurufDitampilkan<>””) Then
kataBaru=kembalikanHurufHilang(kataAsli, kataBaru, hurufDitampilkan) nilai=nilai-20
lblNilai.Caption=nilai End If
End If Else
MsgBox”Maaf, jumlah Nilai Anda tidak mencukupi untuk Bantuan.” & vbCrLf & “Nilai minimal adalah 20 Poin.”, vbInformation, “Maaf”
End If End Sub
Private Sub cmdKeluar_Click() End
End Sub
Public Function pengaturanTombolAZ(pilihan As Integer)
FUNGSI-FUNGSI
Dim i, kodeAscii As Integer kodeAscii=65
for i=0 To 25 select Case pilihan
Case 1: cmdInput(i).Caption=Chr(kodeAscii) kodeAscii=kodeAscii+1 Case 2: cmdInput(i).Enabled=True Case 3: cmdInput(i).Enabled=False End Select Next i End Function
Public Function ambilKataDitebak() As Integer Dim noIndex As Integer
koneksi.Open (“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & App.Path & ”\dbTebakKata.mdb;Persist Security Info=False”)
strQuery=”SELECT*FROM tblTebakKata” rsHasil.Open strQuery, koneksi
noIndex=0
if Not rsHasil.EOF Then While Not rsHasil.EOF
arrKataAsli(noIndex)=rsHasil.Fields(“kata”) arrHurufHarusHilang(noIndex)=rsHasil.Fields(“huruf_hilang”) rsHasil.MoveNext noIndex=noIndex+1 Wend End If ambilKataDitebak=noIndex rsHasil.Close Set rsHasil=Nothing koneksi.Close Set koneksi=Nothing End Function
Public Function nonAktifkanTombol(labelTombol As String) Dim labelPadaTombol As String
For i=0 To 25 labelPadaTombol=cmdInput(i).Caption If (labelPadaTombol=labelTombol) Then cmdInput(i).Enabled=False End If Next i End Fuction
Public Function tentukanHurufHilang(kataAsli As String, hurufDihilangkan As String) As String Dim panjangKata1, panjangKata2, i, j As Integer
Dim ambilHuruf1, ambilHuruf2 As String Dim kataHurufHilang As String
Dim tombolNonAktif As String Dim hurufHilang As Boolean
indexArrHurufSudahHilang=0 panjangKata1=Len(kataAsli)
panjangKata2=Len(hurufDihilangkan) jumlahHurufHilang=panjangKata2 For i=1 To panjangKata1
ambilHuruf1=Mid(kataAsli, i, 1) hurufHilang=False For j=1 To panjangKata2 ambilHuruf2=Mid(hurufDihilangkan, j, 1) If (ambilHuruf1=ambilHuruf2) Then hurufHilang=True End If Next j If (hurufHilang=True) Then kataHurufHilang=kataHurufHilang+”_” arrHurufSudahHilang(indexArrHurufSudahHilang)=ambilHuruf1 indexArrHurufSudahHilang= indexArrHurufSudahHilang+1 Else kataHurufHilang= kataHurufHilang+ambilHuruf1 tombolNonAktif=ambilHuruf1 Call nonAktifTombol(tombolNonAktif) End If Next i tentukanHurufHilang=kataHurufHilang End Function
Public Function tampilkanKataKeLayar(kata As String) As String Dim panjangKata, i As Integer
Dim ambilHuruf As String Dim kataBaru As String panjangKata=Len(kata) for i=1 To panjangKata
ambilHuruf=Mid(kata, i, 1) If (ambilHuruf=”_”) Then Select Case i Case 1: kataBaru=”_” Case panjangKata: kataBaru=kataBaru+”_” Case Else: kataBaru=kataBaru+”_” End Select Else kataBaru=kataBaru+” ”+ambilHuruf End If Next i tampilkanKataKeLayar=kataBaru End Function
Public Funnction mulaiBaru() Call pengaturanTombolAZ(1)
Call pengaturanTombolAZ(2) cmdBantuan.Enabled=True cmdNext.Enabled=False jumlahKataDitebak=ambilKataDitebak() kesempatan=3 lblKesempatan.Caption=kesempatan nilai=0 lblNilai.Caption=nilai indexKataTerpilih=0 kataAsli=arrKataAsli(indexKataTerpilih) hurufHarusHilang= hurufHarusHilang(indexKataTerpilih) kataBaru=tentukanHurufHilang(kataAsli, hurufHarusHilang) lblTampilKata.Caption=tampilkanKataKeLayar(kataBaru) End Function
Public Function kembalikanHurufHilang(kataAsli As String, kataHurufHilang As String, hurufDikembailkan As String) As String
Dim panjangKata, i As Integer
Dim ambilHuruf1, ambilHuruf2 As String Dim katabaru As String
panjangKata=Len(kataAsli) For i=1 To panjanhKata
ambilHuruf1=Mid(kataAsli, i, 1) ambilHuruf2=Mid(kataHurufHilang, i, 1) If (ambilHuruf1=hurufDikembalikan) Then kataBaru=kataBaru+ambilHuruf1 Else kataBaru=kataBaru+ambilHuruf2 End If Next i lblTampilKata.Caption=tampilkanKataKeLayar(kataBaru) jumlahHurufHilang=jumlahHurufHilang-1 Call nonAktifkanTombol(hurufDikembalikan) kembalikanHurufHilang=kataBaru End Function
Public Function apakahNilaiCukup() As Boolean If ((nilai-20)>=0) Then apakahNilaiCukup=True Else apakahNilaiCukup=False End If End Function
Public Function ambilHurufTertentu(kataAsli As String, kataHurufHilang As String, posisiHuruf As Integer) As Integer
Dim panjangKata, i As Integer
Dim ambilHuruf1, ambilHuruf2 As String Dim hurufDicari As String
panjangKata=Len(kataAsli) For i=1 To panjangKata
ambilHuruf1=Mid(kataAsli, i, 1)
ambilHuruf2=Mid(kataHurufHilang, i, 1)
If ((i=posisiHuruf) And (ambilHuruf2=”_”)) Then hurufDicari=ambilHuruf1
End If Next i
ambilHurufTertentu=hurufDicari End Function
Public Function menangAtauKalah(status As String) Dim mainLagi As VbMsgBoxResult
Call pengaturanTombolAZ(3) cmdBantuan.Enabled=False cmdNext.Enabled=False If (status=”MENANG”) Then
mainLagi=MsgBox(“Anda menang. Main lagi?”, vbYesNo, “Selamat”) ElseIf (status=”KALAH”) Then
mainLagi=MsgBox(“Anda kalah. Main lagi?”, vbYesNo, “maaf”) End If
If (mainLagi=VbMsgBoxResult.vbYes) Then Call mulaiBaru
ElseIf (mainLagi=VbMsgBoxResult.vbNo) Then: End End If
End Function
Option Explisit
Script Form Game Tebak Kata
Private Declare Function LoadCursor Lib “user32” Alias “LoadCursorA” (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetCursor Lib “user32” (ByVal hCursor As Long) As Long Private Cosnt IDC_HAND=32649&
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) picTombolMulai.Picture=LoadPicture(App.Path & ”\Gambar\TombolMulai_UP.bmp”) End Sub
Private Sub picTombolMulai_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
SetCursor LoadCursor(0, IDC_HAND)
picTombolMulai.Picture=LoadPicture(App.Path & ”\Gambar\TombolMulai_OVER.bmp”) End Sub
Private Sub picTombolMulai_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
SetCursor LoadCursor(0, IDC_HAND) Form1.Visible=True
Unload Me End Sub
Dim kesempatan As Integer Dim nilai As Integer
Dim arrKataAsli(20) As String Dim kataAsli As String
Dim arrHurufHarusHilang(20) As String Dim HurufHarusHilang As String Dim kataBaru As String
Dim indexKataTerpilih As Integer Dim jumlahKataDitebak As Integer Dim arrHurufSudahHilang(20) As String Dim indexArrHurufSudahHilang As Integer Dim jumlahHurufHilang As Integer Dim koneksi As New ADODB.Connection Dim rsHasil As New ADODB.Recordset Dim strQuery As String
Private Sub Form_Load() Call mulaiBaru
End Sub
Private Sub Form_Unload(Cancel As Integer) Cancel = 1
End Sub
Private Sub cmdInput_Click(Index As Integer) Dim i As Integer
Dim hurufKembalikan As String hurufKembalikan = ""
For i = 0 To indexArrHurufSudahHilang
If (cmdInput(Index).Caption = arrHurufSudahHilang(i)) Then hurufKembalikan = arrHurufSudahHilang(i)
End If Next i
If (hurufKembalikan <> "") Then
kataBaru = kembalikanHurufHilang(kataAsli, kataBaru, hurufKembalikan) If (jumlahHurufHilang = 0) Then nilai = nilai + 10 lblNilai.Caption = nilai jumlahKataDitebak = jumlahKataDitebak - 1 If (jumlahKataDitebak > 0) Then Call pengaturanTombolAZ(3) cmdBantuan.Enabled = False cmdNext.Enabled = True Else Call menangAtauKalah("MENANG") End If End If Else kesempatan = kesempatan - 1 lblKesempatan.Caption = kesempatan If (kesempatan <= 0) Then cal menangAtauKalah("KALAH") End If End If End Sub
Call pengaturanTombolAZ(2) cmdBantuan.Enabled = True cmdNext.Enabled = False jumlahHurufHilang = 0 indexKataTerpilih = indexKataTerpilih + 1 kataAsli = arrKataAlsi(indexKataTerpilih) HurufHarusHilang = arrHurufHarusHilang(indexKataTerpilih) kataBaru = tentukanHurufHilang(kataAsli, HurufHarusHilang) lblTampilKata.Caption = tampilkanKataKeLayar(kataBaru) End Sub
Private Sub cmdBantuan_Click() Dim posisiHurufBantuan As Integer Dim hurufDitampilkan As String Dim bisaDibantu As Boolean bisaDibantu = apakahNilaiCukup() If (bisaDibantu = True) Then On Error Resume Next
posisiHurufBantuan = InputBox("Masukkan posisi huruf yang ingin ditampilkan." & vbCrLf & vbCrLf & "Setiap Anda memakai fasilitas Bantuan ini," & vbCrLf & "Nilai Anda akan dikurangi sebanyak 20 poin", "Input Posisi Huruf.")
If (posisiHurufBantuan <> 0) Then
hurufDitampilkan = ambilHurufTertentu(kataAsli, kataBaru, posisiHutufBantuan) If (hurufDitampilkan <> "") Then
kataBaru = kembalikanHurufHilang(kataAsli, kataBaru, hurufDitampilkan) nilai = nilai - 20
lblNilai.Caption = nilai End If
End If Else
MsgBox "Maaf, jumlah Nilai Anda tidak mencukupi untuk Bantuan." & vbCrLf & "Nilai minimal adalah 20 poin.", vbInformation, "Maaf"
End If End Sub
Private Sub cmdKeluar_Click() End
End Sub
Public Function pengaturanTombolAZ(pilihan As Integer) Dim i, kodeAscii As Integer
kodeAscii = 65 For i = 0 To 25 Select Case pilihan Case 1: cmdInput(i).Caption = Chr(kodeAscii) kodeAscii = kodeAscii + 1 Case 2: cmdInput(i).Enabled = True Case 3: cmdInput(i).Enabled = False End Select Next i End Function
Public Function ambilKataDitebak() As Integer Dim noIndex As Integer
koneksi.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbTebakKata.mdb;Persist Security Info=false")
strQuery = "SELECT*FROM tblTebakKata" rsHasil.Open strQuery, koneksi
noIndex = 0
If Not rsHasil.EOF Then While Not rsHasil.EOF
arrKataAsli(noIndex) = rsHasil.Fields("kata") arrHurufHarusHilang(noIndex) = rsHasil.Fields("huruf_hilang") rsHasil.MoveNext noIndex = noIndex + 1 Wend End If ambilKataDitebak = noIndex rsHasil.Close
Set rsHasil = Nothing koneksi.Close Set koneksi = Nothing End Function
Public Function nonAktifkanTombol(labelTombol As String) Dim labelPadaTombol As String
For i = 0 To 25
labelPadaTombol = cmdInput(i).Caption
If (labelPadaTombol = labelTombol) Then cmdInput(i).Enabled = False
End If Next i End Function
Public Function tentukanHurufHilang(kataAsli As String, hurufDihilangkan As String) As String Dim panjangKata1, panjangKata2, i, j As Integer
Dim ambilHuruf1, ambilHuruf2 As String Dim kataHurufhilang As String
Dim tombolNonAktif As String Dim hurufHilang As Boolean IndexArrHurufHilang = 0 panjangKata1 = Len(kataAsli) panjangKata2 = Len(hurufDihilangkan) jumlahHurufHilang = panjangKata2 For i = 1 To panjangKata1 ambillHuruf1 = Mid(kataAsli, i, 1) hurufHilang = False For j = 1 To panjangKata2 ambilHuruf2 = Mid(hurufDihilangkan, j, 1) If (ambillHuruf1 = ambilHuruf2) Then
hurufHilang = True End If
Next j
If (hurufHilang = True) Then
kataHurufhilang = kataHurufhilang + "_"
arrHurufSudahHilang(indexArrHurufSudahHilang) = ambilHuruf1 indexArrHurufSudahHilang = indexArrHurufSudahHialang + 1 Else
kataHurufhilang = kataHurufhilang + ambilHuruf tombolNonAktif = ambilHuruf1 Call nonAktifkanTombol(tombolNonAktif) End If Next i tentukanHurufHilang = kataHurufhilang End Function
Public Function tampilkanKataKeLayar(kata As String) As String Dim panjangKata, i As Integer
Dim ambilHuruf As String Dim kataBaru As String panjangKata = Len(kata) For i = 1 To panjangKata ambilHuruf = Mid(kata, i, 1) If (ambilHuruf = "_") Then Select Case i Case 1: kataBaru = "_" Case panjangKata: kataBaru = kataBaru + "_" Case Else: kataBaru = kataBaru + "_" End Select Else
kataBaru = kataBaru + "" + ambilHuruf End If
Next i
tampilkanKataKeLayar = kataBaru End Function
Public Function mulaiBaru() Call pengaturanTombolAZ(1) Call pengaturanTombolAZ(2) cmdBantuan.Enabled = True cmdNext.Enabled = False jumlahKataDitebak = ambilKataDitebak() kesempatan = 3 lblKesempatan.Caption = kesempatan nilai = 0 lblNilai.Caption = nilai indexKataTerpilih = 0 kataAsli = arrKataAsli(indexKataTerpilih)
HurufHarusHilang = arrHurufHarusHilang(indexKataTerpilih) kataBaru = tentukanHurufHilang(kataAsli, HurufHarusHilang) lblTampilKata.Caption = tampilkanKataKeLayar(kataBaru) End Function
Public Function kembalikanHurufHilang(kataAsli As String, kataHurufhilang As String, hurufDikembalikan As String) As String
Dim panjangKata, i As Integer
Dim ambilHuruf1, ambilHuruf2 As String Dim kataBaru As String
panjangKata = Len(kataAsli) For i = 1 To panajangKata
ambilHuruf1 = Mid(kataAsli, i, 1) ambilHuruf2 = Mid(kataHurufhilang, i, 1)
If (ambilHuruf1 = hurufDikembalikan) Then kataBaru = kataBaru + ambilHuruf1 Else
kataBaru = kataBaru + ambilHuruf2 End If Next i lblTampilKata.Caption = tampilkanKataKeLayar(kataBaru) jumlahHurufHilang = jumlahHurufHilang - 1 Call nonAktikanTombol(hurufDikembailkan) kembalikanHurufHilang = kataBaru End Function
Public Function apakahNilaiCukup() As Boolean If ((nilai - 20) >= 0) Then apakahNilaiCukup = True Else apakahNilaiCukup = False End If End Function
Public Function ambilHurufTertentu(kataAsli As String, kataHurufhilang As String, posisiHuruf As Integer) As String
Dim panjangKata, i As Integer
Dim ambilHuruf1, ambilHuruf2 As String Dim hurufDicari As String
panjangKata = Len(kataAsli) For i = 1 To panjangKata
ambilHuruf1 = Mid(kataAsli, i, 1) ambilHuruf2 = Mid(kataHurufhilang, i, 1)
If ((i = posisiHuruf) And (ambilHuruf2 = "_")) Then hurufDicari = ambilHuruf1
End If Next i
ambilHurufTertentu = hurufDicari End Function
Public Function menangAtauKalah(status As String) Dim mainLagi As VbMsgBoxResult
Call pengaturanTombolAZ(3) cmdBantuan.Enabled = False cmdNext.Enabled = False If (status = "MENANG") Then
mainLagi = MsgBox("Anda menang. Main lagi?", vbYesNo, "Selamat!") ElseIf (status = "KALAH") Then
mainLagi = MsgBox("Anda kalah. Main lagi?", vbYesNo, "Maaf!") End If
If (mainLagi = VbMsgBoxResult.vbYes) Then Call mulaiBaru
ElseIf (mainLagi = VbMsgBoxResult.vbNo) Then End If
SURAT KETERANGAN