[SIZE="20"]Basit Bir robot Verilen komutlarla ilerleyen bir Robot. 32 *32 'lik bi karede ilerler.... d = aşağı , u = yukarı , r = sağa , l= sola olcak şekilde yazılır ... mesela r5 yazdığınızda sağa 5 adım ilerler.... aralarda birer ya da 3-5 olması farketmez boşluklar bırakarak komutları yazınız .. robot bunları teker teker uygulayacaktır isterseniz alt satıra da dewam edip text'i full doldurmakta mümkün .... önemli bir hatırlatma robotun kodları uygulayabilmesi için .. bir text dosyası açmalısınız .... ve bir de commondialog oluşturmanız gerekir...

İYİ KULLANIMLAR :)

















KOD FRAGMANI :

Dim eksen, duzelt_komut1, toplam, yeni_ifade, val_kuvvet, yon, dosya_ad As String
Dim uzunluk_komut1, x_eksen, y_eksen As Integer, val_gitme, sayac1, sayac2, sayac3, sayac4, msg_uyari As Integer

Function Val_Yeni(ByVal x As String) As Double
' Metin içinden rakamları bulan bir fonksiyon.
Dim i As Integer
Dim c As String, sonuc As String

For i = 1 To Len(x)
c = Mid(x, i, 1)
If Asc(c) >= Asc("0") And Asc(c) <= Asc("9") Then sonuc = sonuc & c
Next
Val_Yeni = Val(sonuc)

End Function

Sub Pause(miliseconds As Long)
' Belirtilen süre kadar ara vermeye yarar.
Dim Wait As Double
Wait = Timer + (miliseconds / 1000)
Do While Timer < Wait
DoEvents
Loop
End Sub



Private Sub Form_Activate()
msg_uyari = MsgBox("SAYIN KULLANICI, LÜTFEN İFADELERİ GİRERKEN HARFTEN SONRA BOŞLUK BIRAKMADAN İFADEYİ YAZINIZ.ÖRN. R5 L8 U5 D8...vb.", vbCritical, "HATIRLATMA")
End Sub

Private Sub Form_Click()

' Commondialog aracılığıyla dosyayı açma.

dosya_ad = CommonDialog1.FileName

CommonDialog1.ShowOpen

Open CommonDialog1.FileName For Input As #1


Do While Not (EOF(1))

'do while - loop döngüsü tüm satırları taramaya yarar.

Line Input #1, eksen

duzelt_komut1 = Trim(eksen)

uzunluk_komut1 = Len(duzelt_komut1)

For sayac1 = 1 To uzunluk_komut1

' Bir satırdaki ifadeleri bulmak için yapılan for-next döngüsüdür.

val_kuvvet = ""

toplam = ""

For sayac2 = 1 To uzunluk_komut1

'Harf ve sayı ikililerini bulmak için yazılan for-next döngüsü.

val_kuvvet = Left(duzelt_komut1, 1)

x = Asc(val_kuvvet)

toplam = toplam + val_kuvvet

duzelt_komut1 = Right(duzelt_komut1, uzunluk_komut1 - sayac2)

If val_kuvvet = " " Or x = 9 Then Exit For

Next

yeni_ifade = Trim(duzelt_komut1)

duzelt_komut1 = yeni_ifade

uzunluk_komut1 = Len(yeni_ifade)

yon = Left(toplam, 1)

val_gitme = Val_Yeni(toplam)

x_eksen = Form1.ScaleWidth

y_eksen = Form1.ScaleHeight

'Harf ve sayı değerlerinin robotu yönlendirmesi için yazılan kodlar.

If yon = "u" Or yon = "U" Then

For sayac3 = 1 To val_gitme - 1

If shape_surat.Top <= 0 Or shape_burun.Top <= 180 Or _
shape_goz_l.Top <= 100 Or shape_goz_r.Top <= 100 Or _
shape_agiz.Top <= 280 Then Exit For

shape_surat.Top = CInt(shape_surat.Top) - y_eksen / 32

shape_burun.Top = CInt(shape_burun.Top) - y_eksen / 32

shape_goz_l.Top = CInt(shape_goz_l.Top) - y_eksen / 32

shape_goz_r.Top = CInt(shape_goz_r.Top) - y_eksen / 32

shape_agiz.Top = CInt(shape_agiz.Top) - y_eksen / 32

Pause (500)

Beep

Next

ElseIf yon = "R" Or yon = "r" Then

For sayac3 = 1 To val_gitme - 1

If x_eksen <= CInt(shape_surat.Left) Or x_eksen <= CInt(shape_burun.Left + 155) Or _
x_eksen <= CInt(shape_goz_l.Left + 100) Or x_eksen <= CInt(shape_goz_r.Left + 200) Or _
x_eksen <= CInt(shape_agiz.Left + 100) Then Exit For

shape_surat.Left = CInt(shape_surat.Left) + x_eksen / 32

shape_burun.Left = CInt(shape_burun.Left) + x_eksen / 32

shape_goz_l.Left = CInt(shape_goz_l.Left) + x_eksen / 32

shape_goz_r.Left = CInt(shape_goz_r.Left) + x_eksen / 32

shape_agiz.Left = CInt(shape_agiz.Left) + x_eksen / 32

Pause (500)

Beep

Next

ElseIf yon = "L" Or yon = "l" Then

For sayac3 = 1 To val_gitme - 1

If shape_surat.Left <= 0 Or shape_burun.Left <= 180 Or _
shape_goz_l.Left <= 100 Or shape_goz_r.Left <= 100 Or _
shape_agiz.Left <= 280 Then Exit For

shape_surat.Left = CInt(shape_surat.Left) - x_eksen / 32

shape_burun.Left = CInt(shape_burun.Left) - x_eksen / 32

shape_goz_l.Left = CInt(shape_goz_l.Left) - x_eksen / 32

shape_goz_r.Left = CInt(shape_goz_r.Left) - x_eksen / 32

shape_agiz.Left = CInt(shape_agiz.Left) - x_eksen / 32

Pause (500)

Beep

Next

ElseIf yon = "d" Or yon = "D" Then

For sayac3 = 1 To val_gitme - 1

If x_eksen <= CInt(shape_surat.Top) Or x_eksen <= CInt(shape_burun.Top + 155) Or _
x_eksen <= CInt(shape_goz_l.Top + 100) Or x_eksen <= CInt(shape_goz_r.Top + 200) Or _
x_eksen <= CInt(shape_agiz.Top + 100) Then Exit For

shape_surat.Top = CInt(shape_surat.Top) + y_eksen / 32

shape_burun.Top = CInt(shape_burun.Top) + y_eksen / 32

shape_goz_l.Top = CInt(shape_goz_l.Top) + y_eksen / 32

shape_goz_r.Top = CInt(shape_goz_r.Top) + y_eksen / 32

shape_agiz.Top = CInt(shape_agiz.Top) + y_eksen / 32

Pause (500)

Beep

Next

End If

Next

Loop

Close #1

End Sub

Private Sub Form_Load()

'Robot için yapılan shape'lerin başlangıçta durması gereken yerleri.

shape_surat.Left = 0
shape_surat.Top = 0
shape_burun.Left = 155
shape_burun.Top = 180
shape_goz_r.Top = 100
shape_goz_r.Left = 200
shape_goz_l.Top = 100
shape_goz_l.Left = 100
shape_agiz.Top = 280
shape_agiz.Left = 100

End Sub

Beğeniler: 0
Favoriler: 0
İzlenmeler: 1047
favori
like
share
turkbey Tarih: 14.09.2008 04:17
tsk sağolasın
fandangos Tarih: 16.08.2008 14:36
gayet başarılı olmuş emeğine sağlık
fandangos Tarih: 16.08.2008 14:15
teşekkürler henüz çalışmadım üzerine şimdi inceleyeceğim.
poyraz Tarih: 14.11.2007 15:29
Ellerine saglik kardes