nah..
hahahaha.
Saya mau tanya..
Gimana caranya bikin program permainan, tebak2an?
Diberi kesempatan 10 kali untuk menebak 4 digit angka acak.
misal:
angka di simpan (yg mau ditebak) 4321
kesempatan pertama diinput 1234
nah, angka 1234 = ada atau benar.. tapi posisi salah..
lalu kesempatan kedua diinput 2341
3 dan 1 = ada dan benar posisinya..
sedangkan 2 dan 4 ada dan salah
urm.. sepertinya agak susah dijelasin..
Ntar saya attach contoh filenya deh ya.. :D
tolong kasi ide gimana cara ngebuat programnya ya.. >,,<
Saya gak ada ide buat gimana nentuin posisinya itu benar atau salah. >,,<
Thanks..
Umm...
VB.net dengan VB6 tuh sama???
Ah kirain mu mamerin program..
coba ini, bisa dimanipulasi sesuai kebutuhan.. ;)
Private Function Cek(Nilai As String, Tebak As String)
For i = 1 To 4
Angka = Mid(Tebak, i, 1)
Pos = InStr(Nilai, Angka)
If Pos = i Then
H = "B" 'posisi dan angka benar
ElseIf Pos > 0 Then
H = "S" 'angka ada tapi posisi salah
Else
H = "T" 'angka tidak ada
End If
Hasil = Hasil & H
Next i
Cek = Hasil
End Function
belum termasuk checking panjang tebakan dan lain lain..
urm..
maap...
ini pake VB.net 2005 ya bung adisae?
haha kagak..pake VBA (Access)..perintahnya agak beda yah? ???
Agak beda nih bang.. ^^"
urm..
Tapi saya coba dulu deh.. ^^
ini bang contoh programna.. :D
(hari kamis dah mau dikumpul nih bang.. tulungin. >,,< )
Thanks banget ya...
Duh... di aku ko ga bisa jalan?
Apa harus pake .Net Framework yah?
urm..
VB.net 2005 nih..
wkwkkww~
mau programnya?
bentar ya..
:D :D :D
oh ya..
Di sekolah saya sudah dipelajari, array, random...
masi yang dasar2nya deh pokoke..
jadi jangan dibikin yang tingkat tinggi ya programnya.. >,,<
tolong sekalian dijelasin..
makasii.. >,,<
Kutip dari: Henz_Azthral pada Oktober 24, 2010, 08:53:35 PM
Umm...
VB.net dengan VB6 tuh sama???
urm..
kurang tau..
heehe..
VB.net-ku yang 2005.. :D
ini program VB.net 2005
berhubung nda bisa diupload filena.. terlalu berat...
saya kasi link deh.. ^^
[pranala luar disembunyikan, sila masuk atau daftar.]tolonginya.. >,,<
download na pijit vb.net 2005 In PPD Software terus di bawahna ada tulisan download kecil.. ^^
makasii banyak.. :D :-[
program tebak angka yang diatas bikinane sisca?
kalo bisa update source codenya juga dunk..
link di atas vb.net 2005 In PPD Software
Brothersoft Community Toolbar 2.6.0.15 ??? ???
thanks infonya....
@bang adisae..
ah?
bukan..
Justru sisca mau minta diajarin bikin program yang kayak begitu... >,,<
Gak mudeng cara buatnya nih.. :(
makasi yaa.. ^^
linknya buat download VB.net 2005 tuh.. hehehehe~
ups.. ternyata linknya itu bukan buat download VB.net 2005 ternyata.. >,,<
sorry sorry...
abang ada ide buat bikin program kayak begitu ndak?
ajarin donk..
oh ya, apa bedanya array statis dengan array dinamis ya bang?
kalau secara algoritma dan pengertiannya aku bisa kasih saran karena secara prinsip sama..
tapi kalo spesifik ke VB.net 2005 berhubung aku ga punya aku ga bisa pastiin syntax2 sama, jadi harus disesuaikan dulu..
array statis panjannya ditentukan pada awal pendeklarasian
Dim Matrix(3) As Integer
panjannya statis, yaitu 3 (tiga)
sementara array dinamis itu ya yang panjangnya bisa menyesuaikan
deklarasi awal tidak menyebutkan panjang..
Dim MyArray() As Integer ' Declare dynamic array.
Redim MyArray(5) ' Allocate 5 elements.
For I = 1 To 5 ' Loop 5 times.
MyArray(I) = I ' Initialize array.
Next I
berikutnya merubah ukuran, yang tersimpan di array hilang
Redim MyArray(10) ' Resize to 10 elements.
For I = 1 To 10 ' Loop 10 times.
MyArray(I) = I ' Initialize array.
Next I
berikutnya merubah ukuran, data yang tersimpan di array masih
Redim Preserve MyArray(15) ' Resize to 15 elements.
O y mengenai kodeku yang kemaren, itu aku tidak menggunakan array
karena di VBA Access tu string tidak serta merta dianggap array
dimana dibeberapa bahasa pemrograman lainnya bisa dianggap array
minimal ada syntax konversi string ke array
bisa si aku bikin sendiri function untuk merubah string jadi array
cuma..jadinya agak panjang n lebih sulit untuk dimengerti
kalo sisca bisa, bikin sendiri dulu functionnya ntar codenya tak liat..
eh udah diajari bikin function dan sub kan?
mengenai program aku biasanya pake delphi..
n kadang pake access aja cukup tergantung kebutuhan
tak lampirin nih..
wah...
TQ bang.. ^^
urm..
ini bang...
contoh programnya.. ^^
Kutip
Imports System.console
Module Module1
Dim data(3), angka(3) As Integer
Dim nilai, tebakan As Integer
Dim i, j, k As Integer
Dim p As Integer
Sub Main()
awal:
Randomize()
For i = 0 To 3
data(i) = Int(Rnd() * 10)
If data(0) = 0 Then
GoTo awal
End If
Next
For i = 0 To 2
For j = i + 1 To 3
If data(i) = data(j) Then
GoTo awal
End If
Next
Next
WriteLine("----------------------BINGO!!------------------------")
WriteLine()
WriteLine("Tebak angka 4 digit dengan angka berbeda [1023-9876].")
WriteLine("Anda diberi kesempatan 10 x menebak.")
WriteLine("- Tanda O menunjukkan angka dan posisi benar.")
WriteLine("- Tanda / menunjukkan angka benar, tapi posisi salah.")
WriteLine("- Tanda X menunjukkan angka salah.")
WriteLine()
WriteLine("Masukkan tebakan anda : ")
WriteLine("1. ____ [ ]")
WriteLine("2. ____ [ ]")
WriteLine("3. ____ [ ]")
WriteLine("4. ____ [ ]")
WriteLine("5. ____ [ ]")
WriteLine("6. ____ [ ]")
WriteLine("7. ____ [ ]")
WriteLine("8. ____ [ ]")
WriteLine("9. ____ [ ]")
WriteLine("10. ____ [ ]")
k = 0
Do Until k = 10
CursorTop = 9 + k
CursorLeft = 4
tebakan = Console.ReadLine
angka(0) = tebakan \ 1000
angka(1) = (tebakan \ 100) - (10 * angka(0))
angka(2) = (tebakan \ 10) - (100 * angka(0)) - (10 * angka(1))
angka(3) = tebakan - (1000 * angka(0)) - (100 * angka(1)) - (10 * angka(2))
p = 0
For i = 0 To 3
If angka(i) = data(i) Then
CursorTop = 9 + k
CursorLeft = 11 + 2 * i
Write("O")
p = p + 5
If p = 20 Then
Exit Do
End If
Else
For j = 0 To 3
If angka(i) = data(j) Then
CursorTop = 9 + k
CursorLeft = 11 + 2 * i
Write("/")
Exit For
Else
CursorTop = 9 + k
CursorLeft = 11 + 2 * i
Write("X")
End If
Next
End If
Next
k = k + 1
Loop
CursorTop = 20
If p = 20 Then
WriteLine("BINGO!! Anda BENAR di tebakan ke-" & k + 1 & "!")
Else
WriteLine("Semua tebakan anda salah. Anda parah dalam menebak angka.")
End If
WriteLine()
Write("Jawaban yang benar adalah : ")
For i = 0 To 3
Write(data(i))
Next
ReadKey()
End Sub
End Module
bisa disederhanain ndak kalo kode programnya kayak begini?
hmm program console y..
rumit ngatur kursor/lokasi tampilan hurufnya..
tapi OK lah
menyederhanakan maksudnya biar mudah dibaca/dimengerti y?
bisa si, solusinya dipecah jadi beberapa function/sub
sub untuk tampilan, cuma copy paste aja sebagian code diatas
Shared Sub TampilanAwal()
WriteLine("----------------------BINGO!!------------------------")
WriteLine()
WriteLine("Tebak angka 4 digit dengan angka berbeda [1023-9876].")
WriteLine("Anda diberi kesempatan 10 x menebak.")
WriteLine("- Tanda O menunjukkan angka dan posisi benar.")
WriteLine("- Tanda / menunjukkan angka benar, tapi posisi salah.")
WriteLine("- Tanda X menunjukkan angka salah.")
WriteLine()
WriteLine("Masukkan tebakan anda : ")
WriteLine("1. ____ [ ]")
WriteLine("2. ____ [ ]")
WriteLine("3. ____ [ ]")
WriteLine("4. ____ [ ]")
WriteLine("5. ____ [ ]")
WriteLine("6. ____ [ ]")
WriteLine("7. ____ [ ]")
WriteLine("8. ____ [ ]")
WriteLine("9. ____ [ ]")
WriteLine("10. ____ [ ]")
End Sub
function random nilai 4 angka
Shared Sub RandomNilai(ByRef Num() As Integer)
Dim i As Integer
Dim Sudah(9) As Integer
for i=0 to 3
Do
Num(i)=Int(Rnd() * 10)
if Sudah(Num(i))<>1 then Exit Do
Loop
Sudah(Num(i))=1 'tanda angka itu sudah dipakai
Next
End Sub
sub untuk memecah angka (integer) ke array
agak dirubah, menggunakan mod (modulo), sehingga lebih ringkas
Shared Sub Pecah(ByVal Num As Integer, ByRef Pecah() As Integer)
Pecah(0) = Num \ 1000
Pecah(1) = (Num \ 100) mod 10
Pecah(2) = (Num \ 10) mod 10
Pecah(3) = Num mod 10
End Sub
function untuk mengetahui posisi angka di array
return value (nilai function) 0 s/d 3 jika ditemukan, -1 jika tidak
Shared Function PosisiDi(ByVal Nilai As Integer, ByVal Pada() As Integer)
Dim i As Integer
PosisiDi=-1
i=0
Do Until i=4
if Pada(i)=Nilai then Return(i)
i=i+1
Loop
End Function
kemudian langsung aja ke total kodenya
Imports System.console
Module Module1
Dim data(3), angka(3) As Integer
Dim tebakan As Integer
Dim i,j,P,Pos As Integer
Dim R As String
Sub main()
TampilanAwal
Randomize()
RandomNilai(Data)
i=0
Do Until i=10
CursorTop = 9 + i
CursorLeft = 4
Tebakan = Console.ReadLine
Pecahkan(Tebakan, Angka)
P = 0
CursorTop = 9 + i
CursorLeft = 13
For j=0 to 3
Pos=PosisiDi(Angka(j), Dari)
if j=Pos then
Write(" O")
P=P+5
if P=20 then Exit Do
else if Pos>=0 then
Write(" /")
else
Write(" X")
end if
Next
i= i + 1
Loop
CursorTop = 20
If P=20 Then
WriteLine("BINGO!! Anda BENAR di tebakan ke-" & i + 1 & "!")
Else
WriteLine("Semua tebakan anda salah. Anda parah dalam menebak angka.")
End If
WriteLine()
Write("Jawaban yang benar adalah : ")
For i = 0 To 3
Write(data(i))
Next
End Sub
'Selanjutnya Sub/Function yang tadi
Shared Sub TampilanAwal()
WriteLine("----------------------BINGO!!------------------------")
WriteLine()
WriteLine("Tebak angka 4 digit dengan angka berbeda [1023-9876].")
WriteLine("Anda diberi kesempatan 10 x menebak.")
WriteLine("- Tanda O menunjukkan angka dan posisi benar.")
WriteLine("- Tanda / menunjukkan angka benar, tapi posisi salah.")
WriteLine("- Tanda X menunjukkan angka salah.")
WriteLine()
WriteLine("Masukkan tebakan anda : ")
WriteLine("1. ____ [ ]")
WriteLine("2. ____ [ ]")
WriteLine("3. ____ [ ]")
WriteLine("4. ____ [ ]")
WriteLine("5. ____ [ ]")
WriteLine("6. ____ [ ]")
WriteLine("7. ____ [ ]")
WriteLine("8. ____ [ ]")
WriteLine("9. ____ [ ]")
WriteLine("10. ____ [ ]")
End Sub
Shared Sub RandomNilai(ByRef Num() As Integer)
Dim i As Integer
Dim Sudah(9) As Integer
for i=0 to 3
Do
Num(i)=Int(Rnd() * 10)
if Sudah(Num(i))<>1 then Exit Do
Loop
Sudah(Num(i))=1 'tanda angka itu sudah dipakai
Next
End Sub
Shared Sub Pecah(ByVal Num As Integer, ByRef Pecah() As Integer)
Pecah(0) = Num \ 1000
Pecah(1) = (Num \ 100) mod 10
Pecah(2) = (Num \ 10) mod 10
Pecah(3) = Num mod 10
End Sub
Shared Function PosisiDi(ByVal Nilai As Integer, ByVal Pada() As Integer)
Dim i As Integer
PosisiDi=-1
i=0
Do Until i=4
if Pada(i)=Nilai then Return(i)
i=i+1
Loop
End Function
End Module
mungkin jadi lebih panjang, tapi kalau mengerti sub dan function jadi lebih mudah dibaca
CATATAN: CODE BELUM TENTU VALID..(karena ga ada VB.Net 2005)
wahh..
TQ bang adisae.. ^^
Ntar saya coba.. :D :D
Imports System.console
Module Module1
Dim data(3), angka(3) As Integer
Dim tebakan As Integer
Dim i,j,P,Pos As Integer
Dim R As String
Sub main()
TampilanAwal
Randomize()
RandomNilai(Data)
i=0
Do Until i=10
CursorTop = 9 + i
CursorLeft = 4
Tebakan = Console.ReadLine
Pecahkan(Tebakan, Angka)
P = 0
CursorTop = 9 + i
CursorLeft = 13
For j=0 to 3
Pos=PosisiDi(Angka(j), Dari)
if j=Pos then
Write(" O")
P=P+5
if P=20 then Exit Do
else if Pos>=0 then
Write(" /")
else
Write(" X")
end if
Next
i= i + 1
Loop
CursorTop = 20
If P=20 Then
WriteLine("BINGO!! Anda BENAR di tebakan ke-" & i + 1 & "!")
Else
WriteLine("Semua tebakan anda salah. Anda parah dalam menebak angka.")
End If
WriteLine()
Write("Jawaban yang benar adalah : ")
For i = 0 To 3
Write(data(i))
Next
End Sub
pecahkan dan "dari" itu gak dideklarasikan bang?
o iya ralat..
sub Pecah harusnya Pecahkan
Shared Sub Pecahkan(ByVal Num As Integer, ByRef Pecah() As Integer)
Pecah(0) = Num \ 1000
Pecah(1) = (Num \ 100) mod 10
Pecah(2) = (Num \ 10) mod 10
Pecah(3) = Num mod 10
End Sub
Dari diganti Data
Pos=PosisiDi(Angka(j), Data)
oo..
ok ok..
terus bang..
gimana caranya bikin angka tebakan kita itu tidak berulang bang?
maksudnya biar yang udah ditebak ga bisa ditebak lagi yah?
atau gimana?
urm..
maksudna..
data(i) jangan 2334 gitu..
kan "3"nya berulang..
hehehe.. :D
hadoh.. y rumit sis..
sebenere itu resiko yang nebak lah.. ;)
mau diaplikasikan kayak apa dulu?
jika ada yang tebakan ke n ada yangkembar maka ??? ???
a. kembali minta tebakan ke n?
b. cuma keluar peringatan aja lanjut ke tebakan berikutnya, ke (n+1)
aa..
bingung.. =))
gmn nie hasilnya? pengen tahu... :D
ohh..
uda ada bung insan..
Tapi berhubung laptop sisca yang bisa VB lagi rusak, ndak bisa dibuka deh.. hahahhaa..
Besok bung sisca post di sini.. ^^
:D
@Sisca : ditungguuuuu... :)
maap nih mas.. hahaa..
baru OL dari sp**dy..
heheh..
ini dia.. ^^
ini yang setelah sisca modif2..
wkwkkwk~
Kalo mau di jalankan, hati2 ya mas.. hehehe..
Ada ranjau.. =))
@Sisca
Gak bisa dijalanin nie. Gak ada VB soalnya. Ada program yang udah dijadiin executablesnya gak?
mm.. di bagian project coba diliet mas..
hehe..
ProjectFinal-08-3261-TanFransiscaDian-12IPA1 > bin > debug > ProjectFinal-08-3261-TanFransiscaDian-12IPA1.exe
itu mas.. hehe..
Masi agak berantakan sih...
Oh ya passwordnya itu sisca..
wkwkwkw.
Wah.. kurang beruntung nie. Udah dicobain, tapi si jendela hitamnya langsung nutup sendiri...
urm..
Uda bisa dijalankan mas? :D :D :D
Wah sis, pake loading sgala kayak program ap aja.. :D
pake password lagi.. ;D ;D
o y udah dicoba sampai akhir..cuma kok yang mau ditebak ditampilin yak?
terus misal pas mu nebak langsung dienter sebelum ada tebakannya error tu..langsung keluar dari programnya..
ohh..
ya ampun..
lupa ilangin tebakannya..
ahhahahha...
=)) =))
Tolong ilangin donk... >,,<
mm..
maksudnya sebelum masukin tebakan dienter?
yah aku kan ga punya VB ;)
maksudnya sebelum mengetik apapun (tebakan) di tekan enter dulu jadinya error..
code yang ini..
R a n d o m i z e ( )
F o r i = 0 T o 3
d a t a ( i ) = ( R n d ( ) * 8 + 1 ) \ 1
' W r i t e ( d a t a ( i ) )
N e x t
harusnya udah dikasih tanda petik tunggal sudah tidak dianggap..mungkin exenya hasil sebelum dikasih tanda petik tunggal..
terus penyebab errornya ga tau aku..harus pegang sendiri VB nya baru bisa tau (mungkin)..
iyaa...
Kutipnya ilangin..
Kalo error..
Itu error kalo tebakan salah ya?
hehehe..
' W r i t e ( d a t a ( i ) ) dibuang semua..
masalah error coba deh sisca tekan enter pas sebelum menebak angka..
oh...
itu seharusnya gak ada pengaruh lo.. 'write(data(i))-nya..
soale uda ada tanda " ' "
urm.. error ya..
tak coba deh..
ehhehehe...
hooh si..
trus stelah ada " ' " nya di run lagi masih keluar g yg ditebak?
di tempat sisca ndak kok.. hehe...
oo begono,,
berarti emang yang ta download yang belum valid..
iya kali ya..
hehee..
di tempat aku bisa.. :D