Ders2: Basic4Android ile sayı tahmin oyunu

Başlatan sigmoid, 24 Ocak 2013, 16:27:32

sigmoid

Hem basit hem de basic4android ile ne kadar kolay bir şekilde program yazabileceğimizi göstermek için basit bir sayı tahmin oyunu yapmaya karar verdim. Tablet 1 ile 100 arasında bir sayı tutuyor ve tutmuş olduğu bu sayıyı bulmaya çalışıyoruz.

Basic4Android programını çalıştırınca File-New ile yeni bir çalışma sayfası açın. PIC programlarken bile önce donanımı kurup sonra yazılımı yazmayı sevdiğimden yazdığımız kodu tablet üzerinde denemeyi seviyorum. İsterseniz siz emulatörde test edebilirsiniz. Sadece Tools-> Run AVD Manager ile emülatörü çalıştırabilirsiniz. Fakat ben direk tablet üzerinde denemeyi tercih ediyorum. Tablete bağlanmak için öncelikle tablete yüklediğimiz B4A Bridge programını çalıştıralım. Sonra basic4android programında Tools->B4A Bridge-> Connect Wireless menüsünden tablete bağlanalım.

Designer menüsüne tıklayıp görsel arayüzümüzü tasarlayalım. 

[IMG]http://img33.imageshack.us/img33/807/designercs.png[/img]

[IMG]http://img132.imageshack.us/img132/9001/abstractdesigner.png[/img]

Sayı tahmin oyunu için 1 buton, 2 label ve sayı değerini girmek için 1 adet EditText eklememiz gerekli. EditText'in inputtype özelliğini NUMBERS olarak değiştirin. Android programlamada Visual Basicte kullanılan bazı terimler farklı isimlendiriliyor. basicte label, text vb objelere component denirken basic4android de view adıyla isimlendirilmiş. Aynı mantıkta form yerine activity ismi kullanılıyor. Designer penceresinde Tools->Connect To Device/Emulator menüsüne tıkladığımızda tasarım penceresinde ne tasarlarsak aynen tabletimizde görebiliyoruz. Abstract Designer penceresinde Layout-> Match Connected Device menüsü ile tasarım ekranının büyüklüğünü cihazımızın ekran çözünürlüğü ile eşleştirelim. Daha sonra designer penceresinde Add view ile componentleri ekleyelim.

[IMG]http://img687.imageshack.us/img687/9651/viewr.png[/img]

Viewler (bundan sonra component yerine view kelimesini kullanacağım.) istediğimiz şekilde olunca Designer penceresinde File->Save menüsü ile yaptığımız çalışmayı kaydedelim. ben burada layout ismi olarak main yazdım.

[IMG]http://img594.imageshack.us/img594/6317/savelayout.png[/img]


Eklemiş olduğumuz viewlere ait tanımlamaları ve eventleri eklemek içinde Tools->Generate Members menüsünü kullanalım. Burada kod ile değişiklik yapacağımız viewlerin isimlerinin yanındaki kutucuklara ve Buton1 altındaki click eventine tik atalım.

[IMG]http://img4.imageshack.us/img4/2961/generatemembers.png[/img]

View isimlerinin yanındaki kutuculara tıklayınca Globals sub functionı içinde

Dim Button1 As Button
Dim EditText1 As EditText
Dim Label1 As Label
Dim Label2 As Label


tanımlamaları yapılır. Bu sayede bu viewlere kod ile ulaşabiliriz. Global function içine bu activity içerisinden ulaşılması gereken değişkenler yazılır. Butona basıldığında yapılması gereken işler ise


Sub Button1_Click
End Sub


içerisine yazılır. Programın tam kodu aşağıdadır.

#Region  Project Attributes
#ApplicationLabel: B4A Example
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region
#Region  Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim sayi As Int
Dim sayac As Int
Dim Button1 As Button
Dim EditText1 As EditText
Dim Label1 As Label
Dim Label2 As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Activity.LoadLayout("main")
Button1.Text="Basla"
Label1.Text ="Basla butonuna basınız."
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
Dim sayi2 As Int
If Button1.Text="Basla" Then
Yeni
Else
sayac=sayac+1
Label2.Text="Tahmin:" & sayac
sayi2=EditText1.Text
If sayi=sayi2 Then
Label1.Text="Tebrikler. Tuttuğum sayıyı bildiniz."
Button1.Text="Basla"
Else If sayi>sayi2 Then
Label1.text="Yukarı"
Else
Label1.Text="Aşağı"
End If
End If
End Sub
Sub Yeni
sayi=Rnd(1,100)
sayac=0
Label2.Text="Tahmin:" & sayac
Label1.Text="Tuttuğum sayıyı tahmin edin. (1 ile 100 arasında)"
Button1.Text="Tamam"
EditText1.Text=""
End Sub

pisayisi

#1
Teşekkürler eline sağlık, ben de android ile near field communication desteği olan telefonlar için çeşitli uygulamalar yapmak niyetindeydiM. Burdan açılan pencere isabetli oldu, bir soru? android de .apk uzantılı bir dosyada modifikasyon yapmanın basit yolları var mı...
Murat

sigmoid

Bende bu işleri yeni yeni öğreniyorum. Öğrendikçede öğrendiklerimi burada paylaşıyorum.