Makale Özeti

Bu makalede son günlerin çok popüler oyunu var mısın yok musun oyununun mobil cihazlar için olan versiyonunu gerçekleştireceğiz. Bu makale ile mobil cihazlar üzerinde nasıl uygulama geliştirileceğini adım adım öğreneceğiz ve bu geliştirdiğimiz uygulamayı mobil cihazlar üzerinde çalıştırmak ve kurmak için ne gibi teknikler kullanıldığını öğreneceğiz. Yazdığımız projeyi Smart Device CAB Project haline getirip, visual studio'nun biz yazılımcıların kullanımı için sağladığı Windows Mobile 5.0 Pocket PC Emulator üzerinde uygulayarak yaptığımız projeyi test edip kullanmayı öğreneceğiz.

Makale

Mobil Var Mısın Yok Musun Oyunu

Bu makalede son günlerin çok popüler oyunu var mısın yok musun oyununun mobil cihazlar için olan versiyonunu gerçekleştireceğiz. Bu makale ile mobil cihazlar üzerinde nasıl uygulama geliştirileceğini adım adım öğreneceğiz ve bu geliştirdiğimiz uygulamayı mobil cihazlar üzerinde çalıştırmak ve kurmak için ne gibi teknikler kullanıldığını öğreneceğiz. Yazdığımız projeyi Smart Device CAB Project haline getirip, visual studio'nun biz yazılımcıların kullanımı için sağladığı Windows Mobile 5.0 Pocket PC Emulator üzerinde uygulayarak yaptığımız projeyi test edip kullanmayı öğreneceğiz.

Var Mısın Yok Musun oyunu tamamen şans üzerine rastlantısal sayılar kullanılarak iskeleti oluşturulmuş bir oyundur. Oyunun amacı maksimum parayı kazanmaktır. Oyunda 24 tane kapalı kutu vardır. Her bir kutunun içerisinde 1 YTL'den başlayan ve 500.000 YTL ye kadar giden paralar mevcuttur. Bu paralar rastlantısal olarak kutuların içerisine yerleştirilmiştir. Oyun başlangıcında oyuncu 24 tane kutu içerisinden bir tanesini seçer kullanıcı bu kutunun içerisindeki parayı almaya hak kazanır. Fakat kullanıcı oyun bitene kadar kutusunda ne kadar para olduğunu bilmeyecektir. Daha sonra oyuncu geri kalan 23 kutudan sırayla seçimlerini yapar. Her bir kutu açıldığında içerisindeki para miktarını kullanıcı kaybetmiş olur. Oyunun belli adımlarında banker tarafından kullanıcıya açılmamış kutularda bulunan paralarının büyüklüğüne göre bir teklif yapılır. Oyuncu bu teklifi kabül eder ya da oyuna devam eder. Oyuncu alabileceği en yüksek parayı almak için karar vermek zorundadır ya bankerin teklif ettiği parayı alır ya da en son kutu yani oyunun ilk başında seçilen kutunun içerisindeki parayı alır. Teklif edilen teklifler kullanıcının sahip olduğu kutunun içerisindeki paradan daha yüksek olabilir. Burada oyuncu doğru kararı alarak oyunu maksimum parayla bitirmek zorundadır. Varmısın yokmusun oyununun mobile versiyonunu yaparken windows versiyonundan farklı olarak mobile cihazlar için microsoftun gerçekleştirdiği framework  üzerinden yazılımın çalışacağı için kod üzerinde uygun adaptasyonu yapmak gerekmektedir. Mobil projemizi oluşturmak için New Project deyip Smart Device sekmesinin altında Windows Mobile 5.0 Pocket PC Device Application'ı seçmemiz gerekmektedir.

 

Yazdığımız projeyi çalıştırmak için Windows Mobile 5.0 PC Emulator'u seçmemiz gerekmektedir.Böylece Visual studio Pocket PC Emulatorünü çalışır içerisine yazdığımız projeyi kaydeder ve çalıştırır. Bilgisayarınız üzerinden programı emülatör içerisinde kullanıp debug edebilirsiniz.

 

Projemizde seçilen kutulardaki para miktarlarını gösteren labelların arka plan renginin kırmızı olması için her bir label için ayrı ayrı kontrol yapılmak yerine Label kontrolü lbl ön eki kullanılarak ve seçilen rakamı ön eke ekleyerek bu label kontrülu bulunup arka plan rengi değiştirilmiştir. Windows uygulaması üzerinde aşağıdaki gibi bir yapı kullanılarak ilgili olan label'a ulaşılabilir, fakat mobile cihazlar için varolan framework ile windows uygulamalar için varolan framework birbirinden farklıdır. Mobile framework, windows frameworkun birçok özelliğini içermez. Bunun için aşağıdaki gibi bir yazım mobile frameworkde hata verecektir. Hata this.Control.Find fonksiyonunun bulunamadığı şeklindedir.

    Label lb_ = (Label)(this.Controls.Find("lbl" + arr[secilensayi - 1], false)[0]);

    lb_.BackColor = Color.Red;

Tabi hemen paniğe kapılmamak gerekmektedir. Yukarıdaki fonksiyonunun benzerini mobile framework için yazmamız gerekmektedir. Yazacağımız fonksiyon aşağıdaki şekildedir.

public static Control FindControl(Control con, string conName)

{

        foreach (Control tempCon in con.Controls)

            {

            if (tempCon.Name == conName)

                {

                    return tempCon;

                }

            Control returnCon = FindControl(tempCon, conName);

            if (returnCon != null)

                {

                    return returnCon;

            }

        }

    return null;

}

 

Yukarıdaki fonksiyonu

Label lb_ = (Label)FindControl(this,"lbl" + arr[secilensayi - 1]);

şeklinde kullandığımızda this.Controls.Find fonksiyonu ile aynı sonucu alırız. Yukarıda yazdığımız fonksiyon form üzerindeki tek tek tüm kontrolleri gezerek aradığımız isimdeki kontrolü bulmaya çalışmaktadır. Aradığımız kontrol başka bir kontrolün içerisinde olabilir mesala bir panel kontrolünün içerisinde olabilir bunun için ise recursive bir yapı oluşturup bulduğumuz her kontrolü tekrar bu fonksiyona sokarız.

Projemizi yaptıktan sonra yazılımı mobile cihaza yüklemek için öncelikle mobil cihazı makinemize bağlamamız ve Microsoft ActiveSync(Vista kullanıyorsanız Microsoft Windows Mobile Device Center) ile mobil cihazınızı bilgisayarınız ile eşleştirmeniz gerekmektedir. Programımızı Visual Studio içerisinden çalıştırırken Windows Mobile 5.0 Pocket Pc Device'ı seçmeniz gerekmektedir. Programınız otomatik olarak mobil cihazınıza yüklenecektir.

Peki her yükleme işlemini yapmak için Visual Studio'mu kullanmak gerekmemektedir projeye add new project diyerek Smart Device CAB Project diyerek mobil cihazlar için projenizin kurulum dosyasını oluşturup bu kurulum dosyasını dağıtarak mobil cihazlar üzerinde kurulum yapabilirsiniz.

 

Oluşturduğunuz Smart Device CAB Project üzerinde Add Project Output ile programın mobile cihaz üzerinde nereye kurulacağını belirtebilirsiniz. Emülator üzerinde File Configuration diyerek bilgisayarınız ile emülatör üzerinde shared folder oluşturabilirsiniz. Shared folder içerisinde Smart Device CAB projenizin derlenmesi ile oluşan .CAB dosyanızı paylaşabilirsiniz. Emülator üzerinde .CAB dosyasına bastığınızda program mobil cihazınıza yüklenecektir yani yazdığımız projeyi mobil cihaza yüklemek için sadece .CAB dosyanızı mobil cihaza yüklemek yeterli olacaktır.

 

 

Makale ya da kodlarda bulunan hatalar ya da sorularınız için mehmetaliecer@gmail.com adresinden bana ulaşabilirsiniz. İyi çalışmalar.

Mehmet Ali ECER

www.mehmetaliecer.com

 

 

 

 

Kaynak Kod