Merhabalar bu konumda Re-Chaptaya benzer formumuza robot olmadığımızı doğrulayan bi sistem yapıcaz.
İlk olarak yeni bir form oluşturuyoruz.
Formumuzun ismini kendimize göre ayarlıyoruz.
Daha sonra formumuza bir adet PictureBox ekliyoruz.
Sağ üst köşeden picturebox boyutunu forma göre değiştiriyoruz.
Formumuza iki adet buton ekliyoruz.
Butonların ismini giriş ve yenile olarak değiştiriyoruz.
Bir adet textbox ekliyoruz.
Birtanede label ekliyoruz ve adını "Sonuç:" yapıyoruz.
Daha sonra robot doğrulamasını geçebilirsek yeni bi form açılmasını istediğimiz için 2. formu ekliyoruz.
Form 1de herhangi bir boş yere çift tıklıyoruz ve form açıldığında yeni bir görsel oluşturması için şunu yazıyoruz.
Kod:
PictureBox1.Image = ResimOlustur()
Buton 2ye çift tıklıyoruz yenile görevini yapması için bu kodu yazıyoruz.
Kod:
System.EventArgs) Handles Button2.Click
PictureBox1.Image = ResimOlustur()
Label3.Text = ("")
Buton 1e çift tıklıyoruz
Kod:
System.EventArgs) Handles Button1.Click
Select Case TextBox1.Text
Case Is = Cevap
MessageBox.Show("Doğru", "Doğru!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
PictureBox1.Image = ResimOlustur()
TextBox1.Clear()
Form2.Show()
Me.Hide()
Case Else
MessageBox.Show("Yanlış!", "Yanlış!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
PictureBox1.Image = ResimOlustur()
TextBox1.Clear()
End Select
TextBox1.Clear()
Daha sonra forma çift tıklayıp çift tıklayınca çıkan kodu sildikden sonra bu komutu boş bir yere yapıştırıyoruz.
Kod:
Private Cevap As String = Nothing
Private Function KodOlustur() As String
Dim Operatorler As String() = {"+", "-"}
Baslangic:
Dim Sayi1 As Integer = New Random().Next(1, 9)
Dim Sayi2 As Integer = New Random().Next(1, 9)
If Sayi1 = Sayi2 Then GoTo Baslangic
Dim cOperatorler As String = Operatorler(New Random().Next(0, Operatorler.Length))
Select Case cOperatorler
Case "+"
Cevap = Sayi1 + Sayi2
If Cevap <= 0 Then GoTo Baslangic
Case "-"
Cevap = Sayi1 - Sayi2
If Cevap <= 0 Then GoTo Baslangic
End Select
Return String.Format("{0}{1}{2}", Sayi1, cOperatorler, Sayi2)
End Function
Private Sub CizgiOlustur(ByVal G As Graphics)
If Not G Is Nothing Then
Dim R As New Random()
Dim RenkFirca As New SolidBrush(Color.LightGray)
For i% = 0 To 9
G.DrawLines(New Pen(RenkFirca, R.Next(1, 2)), New Point() {New Point(0, R.Next(0, 60)), New Point(200, R.Next(0, 60))})
Next
End If
End Sub
Private Function ResimOlustur() As Image
Dim B As New Bitmap(200, 60)
Using G As Graphics = Graphics.FromImage(B)
With G
.Clear(Color.White)
.DrawString(KodOlustur(), New Font("Segoe UI", 20), Brushes.Black, New Rectangle(0, 0, 200, 60), New StringFormat() With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center})
End With
CizgiOlustur(G)
End Using
Return B
End Function
Programı çalıştırıyoruz.
Hiçbirşey yazmadan giriş tuşuna basıyoruz bakalım birşey yazmadan giriş yapcakmı.
Birşey yazmadığımız için giriş yapmıyor yenile butonuna basarak işlemi yenileyebilirz.
İşlem sonucunu yazarakda giriş yapabilirz.
Doğru olduğunu söyledi
Ve ikinci formu çalıştırdı.