Selamat datang di ForSa! Forum diskusi seputar sains, teknologi dan pendidikan Indonesia.

Welcome to Forum Sains Indonesia. Please login or sign up.

April 18, 2024, 05:24:58 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 51
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 20
Total: 20

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

program keren VB.net nihh...

Dimulai oleh sisca, chemistry, Oktober 24, 2010, 12:54:24 AM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

adisae

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 [pranala luar disembunyikan, sila masuk atau daftar.] 2005)

sisca, chemistry

wahh..
TQ bang adisae.. ^^
Ntar saya coba.. :D :D
[move]
~ You are what you eat ~
[/move]

sisca, chemistry

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?
[move]
~ You are what you eat ~
[/move]

adisae

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)

sisca, chemistry

oo..
ok ok..
terus bang..
gimana caranya bikin angka tebakan kita itu tidak berulang bang?
[move]
~ You are what you eat ~
[/move]

adisae

maksudnya biar yang udah ditebak ga bisa ditebak lagi yah?
atau gimana?

sisca, chemistry

urm..

maksudna..
data(i) jangan 2334 gitu..
kan "3"nya berulang..
hehehe.. :D
[move]
~ You are what you eat ~
[/move]

adisae

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)

sisca, chemistry

[move]
~ You are what you eat ~
[/move]

insan sains

Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030

sisca, chemistry

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
[move]
~ You are what you eat ~
[/move]

insan sains

Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030

sisca, chemistry

maap nih mas.. hahaa..
baru OL dari sp**dy..
heheh..
ini dia.. ^^
[move]
~ You are what you eat ~
[/move]

sisca, chemistry

ini yang setelah sisca modif2..
wkwkkwk~

Kalo mau di jalankan, hati2 ya mas.. hehehe..
Ada ranjau.. =))
[move]
~ You are what you eat ~
[/move]

insan sains

@Sisca
Gak bisa dijalanin nie. Gak ada VB soalnya. Ada program yang udah dijadiin executablesnya gak?
Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030